diff --git a/client/acct_mgr.cpp b/client/acct_mgr.cpp
index a39d2bc14173d424ae573b306014c4067ad89d43..6da5441df2cde4f0495341c206b8d7440bfc7042 100644
--- a/client/acct_mgr.cpp
+++ b/client/acct_mgr.cpp
@@ -188,7 +188,7 @@ int ACCT_MGR_OP::do_rpc(
             fclose(fprefs);
         }
     }
-    gstate.host_info.write(mf, !config.suppress_net_info, true);
+    gstate.host_info.write(mf, !cc_config.suppress_net_info, true);
     if (strlen(gstate.acct_mgr_info.opaque)) {
         fprintf(f,
             "   <opaque>\n%s\n"
diff --git a/client/acct_setup.cpp b/client/acct_setup.cpp
index 4be785fef7239265d8198a7efcd80fc34afe36ee..5faaff4c059252c98a08affde2ac8410d4324512 100644
--- a/client/acct_setup.cpp
+++ b/client/acct_setup.cpp
@@ -254,7 +254,7 @@ void GET_PROJECT_LIST_OP::handle_reply(int http_op_retval) {
 }
 
 void CLIENT_STATE::all_projects_list_check() {
-    if (config.dont_contact_ref_site) return;
+    if (cc_config.dont_contact_ref_site) return;
     if (all_projects_list_check_time) {
         if (now - all_projects_list_check_time < ALL_PROJECTS_LIST_CHECK_PERIOD) {
             return;
diff --git a/client/app.cpp b/client/app.cpp
index fc3ff08274e8850331e8b118c3fa5fa4e36b5782..1e6ab4cfd0cbb04cc157da9d1b7d9123f9bb7f81 100644
--- a/client/app.cpp
+++ b/client/app.cpp
@@ -241,7 +241,7 @@ void ACTIVE_TASK::cleanup_task() {
     }
 #endif
 
-    if (config.exit_after_finish) {
+    if (cc_config.exit_after_finish) {
         gstate.write_state_file();
         exit(0);
     }
@@ -416,14 +416,14 @@ void ACTIVE_TASK_SET::get_memory_usage() {
         }
     }
 
-    for (i=0; i<config.exclusive_apps.size(); i++) {
-        if (app_running(pm, config.exclusive_apps[i].c_str())) {
+    for (i=0; i<cc_config.exclusive_apps.size(); i++) {
+        if (app_running(pm, cc_config.exclusive_apps[i].c_str())) {
             exclusive_app_running = gstate.now;
             break;
         }
     }
-    for (i=0; i<config.exclusive_gpu_apps.size(); i++) {
-        if (app_running(pm, config.exclusive_gpu_apps[i].c_str())) {
+    for (i=0; i<cc_config.exclusive_gpu_apps.size(); i++) {
+        if (app_running(pm, cc_config.exclusive_gpu_apps[i].c_str())) {
             exclusive_gpu_app_running = gstate.now;
             break;
         }
diff --git a/client/app_control.cpp b/client/app_control.cpp
index 964c4a6f99eee38907a65d0df5b73fcc40ff29d6..ad143eaecd0e09dbf829bb4966cf65ecbf3c93d2 100644
--- a/client/app_control.cpp
+++ b/client/app_control.cpp
@@ -912,7 +912,7 @@ int ACTIVE_TASK::read_stderr_file() {
     int max_len = 63*1024;
     sprintf(path, "%s/%s", slot_dir, STDERR_FILE);
     if (!boinc_file_exists(path)) return 0;
-    if (read_file_malloc(path, buf1, max_len, !config.stderr_head)) {
+    if (read_file_malloc(path, buf1, max_len, !cc_config.stderr_head)) {
         return ERR_MALLOC;
     }
 
diff --git a/client/app_start.cpp b/client/app_start.cpp
index 3d40871523a39e242fc581242a100b6bf3f1f5e4..58fb736f353c63c8fa9ca333bd7ed0e0659b763c 100644
--- a/client/app_start.cpp
+++ b/client/app_start.cpp
@@ -271,7 +271,7 @@ void ACTIVE_TASK::init_app_init_data(APP_INIT_DATA& aid) {
         aid.gpu_usage = 0;
     }
     aid.ncpus = app_version->avg_ncpus;
-    aid.vbox_window = config.vbox_window;
+    aid.vbox_window = cc_config.vbox_window;
     aid.checkpoint_period = gstate.global_prefs.disk_interval;
     aid.fraction_done_start = 0;
     aid.fraction_done_end = 1;
@@ -654,7 +654,7 @@ int ACTIVE_TASK::start(bool test) {
     sprintf(file_path, "%s/%s", slot_dir, TEMPORARY_EXIT_FILE);
     delete_project_owned_file(file_path, true);
 
-    if (config.exit_before_start) {
+    if (cc_config.exit_before_start) {
         msg_printf(0, MSG_INFO, "about to start a job; exiting");
         exit(0);
     }
@@ -676,7 +676,7 @@ int ACTIVE_TASK::start(bool test) {
 
     app_client_shm.reset_msgs();
 
-    if (config.run_apps_manually) {
+    if (cc_config.run_apps_manually) {
         // fill in client's PID so we won't think app has exited
         //
         pid = GetCurrentProcessId();
@@ -695,7 +695,7 @@ int ACTIVE_TASK::start(bool test) {
 
     relative_to_absolute(slot_dir, slotdirpath);
     int prio_mask;
-    if (config.no_priority_change) {
+    if (cc_config.no_priority_change) {
         prio_mask = 0;
     } else if (high_priority) {
         prio_mask = BELOW_NORMAL_PRIORITY_CLASS;
@@ -841,7 +841,7 @@ int ACTIVE_TASK::start(bool test) {
         );
     }
 
-    if (!config.no_priority_change) {
+    if (!cc_config.no_priority_change) {
         if (setpriority(PRIO_PROCESS, pid,
             high_priority?PROCESS_MEDIUM_PRIORITY:PROCESS_IDLE_PRIORITY)
         ) {
@@ -921,7 +921,7 @@ int ACTIVE_TASK::start(bool test) {
     // PowerPC apps emulated on i386 Macs crash if running graphics
     powerpc_emulated_on_i386 = ! is_native_i386_app(exec_path);
 #endif
-    if (config.run_apps_manually) {
+    if (cc_config.run_apps_manually) {
         pid = getpid();     // use the client's PID
         set_task_state(PROCESS_EXECUTING, "start");
         return 0;
@@ -1009,7 +1009,7 @@ int ACTIVE_TASK::start(bool test) {
 
         // lower our priority if needed
         //
-        if (!config.no_priority_change) {
+        if (!cc_config.no_priority_change) {
 #if HAVE_SETPRIORITY
             if (setpriority(PRIO_PROCESS, 0,
                 high_priority?PROCESS_MEDIUM_PRIORITY:PROCESS_IDLE_PRIORITY)
diff --git a/client/client_state.cpp b/client/client_state.cpp
index 38582b50bb431d2df5513cc9d9dd0fd86d8c5492..dde7acf9cba2d10d6058e24b7bc5fa1f17049be4 100644
--- a/client/client_state.cpp
+++ b/client/client_state.cpp
@@ -405,7 +405,7 @@ int CLIENT_STATE::init() {
             coprocs.coprocs[j].type
         );
     }
-    if (!config.no_gpus
+    if (!cc_config.no_gpus
 #ifdef _WIN32
         && !executing_as_daemon
 #endif
@@ -413,7 +413,7 @@ int CLIENT_STATE::init() {
         vector<string> descs;
         vector<string> warnings;
         coprocs.get(
-            config.use_all_gpus, descs, warnings, config.ignore_gpu_instance
+            cc_config.use_all_gpus, descs, warnings, cc_config.ignore_gpu_instance
         );
         for (i=0; i<descs.size(); i++) {
             msg_printf(NULL, MSG_INFO, "%s", descs[i].c_str());
@@ -498,7 +498,7 @@ int CLIENT_STATE::init() {
     // this needs to go after parse_state_file() because
     // GPU exclusions refer to projects
     //
-    config.show();
+    cc_config.show();
 
     // inform the user if there's a newer version of client
     //
@@ -597,7 +597,7 @@ int CLIENT_STATE::init() {
     if (new_client) {
         run_cpu_benchmarks = true;
         all_projects_list_check_time = 0;
-        if (config.dont_contact_ref_site) {
+        if (cc_config.dont_contact_ref_site) {
             if (projects.size() > 0) {
                 projects[0]->master_url_fetch_pending = true;
             }
@@ -699,7 +699,7 @@ int CLIENT_STATE::init() {
     // get list of BOINC projects occasionally,
     // and initialize notice RSS feeds
     //
-    if (!config.no_info_fetch) {
+    if (!cc_config.no_info_fetch) {
         all_projects_list_check();
         notices.init_rss();
     }
@@ -1003,7 +1003,7 @@ bool CLIENT_STATE::poll_slow_events() {
             //      handle transient and permanent failures
             //      delete the FILE_XFER
 
-        if (!config.no_info_fetch) {
+        if (!cc_config.no_info_fetch) {
             POLL_ACTION(rss_feed_op            , rss_feed_op.poll );
         }
     }
@@ -1186,7 +1186,7 @@ int CLIENT_STATE::link_app_version(PROJECT* p, APP_VERSION* avp) {
 
         // any file associated with an app version must be signed
         //
-        if (!config.unsigned_apps_ok) {
+        if (!cc_config.unsigned_apps_ok) {
             fip->signature_required = true;
         }
 
@@ -1715,7 +1715,7 @@ bool CLIENT_STATE::time_to_exit() {
         );
         return true;
     }
-    if (config.exit_when_idle
+    if (cc_config.exit_when_idle
         && (results.size() == 0)
         && had_or_requested_work
     ) {
diff --git a/client/cpu_sched.cpp b/client/cpu_sched.cpp
index 5634f944a1722ad6785ccfb0511c9335462f1ac1..29eb03b8a90fe70db9edf3acdbeadf591c201329 100644
--- a/client/cpu_sched.cpp
+++ b/client/cpu_sched.cpp
@@ -578,7 +578,7 @@ static void update_rec() {
             gstate.now,
             gstate.rec_interval_start,
             x,
-            config.rec_half_life,
+            cc_config.rec_half_life,
             p->pwf.rec,
             p->pwf.rec_time
         );
@@ -1591,8 +1591,8 @@ ACTIVE_TASK* CLIENT_STATE::get_task(RESULT* rp) {
 void CLIENT_STATE::set_ncpus() {
     int ncpus_old = ncpus;
 
-    if (config.ncpus>0) {
-        ncpus = config.ncpus;
+    if (cc_config.ncpus>0) {
+        ncpus = cc_config.ncpus;
         host_info.p_ncpus = ncpus;
     } else if (host_info.p_ncpus>0) {
         ncpus = host_info.p_ncpus;
diff --git a/client/cs_account.cpp b/client/cs_account.cpp
index 74a2c028d624ceb6492fc1576d28c0310569d9b7..15ed20e6cebd49ba0838a09dc71ebaf0320be1d1 100644
--- a/client/cs_account.cpp
+++ b/client/cs_account.cpp
@@ -511,7 +511,7 @@ int CLIENT_STATE::add_project(
     FILE* f;
     int retval;
 
-    if (config.disallow_attach) {
+    if (cc_config.disallow_attach) {
         return ERR_USER_PERMISSION;
     }
 
diff --git a/client/cs_benchmark.cpp b/client/cs_benchmark.cpp
index 51efce447a77daa746c73407175fc40fa0b38345..85a1aa62c4d3641baed33de7439a458c4b6a7c7f 100644
--- a/client/cs_benchmark.cpp
+++ b/client/cs_benchmark.cpp
@@ -240,7 +240,7 @@ void CLIENT_STATE::start_cpu_benchmarks() {
         return;
     }
 
-    if (config.skip_cpu_benchmarks) {
+    if (cc_config.skip_cpu_benchmarks) {
         if (log_flags.benchmark_debug) {
             msg_printf(0, MSG_INFO,
                 "[benchmark] start_cpu_benchmarks(): Skipping CPU benchmarks"
diff --git a/client/cs_cmdline.cpp b/client/cs_cmdline.cpp
index 807b6d41bee6e31d78c8f5ea9097b3588cd05d88..4194df56fa965b6b633dc6abe34e2e73be2e15a6 100644
--- a/client/cs_cmdline.cpp
+++ b/client/cs_cmdline.cpp
@@ -127,11 +127,11 @@ void CLIENT_STATE::parse_cmdline(int argc, char** argv) {
     for (i=1; i<argc; i++) {
         if (0) {
         } else if (ARG(abort_jobs_on_exit)) {
-            config.abort_jobs_on_exit = true;
+            cc_config.abort_jobs_on_exit = true;
         } else if (ARG(allow_multiple_clients)) {
-            config.allow_multiple_clients = true;
+            cc_config.allow_multiple_clients = true;
         } else if (ARG(allow_remote_gui_rpc)) {
-            config.allow_remote_gui_rpc = true;
+            cc_config.allow_remote_gui_rpc = true;
         } else if (ARG(attach_project)) {
             if (i >= argc-2) {
                 show_options = true;
@@ -161,16 +161,16 @@ void CLIENT_STATE::parse_cmdline(int argc, char** argv) {
             if (i == argc-1) show_options = true;
             else exit_after_app_start_secs = atoi(argv[++i]);
         } else if (ARG(exit_after_finish)) {
-            config.exit_after_finish = true;
+            cc_config.exit_after_finish = true;
         } else if (ARG(exit_before_start)) {
-            config.exit_before_start = true;
+            cc_config.exit_before_start = true;
         } else if (ARG(exit_before_upload)) {
             exit_before_upload = true;
         } else if (ARG(exit_when_idle)) {
-            config.exit_when_idle = true;
-            config.report_results_immediately = true;
+            cc_config.exit_when_idle = true;
+            cc_config.report_results_immediately = true;
         } else if (ARG(fetch_minimal_work)) {
-            config.fetch_minimal_work = true;
+            cc_config.fetch_minimal_work = true;
         } else if (ARG(file_xfer_giveup_period)) {
             if (i == argc-1) show_options = true;
             else file_xfer_giveup_period = atoi(argv[++i]);
@@ -198,13 +198,13 @@ void CLIENT_STATE::parse_cmdline(int argc, char** argv) {
             if (i == argc-1) show_options = true;
             else master_fetch_retry_cap = atoi(argv[++i]);
         } else if (ARG(no_gpus)) {
-            config.no_gpus = true;
+            cc_config.no_gpus = true;
         } else if (ARG(no_gui_rpc)) {
             no_gui_rpc = true;
         } else if (ARG(no_info_fetch)) {
-            config.no_info_fetch = true;
+            cc_config.no_info_fetch = true;
         } else if (ARG(no_priority_change)) {
-            config.no_priority_change = true;
+            cc_config.no_priority_change = true;
         } else if (ARG(pers_giveup)) {
             if (i == argc-1) show_options = true;
             else pers_giveup = atoi(argv[++i]);
@@ -239,15 +239,15 @@ void CLIENT_STATE::parse_cmdline(int argc, char** argv) {
         } else if (ARG(show_projects)) {
             show_projects = true;
         } else if (ARG(skip_cpu_benchmarks)) {
-            config.skip_cpu_benchmarks = true;
+            cc_config.skip_cpu_benchmarks = true;
         } else if (ARG(start_delay)) {
             if (i == argc-1) show_options = true;
-            else config.start_delay = atof(argv[++i]);
+            else cc_config.start_delay = atof(argv[++i]);
         } else if (ARG(suppress_net_info)) {
-            config.suppress_net_info = true;
+            cc_config.suppress_net_info = true;
         } else if (ARG(unsigned_apps_ok)) {
-            config.unsigned_apps_ok = true;
-            config.dont_check_file_sizes = true;
+            cc_config.unsigned_apps_ok = true;
+            cc_config.dont_check_file_sizes = true;
         } else if (ARG(update_prefs)) {
             if (i == argc-1) show_options = true;
             else safe_strcpy(update_prefs_url, argv[++i]);
diff --git a/client/cs_files.cpp b/client/cs_files.cpp
index dcd7aa7aa6d172294662a0013813df0c5b9a87f5..0233f94a3c580a688a6e788b97acd2080a5b10bb 100644
--- a/client/cs_files.cpp
+++ b/client/cs_files.cpp
@@ -70,8 +70,8 @@ bool CLIENT_STATE::start_new_file_xfer(PERS_FILE_XFER& pfx) {
             }
         }
     }
-    if (nproj >= config.max_file_xfers_per_project) return false;
-    if (ntotal >= config.max_file_xfers) return false;
+    if (nproj >= cc_config.max_file_xfers_per_project) return false;
+    if (ntotal >= cc_config.max_file_xfers) return false;
     return true;
 }
 
@@ -216,7 +216,7 @@ int FILE_INFO::verify_file(
         return 0;
     }
 
-    if (nbytes && (nbytes != size) && (!config.dont_check_file_sizes)) {
+    if (nbytes && (nbytes != size) && (!cc_config.dont_check_file_sizes)) {
         if (show_errors) {
             msg_printf(project, MSG_INTERNAL_ERROR,
                 "File %s has wrong size: expected %.0f, got %.0f",
@@ -241,13 +241,13 @@ int FILE_INFO::verify_file(
             status = ERR_NO_SIGNATURE;
             return ERR_NO_SIGNATURE;
         }
-        if (config.use_certs || config.use_certs_only) {
+        if (cc_config.use_certs || cc_config.use_certs_only) {
             if (verify_file_certs()) {
                 verified = true;
                 return 0;
             }
         }
-        if (config.use_certs_only) {
+        if (cc_config.use_certs_only) {
             msg_printf(project, MSG_INTERNAL_ERROR,
                 "Unable to verify %s using certificates", name
             );
@@ -470,7 +470,7 @@ void CLIENT_STATE::check_file_existence() {
             fip->reset();
             continue;
         }
-        if (config.dont_check_file_sizes) continue;
+        if (cc_config.dont_check_file_sizes) continue;
         if (fip->status == FILE_PRESENT) {
             get_pathname(fip, path, sizeof(path));
             double size;
diff --git a/client/cs_platforms.cpp b/client/cs_platforms.cpp
index 6fa25caa173eb7b06964e5ba4c1f6a245b418872..bd257b5f3095ae32177119502782b00a3ef0a1e2 100644
--- a/client/cs_platforms.cpp
+++ b/client/cs_platforms.cpp
@@ -295,7 +295,7 @@ void CLIENT_STATE::detect_platforms() {
 
 #endif
 
-    if (config.no_alt_platform) {
+    if (cc_config.no_alt_platform) {
         PLATFORM p = platforms[0];
         platforms.clear();
         platforms.push_back(p);
@@ -303,8 +303,8 @@ void CLIENT_STATE::detect_platforms() {
 
     // add platforms listed in cc_config.xml AFTER the above.
     //
-    for (unsigned int i=0; i<config.alt_platforms.size(); i++) {
-        add_platform(config.alt_platforms[i].c_str());
+    for (unsigned int i=0; i<cc_config.alt_platforms.size(); i++) {
+        add_platform(cc_config.alt_platforms[i].c_str());
     }
 }
 
diff --git a/client/cs_prefs.cpp b/client/cs_prefs.cpp
index d7b7587ad53d60c79ece0b6e20f20c1cd6b33177..df7e1d4e06ee6b04d06e53c156e29c16ee18783b 100644
--- a/client/cs_prefs.cpp
+++ b/client/cs_prefs.cpp
@@ -207,7 +207,7 @@ int CLIENT_STATE::check_suspend_processing() {
         return SUSPEND_REASON_BENCHMARKS;
     }
 
-    if (config.start_delay && now < time_stats.client_start_time + config.start_delay) {
+    if (cc_config.start_delay && now < time_stats.client_start_time + cc_config.start_delay) {
         return SUSPEND_REASON_INITIAL_DELAY;
     }
 
@@ -411,7 +411,7 @@ void CLIENT_STATE::check_suspend_network() {
 
     // no network traffic if we're allowing unsigned apps
     //
-    if (config.unsigned_apps_ok) {
+    if (cc_config.unsigned_apps_ok) {
         network_suspended = true;
         file_xfers_suspended = true;
         network_suspend_reason = SUSPEND_REASON_USER_REQ;
diff --git a/client/cs_scheduler.cpp b/client/cs_scheduler.cpp
index b501ba6ad65007b5d3e400bc931eda9b07dede15..ad7f0070b0b54427c7a0f225d90c358562d77210 100644
--- a/client/cs_scheduler.cpp
+++ b/client/cs_scheduler.cpp
@@ -136,7 +136,7 @@ int CLIENT_STATE::make_scheduler_request(PROJECT* p) {
         rrs_fraction,
         prrs_fraction,
         p->duration_correction_factor,
-        config.allow_multiple_clients?1:0,
+        cc_config.allow_multiple_clients?1:0,
         g_use_sandbox?1:0
     );
     work_fetch.write_request(f, p);
@@ -210,7 +210,7 @@ int CLIENT_STATE::make_scheduler_request(PROJECT* p) {
     //
     host_info.get_host_info();
     set_ncpus();
-    host_info.write(mf, !config.suppress_net_info, false);
+    host_info.write(mf, !cc_config.suppress_net_info, false);
 
     // get and write disk usage
     //
@@ -260,8 +260,8 @@ int CLIENT_STATE::make_scheduler_request(PROJECT* p) {
             p->nresults_returned++;
             rp->write(mf, true);
         }
-        if (config.max_tasks_reported
-            && (p->nresults_returned >= config.max_tasks_reported)
+        if (cc_config.max_tasks_reported
+            && (p->nresults_returned >= cc_config.max_tasks_reported)
         ) {
             last_reported_index = i;
             break;
@@ -527,7 +527,7 @@ bool CLIENT_STATE::scheduler_rpc_poll() {
     default:
         return false;
     }
-    if (config.fetch_minimal_work && had_or_requested_work) {
+    if (cc_config.fetch_minimal_work && had_or_requested_work) {
         return false;
     }
 
@@ -1292,7 +1292,7 @@ PROJECT* CLIENT_STATE::find_project_with_overdue_results(
             return p;
         }
 
-        if (config.report_results_immediately) {
+        if (cc_config.report_results_immediately) {
             return p;
         }
 
diff --git a/client/current_version.cpp b/client/current_version.cpp
index b37b02cf1b48fdefb2d3496d40b9af3babaa467a..2a7519ac3a3365fe78a64af6f7285f850bcbdb05 100644
--- a/client/current_version.cpp
+++ b/client/current_version.cpp
@@ -32,7 +32,7 @@ int GET_CURRENT_VERSION_OP::do_rpc() {
     int retval;
 
     retval = gui_http->do_rpc(
-        this, config.client_version_check_url.c_str(),
+        this, cc_config.client_version_check_url.c_str(),
         GET_CURRENT_VERSION_FILENAME,
         true
     );
@@ -84,21 +84,21 @@ static bool parse_version(FILE* f, char* new_version, int len) {
 }
 
 static void show_newer_version_msg(const char* new_vers) {
-    if (config.client_new_version_text.empty()) {
+    if (cc_config.client_new_version_text.empty()) {
         msg_printf_notice(0, true,
             "http://boinc.berkeley.edu/manager_links.php?target=notice&controlid=download",
             "%s (%s) <a href=%s>%s</a>",
             _("A new version of BOINC is available."),
             new_vers,
-            config.client_download_url.c_str(),
+            cc_config.client_download_url.c_str(),
             _("Download")
         );
     } else {
         msg_printf_notice(0, true, NULL,
             "%s (%s) <a href=%s>%s</a>",
-            config.client_new_version_text.c_str(),
+            cc_config.client_new_version_text.c_str(),
             new_vers,
-            config.client_download_url.c_str(),
+            cc_config.client_download_url.c_str(),
             _("Download")
         );
     }
diff --git a/client/gpu_nvidia.cpp b/client/gpu_nvidia.cpp
index c74946e6a6ee38a9ab89c24892aeb2acc75cd6be..9f20296a4542d30aaf8b72f7b8f876f4842ebd87 100644
--- a/client/gpu_nvidia.cpp
+++ b/client/gpu_nvidia.cpp
@@ -264,6 +264,7 @@ void COPROC_NVIDIA::get(
     // But not FLOPs per clock cycle :-(
     // Anyway, don't use this for now because server code estimates FLOPS
     // based on compute capability, so we may as well do the same
+    // See http://docs.nvidia.com/gameworks/content/gameworkslibrary/coresdk/nvapi/
     //
     NvPhysicalGpuHandle GPUHandle[NVAPI_MAX_PHYSICAL_GPUS];
     NvU32 GpuCount, nc;
diff --git a/client/gui_rpc_server.cpp b/client/gui_rpc_server.cpp
index b12eda1593f2d2dfed37ff767863ffe8d3956c95..b4c425e8d0dea3b94cde4907c71d390571537e83 100644
--- a/client/gui_rpc_server.cpp
+++ b/client/gui_rpc_server.cpp
@@ -137,7 +137,7 @@ void GUI_RPC_CONN_SET::get_password() {
     //
     retval = make_random_string(password);
     if (retval) {
-        if (config.os_random_only) {
+        if (cc_config.os_random_only) {
             msg_printf(
                 NULL, MSG_INTERNAL_ERROR,
                 "OS random string generation failed, exiting"
@@ -310,7 +310,7 @@ int GUI_RPC_CONN_SET::init_tcp(bool last_time) {
 #ifdef __APPLE__
     addr.sin_addr.s_addr = htonl(INADDR_ANY);
 #else
-    if (config.allow_remote_gui_rpc || remote_hosts_file_exists) {
+    if (cc_config.allow_remote_gui_rpc || remote_hosts_file_exists) {
         addr.sin_addr.s_addr = htonl(INADDR_ANY);
         if (log_flags.gui_rpc_debug) {
             msg_printf(NULL, MSG_INFO, "[gui_rpc] Remote control allowed");
@@ -468,7 +468,7 @@ void GUI_RPC_CONN_SET::got_select(FDSET_GROUP& fg) {
         //
         if (gstate.gui_rpc_unix_domain) {
             host_allowed = true;
-        } else if (config.allow_remote_gui_rpc) {
+        } else if (cc_config.allow_remote_gui_rpc) {
             host_allowed = true;
         } else if (is_localhost(addr)) {
             host_allowed = true;
diff --git a/client/gui_rpc_server_ops.cpp b/client/gui_rpc_server_ops.cpp
index c0accb1cf802c49d9bfb591a8310ee8681abbca0..eed7b4afee9d5ae864cb49616b9073724d98871a 100644
--- a/client/gui_rpc_server_ops.cpp
+++ b/client/gui_rpc_server_ops.cpp
@@ -678,9 +678,9 @@ static void handle_get_cc_status(GUI_RPC_CONN& grc) {
         gstate.network_run_mode.get_current(),
         gstate.network_run_mode.get_perm(),
         gstate.network_run_mode.delay(),
-        config.disallow_attach?1:0,
-        config.simple_gui_only?1:0,
-        config.max_event_log_lines
+        cc_config.disallow_attach?1:0,
+        cc_config.simple_gui_only?1:0,
+        cc_config.max_event_log_lines
     );
     if (grc.au_mgr_state == AU_MGR_QUIT_REQ) {
         grc.mfout.printf(
@@ -972,7 +972,7 @@ static void handle_get_newer_version(GUI_RPC_CONN& grc) {
         "<newer_version>%s</newer_version>\n"
         "<download_url>%s</download_url>\n",
         gstate.newer_version.c_str(),
-        config.client_download_url.c_str()
+        cc_config.client_download_url.c_str()
     );
 }
 
@@ -1127,7 +1127,7 @@ static void handle_read_global_prefs_override(GUI_RPC_CONN& grc) {
 static void handle_read_cc_config(GUI_RPC_CONN& grc) {
     grc.mfout.printf("<success/>\n");
     read_config_file(false);
-    config.show();
+    cc_config.show();
     log_flags.show();
     gstate.set_ncpus();
     process_gpu_exclusions();
diff --git a/client/http_curl.cpp b/client/http_curl.cpp
index c0c113bd35f7e24e14c661554081707415828448..ea2b6c325966f42b30a3c1c3d1d698e0c7779378 100644
--- a/client/http_curl.cpp
+++ b/client/http_curl.cpp
@@ -549,14 +549,14 @@ int HTTP_OP::libcurl_exec(
     // setup timeouts
     //
     curl_easy_setopt(curlEasy, CURLOPT_TIMEOUT, 0L);
-    curl_easy_setopt(curlEasy, CURLOPT_LOW_SPEED_LIMIT, config.http_transfer_timeout_bps);
-    curl_easy_setopt(curlEasy, CURLOPT_LOW_SPEED_TIME, config.http_transfer_timeout);
+    curl_easy_setopt(curlEasy, CURLOPT_LOW_SPEED_LIMIT, cc_config.http_transfer_timeout_bps);
+    curl_easy_setopt(curlEasy, CURLOPT_LOW_SPEED_TIME, cc_config.http_transfer_timeout);
     curl_easy_setopt(curlEasy, CURLOPT_CONNECTTIMEOUT, 120L);
 
     // force curl to use HTTP/1.0 if config specifies it
     // (curl uses 1.1 by default)
     //
-    if (config.http_1_0 || (config.force_auth == "ntlm")) {
+    if (cc_config.http_1_0 || (cc_config.force_auth == "ntlm")) {
         curl_easy_setopt(curlEasy, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
     }
     curl_easy_setopt(curlEasy, CURLOPT_MAXREDIRS, 50L);
@@ -829,13 +829,13 @@ void HTTP_OP::setup_proxy_session(bool no_proxy) {
         curl_easy_setopt(curlEasy, CURLOPT_PROXY, (char*) pi.http_server_name);
 
         if (pi.use_http_auth) {
-            if (config.force_auth == "basic") {
+            if (cc_config.force_auth == "basic") {
                 curl_easy_setopt(curlEasy, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
-            } else if (config.force_auth == "digest") {
+            } else if (cc_config.force_auth == "digest") {
                 curl_easy_setopt(curlEasy, CURLOPT_PROXYAUTH, CURLAUTH_DIGEST);
-            } else if (config.force_auth == "gss-negotiate") {
+            } else if (cc_config.force_auth == "gss-negotiate") {
                 curl_easy_setopt(curlEasy, CURLOPT_PROXYAUTH, CURLAUTH_GSSNEGOTIATE);
-            } else if (config.force_auth == "ntlm") {
+            } else if (cc_config.force_auth == "ntlm") {
                 curl_easy_setopt(curlEasy, CURLOPT_PROXYAUTH, CURLAUTH_NTLM);
             } else {
                 curl_easy_setopt(curlEasy, CURLOPT_PROXYAUTH, CURLAUTH_ANY);
diff --git a/client/log_flags.cpp b/client/log_flags.cpp
index 8d75e5587c26e0e29d51d7dbfa27d45674ba5e6d..6df25fa63a715946297b8c0385fd0c519e6a56c6 100644
--- a/client/log_flags.cpp
+++ b/client/log_flags.cpp
@@ -48,7 +48,7 @@
 using std::string;
 
 LOG_FLAGS log_flags;
-CONFIG config;
+CC_CONFIG cc_config;
 
 static void show_flag(char* buf, bool flag, const char* flag_name) {
     if (!flag) return;
@@ -151,10 +151,10 @@ static void show_exclude_gpu(EXCLUDE_GPU& e) {
 //
 // TODO: show other config options
 //
-void CONFIG::show() {
+void CC_CONFIG::show() {
     unsigned int i;
     if (ncpus>0) {
-        msg_printf(NULL, MSG_INFO, "Config: simulate %d CPUs", config.ncpus);
+        msg_printf(NULL, MSG_INFO, "Config: simulate %d CPUs", cc_config.ncpus);
     }
     if (no_gpus) {
         msg_printf(NULL, MSG_INFO, "Config: don't use coprocessors");
@@ -241,10 +241,10 @@ void CONFIG::show() {
 }
 
 // This is used by the BOINC client.
-// KEEP IN SYNCH WITH CONFIG::parse_options()!!
+// KEEP IN SYNCH WITH CC_CONFIG::parse_options()!!
 // (It's separate so that we can write messages in it)
 
-int CONFIG::parse_options_client(XML_PARSER& xp) {
+int CC_CONFIG::parse_options_client(XML_PARSER& xp) {
     char path[MAXPATHLEN];
     string s;
     int n, retval;
@@ -423,12 +423,12 @@ int CONFIG::parse_options_client(XML_PARSER& xp) {
             _("Unrecognized tag in cc_config.xml"),
             xp.parsed_tag
         );
-        xp.skip_unexpected(true, "CONFIG::parse_options");
+        xp.skip_unexpected(true, "CC_CONFIG::parse_options");
     }
     return ERR_XML_PARSE;
 }
 
-int CONFIG::parse_client(FILE* f) {
+int CC_CONFIG::parse_client(FILE* f) {
     MIOFILE mf;
     XML_PARSER xp(&mf);
 
@@ -475,7 +475,7 @@ int CONFIG::parse_client(FILE* f) {
             _("Unrecognized tag in cc_config.xml"),
             xp.parsed_tag
         );
-        xp.skip_unexpected(true, "CONFIG.parse");
+        xp.skip_unexpected(true, "CC_CONFIG.parse");
     }
     msg_printf_notice(NULL, false,
         "http://boinc.berkeley.edu/manager_links.php?target=notice&controlid=config",
@@ -485,7 +485,7 @@ int CONFIG::parse_client(FILE* f) {
     return ERR_XML_PARSE;
 }
 
-int CONFIG::parse(FILE* f) {
+int CC_CONFIG::parse(FILE* f) {
     MIOFILE mf;
     mf.init_file(f);
     XML_PARSER xp(&mf);
@@ -499,7 +499,7 @@ int CONFIG::parse(FILE* f) {
 int read_config_file(bool init, const char* fname) {
     if (!init) {
         msg_printf(NULL, MSG_INFO, "Re-reading %s", fname);
-        config.defaults();
+        cc_config.defaults();
         log_flags.init();
     }
     FILE* f = boinc_fopen(fname, "r");
@@ -507,25 +507,25 @@ int read_config_file(bool init, const char* fname) {
         msg_printf(NULL, MSG_INFO, "cc_config.xml not found - using defaults");
         return ERR_FOPEN;
     }
-    config.parse_client(f);
+    cc_config.parse_client(f);
     fclose(f);
 #ifndef SIM
     diagnostics_set_max_file_sizes(
-        config.max_stdout_file_size, config.max_stderr_file_size
+        cc_config.max_stdout_file_size, cc_config.max_stderr_file_size
     );
 #endif
-    config_proxy_info = config.proxy_info;
+    config_proxy_info = cc_config.proxy_info;
 
     if (init) {
-        coprocs = config.config_coprocs;
-        if (strlen(config.data_dir)) {
+        coprocs = cc_config.config_coprocs;
+        if (strlen(cc_config.data_dir)) {
 #ifdef _WIN32
-            _chdir(config.data_dir);
+            _chdir(cc_config.data_dir);
 #else
-            if (chdir(config.data_dir)) {
+            if (chdir(cc_config.data_dir)) {
                 msg_printf(NULL, MSG_INFO,
                     "Couldn't change to directory specified in cc_config.xml: %s",
-                    config.data_dir
+                    cc_config.data_dir
                 );
                 return ERR_OPENDIR;
             }
@@ -556,8 +556,8 @@ void process_gpu_exclusions() {
 
     // check the syntactic validity of the exclusions
     //
-    for (i=0; i<config.exclude_gpus.size(); i++) {
-        EXCLUDE_GPU& eg = config.exclude_gpus[i];
+    for (i=0; i<cc_config.exclude_gpus.size(); i++) {
+        EXCLUDE_GPU& eg = cc_config.exclude_gpus[i];
         p = gstate.lookup_project(eg.url.c_str());
         if (!p) {
             msg_printf(0, MSG_USER_ALERT,
@@ -615,8 +615,8 @@ void process_gpu_exclusions() {
         for (int k=1; k<coprocs.n_rsc; k++) {
             COPROC& cp = coprocs.coprocs[k];
             int all_instances = (1<<cp.count)-1;  // bitmap of 1 for all inst
-            for (j=0; j<config.exclude_gpus.size(); j++) {
-                EXCLUDE_GPU& eg = config.exclude_gpus[j];
+            for (j=0; j<cc_config.exclude_gpus.size(); j++) {
+                EXCLUDE_GPU& eg = cc_config.exclude_gpus[j];
                 if (!eg.type.empty() && (eg.type != cp.type)) continue;
                 if (strcmp(eg.url.c_str(), p->master_url)) continue;
                 int mask;
@@ -708,10 +708,10 @@ void process_gpu_exclusions() {
 }
 
 bool gpu_excluded(APP* app, COPROC& cp, int ind) {
-    if (config.no_gpus) return true;
+    if (cc_config.no_gpus) return true;
     PROJECT* p = app->project;
-    for (unsigned int i=0; i<config.exclude_gpus.size(); i++) {
-        EXCLUDE_GPU& eg = config.exclude_gpus[i];
+    for (unsigned int i=0; i<cc_config.exclude_gpus.size(); i++) {
+        EXCLUDE_GPU& eg = cc_config.exclude_gpus[i];
         if (strcmp(eg.url.c_str(), p->master_url)) continue;
         if (!eg.type.empty() && (eg.type != cp.type)) continue;
         if (!eg.appname.empty() && (eg.appname != app->name)) continue;
diff --git a/client/log_flags.h b/client/log_flags.h
index 2060ab0eb6f94a710a87ecb76bb11b9262070c59..9eeb47ac376ba4a62a6733fa820d527ed46012b9 100644
--- a/client/log_flags.h
+++ b/client/log_flags.h
@@ -35,7 +35,7 @@
 #include "cc_config.h"
 
 extern LOG_FLAGS log_flags;
-extern CONFIG config;
+extern CC_CONFIG cc_config;
 extern int read_config_file(bool init, const char* fname=CONFIG_FILE);
 extern void process_gpu_exclusions();
 extern bool gpu_excluded(APP* app, COPROC& cp, int ind);
diff --git a/client/main.cpp b/client/main.cpp
index 1bfaec61cb0068d5bb52a46cdbb3b866389d544d..9cf60bc2e718149a70a7d347caa5525847d2861b 100644
--- a/client/main.cpp
+++ b/client/main.cpp
@@ -179,12 +179,12 @@ static void init_core_client(int argc, char** argv) {
     setbuf(stdout, 0);
     setbuf(stderr, 0);
 
-    config.defaults();
+    cc_config.defaults();
     gstate.parse_cmdline(argc, argv);
     gstate.now = dtime();
 
 #ifdef _WIN32
-    if (!config.allow_multiple_clients) {
+    if (!cc_config.allow_multiple_clients) {
         chdir_to_data_dir();
     }
 #endif
@@ -283,7 +283,7 @@ static void do_gpu_detection(int argc, char** argv) {
 static int initialize() {
     int retval;
 
-    if (!config.allow_multiple_clients) {
+    if (!cc_config.allow_multiple_clients) {
         retval = wait_client_mutex(".", 10);
         if (retval) {
             log_message_error("Another instance of BOINC is running.");
@@ -372,7 +372,7 @@ int boinc_main_loop() {
             break;
         }
         if (gstate.requested_exit) {
-            if (config.abort_jobs_on_exit) {
+            if (cc_config.abort_jobs_on_exit) {
                 if (!gstate.in_abort_sequence) {
                     msg_printf(NULL, MSG_INFO,
                         "Exit requested; starting abort sequence"
diff --git a/client/net_stats.cpp b/client/net_stats.cpp
index b83190b129c63fe55fcb1b7736d3b443e420dcc4..a76869b64f9696e7049b7503d55a598b59bd9018 100644
--- a/client/net_stats.cpp
+++ b/client/net_stats.cpp
@@ -198,7 +198,7 @@ void NET_STATUS::got_http_error() {
     // Don't spam the reference site when a project is down
     if (need_physical_connection) return;
 
-    if (config.dont_contact_ref_site) return;
+    if (cc_config.dont_contact_ref_site) return;
 
     if (log_flags.network_status_debug) {
         msg_printf(0, MSG_INFO,
@@ -217,10 +217,10 @@ void NET_STATUS::contact_reference_site() {
     if (log_flags.network_status_debug) {
         msg_printf(0, MSG_INFO,
             "[network_status] need_phys_conn %d; trying %s",
-            need_physical_connection, config.network_test_url.c_str()
+            need_physical_connection, cc_config.network_test_url.c_str()
         );
     }
-    gstate.lookup_website_op.do_rpc(config.network_test_url);
+    gstate.lookup_website_op.do_rpc(cc_config.network_test_url);
     need_to_contact_reference_site = false;
 }
 
diff --git a/client/project.cpp b/client/project.cpp
index 52b4ecad6b9c2ded6c227293d815ad7fc444ffaf..3eca55cff8ac3017fd628e634bfc6b23db44f3c9 100644
--- a/client/project.cpp
+++ b/client/project.cpp
@@ -840,7 +840,7 @@ bool PROJECT::waiting_until_min_rpc_time() {
 }
 
 void PROJECT::trim_statistics() {
-    double cutoff = dday() - config.save_stats_days*86400;
+    double cutoff = dday() - cc_config.save_stats_days*86400;
     // delete old stats; fill in the gaps if some days missing
     //
     while (!statistics.empty()) {
diff --git a/client/rr_sim.cpp b/client/rr_sim.cpp
index c4d5e60c5febcb4f96fb166758e0e289a5e3897f..484d284030d5faaf93c0a62be90914807155a129 100644
--- a/client/rr_sim.cpp
+++ b/client/rr_sim.cpp
@@ -510,7 +510,7 @@ void RR_SIM::simulate() {
                 sim_now+delta_t,
                 sim_now,
                 x,
-                config.rec_half_life,
+                cc_config.rec_half_life,
                 p->pwf.rec_temp,
                 dtemp
             );
diff --git a/client/scheduler_op.cpp b/client/scheduler_op.cpp
index d709fb5e2e7bc9c2f501afe7c7563f85275df4c1..6a05cfa780b65b4b2f54156c26c83a12cbaba68e 100644
--- a/client/scheduler_op.cpp
+++ b/client/scheduler_op.cpp
@@ -128,7 +128,7 @@ int SCHEDULER_OP::init_op_project(PROJECT* p, int r) {
         // Now's a good time to check for new BOINC versions
         // and project list
         //
-        if (!config.no_info_fetch) {
+        if (!cc_config.no_info_fetch) {
             gstate.new_version_check();
             gstate.all_projects_list_check();
         }
diff --git a/client/work_fetch.cpp b/client/work_fetch.cpp
index 30480c52e428bfaac8c3b7957365bb5f199c0dec..31ce7720549d2189fc83c19a9152d5ce019277fe 100644
--- a/client/work_fetch.cpp
+++ b/client/work_fetch.cpp
@@ -65,8 +65,8 @@ void set_no_rsc_config() {
             for (int k=0; k<c.count; k++) {
                 allowed[c.device_nums[k]] = true;
             }
-            for (unsigned int k=0; k<config.exclude_gpus.size(); k++) {
-                EXCLUDE_GPU& e = config.exclude_gpus[k];
+            for (unsigned int k=0; k<cc_config.exclude_gpus.size(); k++) {
+                EXCLUDE_GPU& e = cc_config.exclude_gpus[k];
                 if (strcmp(e.url.c_str(), p.master_url)) continue;
                 if (!e.type.empty() && strcmp(e.type.c_str(), c.type)) continue;
                 if (!e.appname.empty()) continue;
@@ -199,7 +199,7 @@ void RSC_WORK_FETCH::set_request(PROJECT* p) {
         req_secs = 1;
         return;
     }
-    if (config.fetch_minimal_work) {
+    if (cc_config.fetch_minimal_work) {
         req_instances = ninstances;
         req_secs = 1;
         return;
@@ -256,7 +256,7 @@ void RSC_WORK_FETCH::set_request_excluded(PROJECT* p) {
     }
     DEBUG(msg_printf(p, MSG_INFO, "set_request_excluded() %d %d %d", sim_excluded_instances, pwf.non_excluded_instances, n));
     req_instances = n;
-    if (p->resource_share == 0 || config.fetch_minimal_work) {
+    if (p->resource_share == 0 || cc_config.fetch_minimal_work) {
         req_secs = 1;
     } else {
         req_secs = n*gstate.work_buf_total();
@@ -469,7 +469,7 @@ bool WORK_FETCH::requested_work() {
 void WORK_FETCH::piggyback_work_request(PROJECT* p) {
     DEBUG(msg_printf(p, MSG_INFO, "piggyback_work_request()");)
     clear_request();
-    if (config.fetch_minimal_work && gstate.had_or_requested_work) return;
+    if (cc_config.fetch_minimal_work && gstate.had_or_requested_work) return;
     if (p->non_cpu_intensive) {
         if (!has_a_job_in_progress(p) && !p->dont_request_more_work) {
             rsc_work_fetch[0].req_secs = 1;
@@ -492,7 +492,7 @@ void WORK_FETCH::piggyback_work_request(PROJECT* p) {
     // able to fetch it
     //
     bool check_higher_priority_projects = true;
-    if (p->sched_rpc_pending && config.fetch_on_update) {
+    if (p->sched_rpc_pending && cc_config.fetch_on_update) {
         check_higher_priority_projects = false;
     }
 
diff --git a/lib/cc_config.cpp b/lib/cc_config.cpp
index d1d9a3cd61c168600cf45149d082749f403e4bcd..e9d5e40f3f7f15fde2200bdedb804e82db245b06 100644
--- a/lib/cc_config.cpp
+++ b/lib/cc_config.cpp
@@ -191,12 +191,12 @@ int LOG_FLAGS::write(MIOFILE& out) {
     return 0;
 }
 
-CONFIG::CONFIG() {
+CC_CONFIG::CC_CONFIG() {
 }
 
 // this is called first thing by client
 //
-void CONFIG::defaults() {
+void CC_CONFIG::defaults() {
     abort_jobs_on_exit = false;
     allow_multiple_clients = false;
     allow_remote_gui_rpc = false;
@@ -282,9 +282,9 @@ int EXCLUDE_GPU::parse(XML_PARSER& xp) {
 }
 
 // This is used by GUI RPC clients, NOT by the BOINC client
-// KEEP IN SYNCH WITH CONFIG::parse_options_client()!!
+// KEEP IN SYNCH WITH CC_CONFIG::parse_options_client()!!
 //
-int CONFIG::parse_options(XML_PARSER& xp) {
+int CC_CONFIG::parse_options(XML_PARSER& xp) {
     string s;
     int n, retval;
 
@@ -430,12 +430,12 @@ int CONFIG::parse_options(XML_PARSER& xp) {
         if (xp.parse_bool("use_certs_only", use_certs_only)) continue;
         if (xp.parse_bool("vbox_window", vbox_window)) continue;
 
-        xp.skip_unexpected(true, "CONFIG::parse_options");
+        xp.skip_unexpected(true, "CC_CONFIG::parse_options");
     }
     return ERR_XML_PARSE;
 }
 
-int CONFIG::parse(XML_PARSER& xp, LOG_FLAGS& log_flags) {
+int CC_CONFIG::parse(XML_PARSER& xp, LOG_FLAGS& log_flags) {
     while (!xp.get_tag()) {
         if (!xp.is_tag) {
             continue;
@@ -480,7 +480,7 @@ void EXCLUDE_GPU::write(MIOFILE& out) {
     );
 }
 
-int CONFIG::write(MIOFILE& out, LOG_FLAGS& log_flags) {
+int CC_CONFIG::write(MIOFILE& out, LOG_FLAGS& log_flags) {
     int j;
     unsigned int i;
 
diff --git a/lib/cc_config.h b/lib/cc_config.h
index 6c5b607fcd75fd8964286d8e8cf39d8c5938a2b4..5b1eb505cab12f5b1d182482bb6596566ced4e98 100644
--- a/lib/cc_config.h
+++ b/lib/cc_config.h
@@ -137,7 +137,7 @@ struct EXCLUDE_GPU {
 // if you add anything, you must add it to
 // defaults(), parse_options(), and write()
 //
-struct CONFIG {
+struct CC_CONFIG {
     bool abort_jobs_on_exit;
     bool allow_multiple_clients;
     bool allow_remote_gui_rpc;
@@ -193,7 +193,7 @@ struct CONFIG {
         // overrides use_certs
     bool vbox_window;
 
-    CONFIG();
+    CC_CONFIG();
     void defaults();
 	int parse(FILE*);
 	int parse(XML_PARSER&, LOG_FLAGS&);
diff --git a/lib/gui_rpc_client.h b/lib/gui_rpc_client.h
index 295580cb497f3a77b6585ef09e3ef46be95af8e5..be0650fc469199bf4133206d94ca9869cf36b4f4 100644
--- a/lib/gui_rpc_client.h
+++ b/lib/gui_rpc_client.h
@@ -754,8 +754,8 @@ struct RPC_CLIENT {
     int set_global_prefs_override(std::string&);
     int get_global_prefs_override_struct(GLOBAL_PREFS&, GLOBAL_PREFS_MASK&);
     int set_global_prefs_override_struct(GLOBAL_PREFS&, GLOBAL_PREFS_MASK&);
-    int get_cc_config(CONFIG& config, LOG_FLAGS& log_flags);
-    int set_cc_config(CONFIG& config, LOG_FLAGS& log_flags);
+    int get_cc_config(CC_CONFIG& config, LOG_FLAGS& log_flags);
+    int set_cc_config(CC_CONFIG& config, LOG_FLAGS& log_flags);
     int get_daily_xfer_history(DAILY_XFER_HISTORY&);
 	int set_language(const char*);
 };
diff --git a/lib/gui_rpc_client_ops.cpp b/lib/gui_rpc_client_ops.cpp
index 48a96cae93c99f14b85b876a1e9933b3c6808d8d..6bf58adc1b39d4d1897c7d795c720df8bdd17ded 100644
--- a/lib/gui_rpc_client_ops.cpp
+++ b/lib/gui_rpc_client_ops.cpp
@@ -2553,7 +2553,7 @@ int RPC_CLIENT::read_cc_config() {
     return rpc.parse_reply();
 }
 
-int RPC_CLIENT::get_cc_config(CONFIG& config, LOG_FLAGS& log_flags) {
+int RPC_CLIENT::get_cc_config(CC_CONFIG& config, LOG_FLAGS& log_flags) {
     int retval;
     SET_LOCALE sl;
     RPC rpc(this);
@@ -2564,7 +2564,7 @@ int RPC_CLIENT::get_cc_config(CONFIG& config, LOG_FLAGS& log_flags) {
     return config.parse(rpc.xp, log_flags);
 }
 
-int RPC_CLIENT::set_cc_config(CONFIG& config, LOG_FLAGS& log_flags) {
+int RPC_CLIENT::set_cc_config(CC_CONFIG& config, LOG_FLAGS& log_flags) {
     SET_LOCALE sl;
     char buf[64000];
     MIOFILE mf;