Merge pull request #23597 from vnen/network-fs-fix

Fix deploy with network filesystem
This commit is contained in:
Rémi Verschelde 2018-11-10 21:54:14 +01:00 committed by GitHub
commit 35e533f34f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 27 deletions

View file

@ -150,13 +150,13 @@ void EditorFileServer::_subthread_start(void *s) {
s.parse_utf8(fileutf8.ptr()); s.parse_utf8(fileutf8.ptr());
if (cmd == FileAccessNetwork::COMMAND_FILE_EXISTS) { if (cmd == FileAccessNetwork::COMMAND_FILE_EXISTS) {
DEBUG_PRINT("FILE EXISTS: " + s); print_verbose("FILE EXISTS: " + s);
} }
if (cmd == FileAccessNetwork::COMMAND_GET_MODTIME) { if (cmd == FileAccessNetwork::COMMAND_GET_MODTIME) {
DEBUG_PRINT("MOD TIME: " + s); print_verbose("MOD TIME: " + s);
} }
if (cmd == FileAccessNetwork::COMMAND_OPEN_FILE) { if (cmd == FileAccessNetwork::COMMAND_OPEN_FILE) {
DEBUG_PRINT("OPEN: " + s); print_verbose("OPEN: " + s);
} }
if (!s.begins_with("res://")) { if (!s.begins_with("res://")) {
@ -243,7 +243,7 @@ void EditorFileServer::_subthread_start(void *s) {
int read = cd->files[id]->get_buffer(buf.ptrw(), blocklen); int read = cd->files[id]->get_buffer(buf.ptrw(), blocklen);
ERR_CONTINUE(read < 0); ERR_CONTINUE(read < 0);
DEBUG_PRINT("GET BLOCK - offset: " + itos(offset) + ", blocklen: " + itos(blocklen)); print_verbose("GET BLOCK - offset: " + itos(offset) + ", blocklen: " + itos(blocklen));
//not found, continue //not found, continue
encode_uint32(id, buf4); encode_uint32(id, buf4);
@ -259,7 +259,7 @@ void EditorFileServer::_subthread_start(void *s) {
} break; } break;
case FileAccessNetwork::COMMAND_CLOSE: { case FileAccessNetwork::COMMAND_CLOSE: {
DEBUG_PRINT("CLOSED"); print_verbose("CLOSED");
ERR_CONTINUE(!cd->files.has(id)); ERR_CONTINUE(!cd->files.has(id));
memdelete(cd->files[id]); memdelete(cd->files[id]);
cd->files.erase(id); cd->files.erase(id);

View file

@ -722,6 +722,29 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
I = N; I = N;
} }
// Network file system needs to be configured before globals, since globals are based on the
// 'project.godot' file which will only be available through the network if this is enabled
FileAccessNetwork::configure();
if (remotefs != "") {
file_access_network_client = memnew(FileAccessNetworkClient);
int port;
if (remotefs.find(":") != -1) {
port = remotefs.get_slicec(':', 1).to_int();
remotefs = remotefs.get_slicec(':', 0);
} else {
port = 6010;
}
Error err = file_access_network_client->connect(remotefs, port, remotefs_pass);
if (err) {
OS::get_singleton()->printerr("Could not connect to remotefs: %s:%i.\n", remotefs.utf8().get_data(), port);
goto error;
}
FileAccess::make_default<FileAccessNetwork>(FileAccess::ACCESS_RESOURCES);
}
if (globals->setup(project_path, main_pack, upwards) == OK) { if (globals->setup(project_path, main_pack, upwards) == OK) {
found_project = true; found_project = true;
} else { } else {
@ -768,28 +791,6 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
script_debugger = memnew(ScriptDebuggerLocal); script_debugger = memnew(ScriptDebuggerLocal);
OS::get_singleton()->initialize_debugging(); OS::get_singleton()->initialize_debugging();
} }
FileAccessNetwork::configure();
if (remotefs != "") {
file_access_network_client = memnew(FileAccessNetworkClient);
int port;
if (remotefs.find(":") != -1) {
port = remotefs.get_slicec(':', 1).to_int();
remotefs = remotefs.get_slicec(':', 0);
} else {
port = 6010;
}
Error err = file_access_network_client->connect(remotefs, port, remotefs_pass);
if (err) {
OS::get_singleton()->printerr("Could not connect to remotefs: %s:%i.\n", remotefs.utf8().get_data(), port);
goto error;
}
FileAccess::make_default<FileAccessNetwork>(FileAccess::ACCESS_RESOURCES);
}
if (script_debugger) { if (script_debugger) {
//there is a debugger, parse breakpoints //there is a debugger, parse breakpoints