diff options
| author | Mario Kilies <MarioKilies@GMX.net> | 2011-01-31 17:15:41 +0100 |
|---|---|---|
| committer | Mario Kilies <MarioKilies@GMX.net> | 2011-01-31 17:15:41 +0100 |
| commit | 0746aac341d75690ffb886d91bd3f41098220526 (patch) | |
| tree | 995e8e4f13e3f9d215f79a4b164e309e2246f921 | |
| parent | 5343c362b9479cedb7e795b9185ca662eb5f17aa (diff) | |
Separation of client/server and dgamelaunch (dedicated) server.
| -rw-r--r-- | src/game.c | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -142,16 +142,24 @@ void start_game(const bool servermode, const char* addr, const char* port, const { assert(port != NULL); // addr can be NULL for server -> listen on every address +#ifndef OXEN_DGLSERVER // No forking needed when running as dedicated server bool server_process = false; +#endif // !OXEN_DGLSERVER if(servermode) { +#ifdef OXEN_DGLSERVER + #ifdef OXEN_DEBUG + printf("Running server in dgamelaunch mode\n"); + #endif // OXEN_DEBUG +#else // No forking needed when running as dedicated server pid_t child = fork(); server_process = (child == 0); // start server as child } if(server_process) // Start server and connect to localhost { +#endif // !OXEN_DGLSERVER int server_sock; socket_list_t client_socks; @@ -180,6 +188,12 @@ void start_game(const bool servermode, const char* addr, const char* port, const } main_loop_server(&client_socks); + +#ifdef OXEN_DGLSERVER + #ifdef OXEN_DEBUG + printf("Server in dgamelaunch mode finished.\n"); + #endif // OXEN_DEBUG +#endif // OXEN_DGLSERVER } else // Connect to server { @@ -219,8 +233,10 @@ void start_game(const bool servermode, const char* addr, const char* port, const ui_fini(); +#ifndef OXEN_DGLSERVER if(servermode) // wait until server (child) has exited wait(NULL); +#endif // !OXEN_DGLSERVER } destroy_data_store(); |
