diff --git a/checkin_notes b/checkin_notes index 0ec95cfb0d..5d215b6cfb 100755 --- a/checkin_notes +++ b/checkin_notes @@ -13261,4 +13261,13 @@ Rom 10 June 2004 gui_rpc_server.C, .h net_xfer.C win_build - *.vcproj \ No newline at end of file + *.vcproj + +David 10 June 2004 + - added "-allow_remote_gui_rpc command line flag + to allow GUI RPCs from remote hosts (courtesy of Rob Oglivie) + + client/ + client_state.C,h + cs_cmdline.C + gui_rpc_server.C diff --git a/client/client_state.C b/client/client_state.C index 5b1a45d630..2277f5288f 100644 --- a/client/client_state.C +++ b/client/client_state.C @@ -69,6 +69,7 @@ CLIENT_STATE::CLIENT_STATE() { client_state_dirty = false; exit_when_idle = false; return_results_immediately = false; + allow_remote_gui_rpc = false; run_cpu_benchmarks = false; skip_cpu_benchmarks = false; file_xfer_giveup_period = PERS_GIVEUP; diff --git a/client/client_state.h b/client/client_state.h index 31bace7b6b..e39dd2fd42 100644 --- a/client/client_state.h +++ b/client/client_state.h @@ -94,6 +94,7 @@ public: bool started_by_screensaver; bool exit_when_idle; bool return_results_immediately; + bool allow_remote_gui_rpc; bool show_projects; bool requested_exit; char detach_project_url[256]; diff --git a/client/cs_cmdline.C b/client/cs_cmdline.C index 28fb590741..4ed47dab0c 100644 --- a/client/cs_cmdline.C +++ b/client/cs_cmdline.C @@ -44,7 +44,8 @@ static void print_options(char* prog) { " -reset_project URL reset (clear) a project\n" " -attach_project attach to a project (will prompt for URL, account key)\n" " -update_prefs URL contact a project to update preferences\n" - " -run_cpu_benchmarks run the CPU benchmarks\n", + " -run_cpu_benchmarks run the CPU benchmarks\n" + " -allow_remote_gui_rpc allow remote GUI RPC connections\n", prog ); } @@ -141,6 +142,8 @@ void CLIENT_STATE::parse_cmdline(int argc, char** argv) { } else if (ARG(version)) { printf( "%.2f %s\n", MAJOR_VERSION+(MINOR_VERSION/100.0), HOSTTYPE ); exit(0); + } else if (ARG(allow_remote_gui_rpc)) { + allow_remote_gui_rpc = true; } else if (ARG(help)) { print_options(argv[0]); exit(0); diff --git a/client/gui_rpc_server.C b/client/gui_rpc_server.C index 86e71f7630..4efd00ca65 100644 --- a/client/gui_rpc_server.C +++ b/client/gui_rpc_server.C @@ -386,7 +386,7 @@ bool GUI_RPC_CONN_SET::poll() { sock = accept(lsock, (struct sockaddr*)&addr, &addr_len); #endif int peer_ip = (int) ntohl(addr.sin_addr.s_addr); - if (peer_ip != 0x7f000001) { + if (!gstate.allow_remote_gui_rpc && peer_ip != 0x7f000001) { msg_printf( NULL, MSG_ERROR, "GUI RPC request from non-local address 0x%x\n", diff --git a/doc/client_unix.php b/doc/client_unix.php index d7aee0276d..248b662a1f 100644 --- a/doc/client_unix.php +++ b/doc/client_unix.php @@ -40,6 +40,9 @@ list_item("-run_cpu_benchmarks", "Run CPU benchmarks. Do this if you have modified your computer's hardware." ); +list_item("-allow_remove_gui_rpc", + "Allow GUI RPCs from remote hosts" +); list_item("-help", "Show client options." ); diff --git a/doc/project_cookbook.php b/doc/project_cookbook.php index 52ea34a03e..25239ca09e 100644 --- a/doc/project_cookbook.php +++ b/doc/project_cookbook.php @@ -5,16 +5,21 @@ echo "

Make skeletal project

Visible result: the project web site is up. +The database 'platforms' table has several rows. +

+Troubleshooting: +check the Apache access and error logs.

Create an application version

-Visible result: 'status' shows everything running. +Visible result: 'status' shows the above daemon processes running. +

+Troubleshooting: check the log files of all daemon processes.

Test the system