# # # patch "src/server.cc" # from [d6e42343ba98a9dff8fc894f76786307a357ab1c] # to [55442d680c936f59823a36aea57a25443955a99b] # ============================================================ --- src/server.cc d6e42343ba98a9dff8fc894f76786307a357ab1c +++ src/server.cc 55442d680c936f59823a36aea57a25443955a99b @@ -203,15 +203,15 @@ server::connect(string const &name) map, server_manager::serverdata>::iterator i = manager.servers.find(self()); map > opts = manager.get_opts(); - string logfilename; - if (!opts["logdir"].empty()) - { - logfilename = opts["logdir"].front(); - if (!logfilename.empty() && logfilename[logfilename.size()-1] != '/') - logfilename += '/'; - } - logfilename += i->second.name + ".log"; if (local && pid == -1) { + string logfilename; + if (!opts["logdir"].empty()) + { + logfilename = opts["logdir"].front(); + if (!logfilename.empty() && logfilename[logfilename.size()-1] != '/') + logfilename += '/'; + } + logfilename += i->second.name + ".log"; // server needs to be started // we'll try 3 times, since there's a delay between our checking that // a port's available and the server taking it @@ -227,7 +227,7 @@ server::connect(string const &name) pid = fork_server(logfilename, args); } } - if (pid == -1) + if (local && pid == -1) throw errstr("Cannot fork server."); sock s = make_outgoing(port, addr); ++connection_count;