projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
changed Android project to API level 23 to support Android 10
[rocksndiamonds.git]
/
src
/
network.c
diff --git
a/src/network.c
b/src/network.c
index 6c1f4c6de4d1bd5d91674188fed45a725eb845cb..ded92acf5744a6ac9a293fb54064b2660dd3f385 100644
(file)
--- a/
src/network.c
+++ b/
src/network.c
@@
-870,7
+870,11
@@
static void Handle_OP_LEVEL_FILE(void)
if (hasPathSeparator(file_info->basename))
Error(ERR_EXIT, "protocol error: invalid filename from network client");
if (hasPathSeparator(file_info->basename))
Error(ERR_EXIT, "protocol error: invalid filename from network client");
- getNetworkBufferFile(read_buffer, file_info->filename);
+ int num_bytes = getNetworkBufferFile(read_buffer, file_info->filename);
+
+ // if received level file is empty, remove it (as being non-existent)
+ if (num_bytes == 0)
+ remove(file_info->filename);
use_custom_template = getNetworkBuffer8BitInteger(read_buffer);
if (use_custom_template)
use_custom_template = getNetworkBuffer8BitInteger(read_buffer);
if (use_custom_template)
@@
-884,6
+888,10
@@
static void Handle_OP_LEVEL_FILE(void)
Error(ERR_EXIT, "protocol error: invalid filename from network client");
getNetworkBufferFile(read_buffer, tmpl_info->filename);
Error(ERR_EXIT, "protocol error: invalid filename from network client");
getNetworkBufferFile(read_buffer, tmpl_info->filename);
+
+ // if received level file is empty, use level template file instead
+ if (num_bytes == 0)
+ setString(&file_info->filename, tmpl_info->filename);
}
network_level.leveldir_identifier = leveldir_identifier;
}
network_level.leveldir_identifier = leveldir_identifier;