From df677a3eee2d2e65e3a7702af469fc5d5eb3376f Mon Sep 17 00:00:00 2001 From: David Anderson Date: Thu, 3 Jul 2003 05:01:29 +0000 Subject: [PATCH] client messages svn path=/trunk/boinc/; revision=1644 --- checkin_notes | 11 ++++++++- client/app.C | 38 +++++++++++++++++++---------- client/client_state.C | 22 ----------------- client/client_state.h | 2 -- client/client_types.C | 24 +++++++++--------- client/client_types.h | 6 +++++ client/cs_apps.C | 4 +-- client/cs_files.C | 9 +++---- client/cs_scheduler.C | 2 +- client/file_names.C | 6 +++-- client/file_xfer.C | 2 +- client/hostinfo.C | 8 +++--- client/http.C | 15 +++++------- client/log_flags.C | 3 ++- client/message.h | 3 ++- client/net_stats.C | 6 +++-- client/pers_file_xfer.C | 54 ++++++++++++++++++++++++----------------- client/scheduler_op.C | 14 +++++------ client/scheduler_op.h | 2 +- client/speed_stats.C | 20 ++++++++------- client/time_stats.C | 3 ++- test/boinc_db.inc | 2 +- test/boinc_db.py | 2 +- 23 files changed, 139 insertions(+), 119 deletions(-) diff --git a/checkin_notes b/checkin_notes index 0d3f5ae8a1..c2c95cf9fd 100755 --- a/checkin_notes +++ b/checkin_notes @@ -5260,4 +5260,13 @@ Karl 2003/07/02 scheduler_op.C scheduler_op.h - +David July 2 2003 + - changed all "fprintf(stderr," in the client to msg_printf() + This will give better messages (timestamps, project names) + in the cmdline version, and more complete error messages + in the GUI version + - moved msg_printf() from client_state.C to message.C + + client/ + *.C + message.C (new) diff --git a/client/app.C b/client/app.C index d08e865353..056b3121b6 100644 --- a/client/app.C +++ b/client/app.C @@ -384,7 +384,7 @@ int ACTIVE_TASK::start(bool first_time) { debug_print_argv(argv); sprintf(buf, "..%s..%s%s", PATH_SEPARATOR, PATH_SEPARATOR, exec_path ); retval = execv(buf, argv); - fprintf(stderr, "execv failed: %d\n", retval); + msg_printf(wup->project, MSG_ERROR, "execv failed: %d\n", retval); perror("execv"); exit(1); } @@ -547,7 +547,7 @@ bool ACTIVE_TASK_SET::check_app_exited() { scope_messages.printf("ACTIVE_TASK_SET::check_app_exited(): process %d is done\n", pid); atp = lookup_pid(pid); if (!atp) { - fprintf(stderr, "ACTIVE_TASK_SET::check_app_exited(): pid %d not found\n", pid); + msg_printf(NULL, MSG_ERROR, "ACTIVE_TASK_SET::check_app_exited(): pid %d not found\n", pid); return true; } double x = rs.ru_utime.tv_sec + rs.ru_utime.tv_usec/1.e6; @@ -633,10 +633,12 @@ bool ACTIVE_TASK::check_max_disk_exceeded() { if (retval) { msg_printf(0, MSG_ERROR, "Can't get application disk usage"); } else { - //fprintf(stderr, "using %f bytes; max is %f bytes\n", disk_usage, max_disk_usage); if (disk_usage > max_disk_usage) { - msg_printf(result->project, MSG_INFO, "Aborting result %s: exceeded disk limit %f\n", - result->name, max_disk_usage); + msg_printf( + result->project, MSG_INFO, + "Aborting result %s: exceeded disk limit %f\n", + result->name, max_disk_usage + ); abort(); return true; } @@ -650,8 +652,12 @@ bool ACTIVE_TASK::check_max_disk_exceeded() { bool ACTIVE_TASK::check_max_mem_exceeded() { // TODO: calculate working set size elsewhere if (working_set_size > max_mem_usage || working_set_size/1048576 > gstate.global_prefs.max_memory_mbytes) { - msg_printf(result->project, MSG_INFO, "Aborting result %s: exceeded memory limit %f\n", - result->name, min(max_mem_usage, gstate.global_prefs.max_memory_mbytes*1048576)); + msg_printf( + result->project, MSG_INFO, + "Aborting result %s: exceeded memory limit %f\n", + result->name, + min(max_mem_usage, gstate.global_prefs.max_memory_mbytes*1048576) + ); abort(); return true; } @@ -879,7 +885,7 @@ int ACTIVE_TASK_SET::remove(ACTIVE_TASK* atp) { } iter++; } - fprintf(stderr, "ACTIVE_TASK_SET::remove(): not found\n"); + msg_printf(NULL, MSG_ERROR, "ACTIVE_TASK_SET::remove(): not found\n"); return 1; } @@ -1077,7 +1083,8 @@ int ACTIVE_TASK::parse(FILE* fin, CLIENT_STATE* cs) { if (match_tag(buf, "")) { project = cs->lookup_project(project_master_url); if (!project) { - fprintf(stderr, + msg_printf( + NULL, MSG_ERROR, "ACTIVE_TASK::parse(): project not found: %s\n", project_master_url ); @@ -1085,7 +1092,9 @@ int ACTIVE_TASK::parse(FILE* fin, CLIENT_STATE* cs) { } result = cs->lookup_result(project, result_name); if (!result) { - fprintf(stderr, "ACTIVE_TASK::parse(): result not found\n"); + msg_printf( + NULL, MSG_ERROR, "ACTIVE_TASK::parse(): result not found\n" + ); return -1; } wup = result->wup; @@ -1093,7 +1102,10 @@ int ACTIVE_TASK::parse(FILE* fin, CLIENT_STATE* cs) { result->app, app_version_num ); if (!app_version) { - fprintf(stderr, "ACTIVE_TASK::parse(): app_version not found\n"); + msg_printf( + NULL, MSG_ERROR, + "ACTIVE_TASK::parse(): app_version not found\n" + ); return -1; } return 0; @@ -1103,7 +1115,7 @@ int ACTIVE_TASK::parse(FILE* fin, CLIENT_STATE* cs) { else if (parse_int(buf, "", app_version_num)) continue; else if (parse_int(buf, "", slot)) continue; else if (parse_double(buf, "", checkpoint_cpu_time)) continue; - else fprintf(stderr, "ACTIVE_TASK::parse(): unrecognized %s\n", buf); + else msg_printf(NULL, MSG_ERROR, "ACTIVE_TASK::parse(): unrecognized %s\n", buf); } return -1; } @@ -1138,7 +1150,7 @@ int ACTIVE_TASK_SET::parse(FILE* fin, CLIENT_STATE* cs) { if (!retval) active_tasks.push_back(atp); else delete atp; } else { - fprintf(stderr, "ACTIVE_TASK_SET::parse(): unrecognized %s\n", buf); + msg_printf(NULL, MSG_ERROR, "ACTIVE_TASK_SET::parse(): unrecognized %s\n", buf); } } return 0; diff --git a/client/client_state.C b/client/client_state.C index a91e4eea3d..18f95bb1ae 100644 --- a/client/client_state.C +++ b/client/client_state.C @@ -38,7 +38,6 @@ #include #include -#include #include #include "parse.h" @@ -1675,24 +1674,3 @@ int CLIENT_STATE::detach_project(PROJECT* project) { return 0; } - -// Takes a printf style formatted string, inserts the proper values, -// and passes it to show_message -// TODO: add translation functionality -// -void msg_printf(PROJECT *p, int priority, char *fmt, ...) { - char buf[512]; - va_list ap; - - if (fmt == NULL) return; - - // Since Windows doesn't support vsnprintf, we have to do a - // workaround to prevent buffer overruns - // - if (strlen(fmt) > 512) fmt[511] = '\0'; - va_start(ap, fmt); // Parses string for variables - vsprintf(buf, fmt, ap); // And convert symbols To actual numbers - va_end(ap); // Results are stored in text - - show_message(p, buf, priority); -} diff --git a/client/client_state.h b/client/client_state.h index ffbb54c295..12637e0f46 100644 --- a/client/client_state.h +++ b/client/client_state.h @@ -211,6 +211,4 @@ public: extern CLIENT_STATE gstate; -extern void msg_printf(PROJECT *p, int priority, char *fmt, ...); - #endif diff --git a/client/client_types.C b/client/client_types.C index 8616ec7737..d3fc810703 100644 --- a/client/client_types.C +++ b/client/client_types.C @@ -25,6 +25,7 @@ #include "error_numbers.h" #include "file_names.h" #include "filesys.h" +#include "message.h" #include "parse.h" #include "util.h" #include "pers_file_xfer.h" @@ -162,7 +163,7 @@ int PROJECT::parse_account(FILE* in) { if (retval) return ERR_XML_PARSE; continue; } - else fprintf(stderr, "PROJECT::parse_account(): unrecognized: %s\n", buf); + else msg_printf(NULL, MSG_ERROR, "PROJECT::parse_account(): unrecognized: %s\n", buf); } return ERR_XML_PARSE; } @@ -212,14 +213,13 @@ int PROJECT::parse_state(FILE* in) { code_sign_key, sizeof(code_sign_key) ); - //fprintf(stderr, "code_sign_key: %s\n", code_sign_key); } else if (parse_int(buf, "", nrpc_failures)) continue; else if (parse_int(buf, "", master_fetch_failures)) continue; else if (parse_int(buf, "", (int&)min_rpc_time)) continue; else if (match_tag(buf, "")) master_url_fetch_pending = true; else if (match_tag(buf, "")) sched_rpc_pending = true; - else fprintf(stderr, "PROJECT::parse_state(): unrecognized: %s\n", buf); + else msg_printf(NULL, MSG_ERROR, "PROJECT::parse_state(): unrecognized: %s\n", buf); } return ERR_XML_PARSE; } @@ -273,7 +273,7 @@ int PROJECT::write_state(FILE* out) { exp_avg_mod_time, nrpc_failures, master_fetch_failures, - min_rpc_time, + (int)min_rpc_time, master_url_fetch_pending?" \n":"", sched_rpc_pending?" \n":"" ); @@ -329,7 +329,7 @@ int APP::parse(FILE* in) { while (fgets(buf, 256, in)) { if (match_tag(buf, "")) return 0; else if (parse_str(buf, "", name, sizeof(name))) continue; - else fprintf(stderr, "APP::parse(): unrecognized: %s\n", buf); + else msg_printf(NULL, MSG_ERROR, "APP::parse(): unrecognized: %s\n", buf); } return ERR_XML_PARSE; } @@ -457,7 +457,7 @@ int FILE_INFO::parse(FILE* in, bool from_server) { ); continue; } else { - fprintf(stderr, "FILE_INFO::parse(): unrecognized: %s\n", buf); + msg_printf(NULL, MSG_ERROR, "FILE_INFO::parse(): unrecognized: %s\n", buf); } } if (from_server) @@ -570,7 +570,7 @@ int APP_VERSION::parse(FILE* in) { continue; } else if (parse_int(buf, "", version_num)) continue; - else fprintf(stderr, "APP_VERSION::parse(): unrecognized: %s\n", buf); + else msg_printf(NULL, MSG_ERROR, "APP_VERSION::parse(): unrecognized: %s\n", buf); } return 1; } @@ -611,7 +611,7 @@ int FILE_REF::parse(FILE* in) { else if (parse_int(buf, "", fd)) continue; else if (match_tag(buf, "")) main_program = true; else if (match_tag(buf, "")) copy_file = true; - else fprintf(stderr, "FILE_REF::parse(): unrecognized: %s\n", buf); + else msg_printf(NULL, MSG_ERROR, "FILE_REF::parse(): unrecognized: %s\n", buf); } return 1; } @@ -672,7 +672,7 @@ int WORKUNIT::parse(FILE* in) { input_files.push_back(file_ref); continue; } - else fprintf(stderr, "WORKUNIT::parse(): unrecognized: %s\n", buf); + else msg_printf(NULL, MSG_ERROR, "WORKUNIT::parse(): unrecognized: %s\n", buf); } return 1; } @@ -726,7 +726,7 @@ int RESULT::parse_ack(FILE* in) { while (fgets(buf, 256, in)) { if (match_tag(buf, "")) return 0; else if (parse_str(buf, "", name, sizeof(name))) continue; - else fprintf(stderr, "RESULT::parse(): unrecognized: %s\n", buf); + else msg_printf(NULL, MSG_ERROR, "RESULT::parse(): unrecognized: %s\n", buf); } return 1; } @@ -767,7 +767,7 @@ int RESULT::parse_server(FILE* in) { output_files.push_back(file_ref); continue; } - else fprintf(stderr, "RESULT::parse(): unrecognized: %s\n", buf); + else msg_printf(NULL, MSG_ERROR, "RESULT::parse(): unrecognized: %s\n", buf); } return 1; } @@ -801,7 +801,7 @@ int RESULT::parse_state(FILE* in) { } continue; } - else fprintf(stderr, "RESULT::parse(): unrecognized: %s\n", buf); + else msg_printf(NULL, MSG_ERROR, "RESULT::parse(): unrecognized: %s\n", buf); } return 1; } diff --git a/client/client_types.h b/client/client_types.h index 5250d1e462..c48297e466 100644 --- a/client/client_types.h +++ b/client/client_types.h @@ -32,6 +32,12 @@ #include #include +#ifdef _WIN32 +#include +#else +#include +#endif + #include "hostinfo.h" #include "result_state.h" diff --git a/client/cs_apps.C b/client/cs_apps.C index 8f22639f35..d2588c7c0a 100644 --- a/client/cs_apps.C +++ b/client/cs_apps.C @@ -57,12 +57,12 @@ int CLIENT_STATE::cleanup_and_exit() { retval = active_tasks.exit_tasks(); if (retval) { - fprintf(stderr, "error: CLIENT_STATE.exit: exit_tasks failed\n"); + msg_printf(NULL, MSG_ERROR, "CLIENT_STATE.cleanup_and_exit: exit_tasks failed\n"); // don't return here - we'll exit anyway } retval = write_state_file(); if (retval) { - fprintf(stderr, "error: CLIENT_STATE.exit: write_state_file failed\n"); + msg_printf(NULL, MSG_ERROR, "CLIENT_STATE.cleanup_and_exit: write_state_file failed\n"); // don't return here - we'll exit anyway } diff --git a/client/cs_files.C b/client/cs_files.C index 1333a60a62..b7234c5be1 100644 --- a/client/cs_files.C +++ b/client/cs_files.C @@ -81,7 +81,7 @@ int CLIENT_STATE::make_project_dirs() { // int verify_downloaded_file(char* pathname, FILE_INFO& file_info) { char cksum[64]; - PROJECT* project; + PROJECT* project = file_info.project; bool verified; int retval; @@ -90,22 +90,21 @@ int verify_downloaded_file(char* pathname, FILE_INFO& file_info) { fprintf(stdout, "ERROR: file %s missing signature\n", file_info.name); return ERR_NO_SIGNATURE; } - project = file_info.project; retval = verify_file2( pathname, file_info.file_signature, project->code_sign_key, verified ); if (retval) { - fprintf(stderr, "error: verify_file2: internal error\n"); + msg_printf(project, MSG_ERROR, "verify_downloaded_file(): internal error\n"); return ERR_RSA_FAILED; } if (!verified) { - fprintf(stderr, "error: verify_file2: file not verified\n"); + msg_printf(project, MSG_ERROR, "verify_downloaded_file(): file not verified\n"); return ERR_RSA_FAILED; } } else if (strlen(file_info.md5_cksum)) { retval = md5_file(pathname, cksum, file_info.nbytes); if (strcmp(cksum, file_info.md5_cksum) || retval) { - fprintf(stderr, "error: verify_file2: MD5 check failed\n"); + msg_printf(project, MSG_ERROR, "verify_downloaded_file(): MD5 check failed\n"); return ERR_MD5_FAILED; } } diff --git a/client/cs_scheduler.C b/client/cs_scheduler.C index 04e2244d3a..c04c90580b 100644 --- a/client/cs_scheduler.C +++ b/client/cs_scheduler.C @@ -373,7 +373,7 @@ int CLIENT_STATE::handle_scheduler_reply( f = fopen(SCHED_OP_RESULT_FILE, "r"); if (!f) return ERR_FOPEN; - retval = sr.parse(f); + retval = sr.parse(f, project); fclose(f); if (retval) return retval; diff --git a/client/file_names.C b/client/file_names.C index f95e169730..2ce2e52fc0 100644 --- a/client/file_names.C +++ b/client/file_names.C @@ -29,9 +29,11 @@ #include "filesys.h" #include "error_numbers.h" -#include "file_names.h" +#include "message.h" #include "util.h" +#include "file_names.h" + void escape_project_url(char *in, char* out) { escape_url_readable(in, out); char& last = out[strlen(out)-1]; @@ -91,7 +93,7 @@ int remove_project_dir(PROJECT& p) { int make_slot_dir(int slot) { char buf[256]; if(slot<0) { - fprintf(stderr, "error: make_slot_dir: negative slot\n"); + msg_printf(NULL, MSG_ERROR, "make_slot_dir(): negative slot\n"); return ERR_NEG; } boinc_mkdir(SLOTS_DIR); diff --git a/client/file_xfer.C b/client/file_xfer.C index 3630bf8c8a..6f3cd96551 100644 --- a/client/file_xfer.C +++ b/client/file_xfer.C @@ -167,7 +167,7 @@ int FILE_XFER_SET::remove(FILE_XFER* fxp) { } iter++; } - fprintf(stderr, "FILE_XFER_SET::remove(): not found\n"); + msg_printf(NULL, MSG_ERROR, "FILE_XFER_SET::remove(): not found\n"); return 1; } diff --git a/client/hostinfo.C b/client/hostinfo.C index 1cd6b2a955..307dfaa70c 100644 --- a/client/hostinfo.C +++ b/client/hostinfo.C @@ -42,9 +42,11 @@ #include "util.h" #include "parse.h" -#include "hostinfo.h" +#include "message.h" #include "error_numbers.h" +#include "hostinfo.h" + // Reset the host info struct to default values // void clear_host_info(HOST_INFO& host) { @@ -107,7 +109,7 @@ int HOST_INFO::parse(FILE* in) { else if (parse_double(buf, "", m_swap)) continue; else if (parse_double(buf, "", d_total)) continue; else if (parse_double(buf, "", d_free)) continue; - else fprintf(stderr, "HOST_INFO::parse(): unrecognized: %s\n", buf); + else msg_printf(NULL, MSG_ERROR, "HOST_INFO::parse(): unrecognized: %s\n", buf); } return 0; } @@ -181,7 +183,7 @@ int HOST_INFO::parse_cpu_benchmarks(FILE* in) { else if (parse_int(buf, "", p_membw_err)) continue; else if (parse_double(buf, "", p_calculated)) continue; else if (parse_double(buf, "", m_cache)) continue; - else fprintf(stderr, "HOST_INFO::parse(): unrecognized: %s\n", buf); + else msg_printf(NULL, MSG_ERROR, "HOST_INFO::parse(): unrecognized: %s\n", buf); } return 0; } diff --git a/client/http.C b/client/http.C index d3b9bee51a..97471af45a 100644 --- a/client/http.C +++ b/client/http.C @@ -36,10 +36,11 @@ #include "error_numbers.h" #include "filesys.h" -#include "http.h" #include "util.h" #include "message.h" +#include "http.h" + #define HTTP_BLOCKSIZE 16384 // Breaks a HTTP url down into its server and file path components @@ -131,10 +132,6 @@ int read_http_reply_header(int socket, HTTP_REPLY_HEADER& header) { ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_HTTP); - if (socket<0) { - fprintf(stderr, "error: read_http_reply_header: negative socket\n"); - return ERR_NEG; - } memset(buf, 0, sizeof(buf)); header.content_length = 0; header.status = 404; // default to failure @@ -367,7 +364,7 @@ bool HTTP_OP_SET::poll() { htp->http_op_state = HTTP_STATE_REQUEST_BODY; htp->file = fopen(htp->infile, "rb"); if (!htp->file) { - fprintf(stderr, "HTTP_OP: no input file %s\n", htp->infile); + msg_printf(NULL, MSG_ERROR, "HTTP_OP_SET::poll(): no input file %s\n", htp->infile); htp->io_done = true; htp->http_op_retval = ERR_FOPEN; htp->http_op_state = HTTP_STATE_DONE; @@ -396,7 +393,7 @@ bool HTTP_OP_SET::poll() { if (htp->infile && strlen(htp->infile) > 0) { htp->file = fopen(htp->infile, "rb"); if (!htp->file) { - fprintf(stderr, "HTTP_OP: no input2 file %s\n", htp->infile); + msg_printf(NULL, MSG_ERROR, "HTTP_OP_SET::poll(): no input2 file %s\n", htp->infile); htp->io_done = true; htp->http_op_retval = ERR_FOPEN; htp->http_op_state = HTTP_STATE_DONE; @@ -477,8 +474,8 @@ bool HTTP_OP_SET::poll() { htp->file = fopen(htp->outfile, "ab"); if (!htp->file) { - fprintf(stderr, - "HTTP_OP: can't open output file %s\n", + msg_printf(NULL, MSG_ERROR, + "HTTP_OP_SET::poll(): can't open output file %s\n", htp->outfile ); htp->io_done = true; diff --git a/client/log_flags.C b/client/log_flags.C index c8b5a35772..3b46c4dabb 100644 --- a/client/log_flags.C +++ b/client/log_flags.C @@ -23,6 +23,7 @@ #include "windows_cpp.h" #include "error_numbers.h" #include "file_names.h" +#include "message.h" #include "parse.h" #include "log_flags.h" @@ -95,7 +96,7 @@ int LOG_FLAGS::parse(FILE* in) { poll_debug = true; continue; } - else fprintf(stderr, "LOG_FLAGS::parse: unrecognized: %s\n", buf); + else msg_printf(NULL, MSG_ERROR, "LOG_FLAGS::parse: unrecognized: %s\n", buf); } return ERR_XML_PARSE; } diff --git a/client/message.h b/client/message.h index 439991a2fc..6babe8bfce 100644 --- a/client/message.h +++ b/client/message.h @@ -34,7 +34,6 @@ extern void show_message(class PROJECT *p, char* message, int priority); - class ClientMessages : public Messages { int debug_level; const char* v_format_kind(int kind) const; @@ -56,4 +55,6 @@ public: extern ClientMessages log_messages; +extern void msg_printf(PROJECT *p, int priority, char *fmt, ...); + #endif diff --git a/client/net_stats.C b/client/net_stats.C index ae8d301840..1947e8e903 100644 --- a/client/net_stats.C +++ b/client/net_stats.C @@ -25,15 +25,17 @@ // and maintains an exponential average of throughput. #include +#include #include "windows_cpp.h" -#include "math.h" #include "parse.h" #include "time.h" #include "util.h" #include "error_numbers.h" +#include "message.h" + #include "net_stats.h" #define EXP_DECAY_RATE (1./SECONDS_PER_DAY) @@ -116,7 +118,7 @@ int NET_STATS::parse(FILE* in) { down.starting_throughput = bwdown; continue; } - else fprintf(stderr, "NET_STATS::parse(): unrecognized: %s\n", buf); + else msg_printf(NULL, MSG_ERROR, "NET_STATS::parse(): unrecognized: %s\n", buf); } return 1; } diff --git a/client/pers_file_xfer.C b/client/pers_file_xfer.C index 74299f9d3b..39871b01ca 100644 --- a/client/pers_file_xfer.C +++ b/client/pers_file_xfer.C @@ -90,8 +90,10 @@ int PERS_FILE_XFER::start_xfer() { retval = file_xfer->init_download(*fip); } if (retval) { - msg_printf(fip->project, MSG_ERROR, "Couldn't start %s for %s: error %d", - (is_upload ? "upload" : "download"), fip->get_url(), retval); + msg_printf( + fip->project, MSG_ERROR, "Couldn't start %s for %s: error %d", + (is_upload ? "upload" : "download"), fip->get_url(), retval + ); handle_xfer_failure(); return retval; // TODO: do we need to do anything here? @@ -99,8 +101,10 @@ int PERS_FILE_XFER::start_xfer() { retval = gstate.file_xfers->insert(file_xfer); fxp = file_xfer; if (retval) { - msg_printf(fip->project, MSG_ERROR, "Couldn't start %s for %s: error %d", - (is_upload ? "upload" : "download"), fip->get_url(), retval); + msg_printf( + fip->project, MSG_ERROR, "Couldn't start %s for %s: error %d", + (is_upload ? "upload" : "download"), fip->get_url(), retval + ); fxp->file_xfer_retval = retval; handle_xfer_failure(); delete fxp; @@ -108,8 +112,10 @@ int PERS_FILE_XFER::start_xfer() { return retval; } if (log_flags.file_xfer) { - msg_printf(fip->project, MSG_INFO, "Started %s of %s", - (is_upload ? "upload" : "download"), fip->name); + msg_printf( + fip->project, MSG_INFO, "Started %s of %s", + (is_upload ? "upload" : "download"), fip->name + ); } scope_messages.printf("PERS_FILE_XFER::start_xfer(): URL: %s\n",fip->get_url()); return 0; @@ -134,9 +140,6 @@ bool PERS_FILE_XFER::poll(time_t now) { // See if it's time to try again. // if (now >= next_request_time) { - // fprintf(stderr, "### PERS_FILE_XFER '%s'#%x::poll(): starting file transfer (now=%d, next_request_time=%d)\n", - // fip->name, this, - // now, next_request_time); last_time = dtime(); fip->upload_offset = -1; retval = start_xfer(); @@ -153,11 +156,15 @@ bool PERS_FILE_XFER::poll(time_t now) { if (fxp->file_xfer_done) { if (log_flags.file_xfer) { - msg_printf(fip->project, MSG_INFO, "Finished %s of %s", - is_upload?"upload":"download", fip->name); + msg_printf( + fip->project, MSG_INFO, "Finished %s of %s", + is_upload?"upload":"download", fip->name + ); } - scope_messages.printf("PERS_FILE_XFER::poll(): file transfer status %d", - fxp->file_xfer_retval); + scope_messages.printf( + "PERS_FILE_XFER::poll(): file transfer status %d", + fxp->file_xfer_retval + ); if (fxp->file_xfer_retval == 0) { // The transfer finished with no errors. // @@ -212,8 +219,10 @@ void PERS_FILE_XFER::giveup() { fip->status = ERR_GIVEUP_DOWNLOAD; } xfer_done = true; - msg_printf(fip->project, MSG_ERROR, "Giving up on %s of %s", - is_upload?"upload":"download", fip->name); + msg_printf( + fip->project, MSG_ERROR, "Giving up on %s of %s", + is_upload?"upload":"download", fip->name + ); } // Handle a transfer failure @@ -263,15 +272,16 @@ void PERS_FILE_XFER::retry_or_backoff() { // keeping within the bounds of pers_retry_delay_min and // pers_retry_delay_max // - backoff = calculate_exponential_backoff("pers_file_xfer", - nretry, gstate.pers_retry_delay_min, gstate.pers_retry_delay_max); + backoff = calculate_exponential_backoff( + "pers_file_xfer", + nretry, gstate.pers_retry_delay_min, gstate.pers_retry_delay_max + ); next_request_time = now + backoff; - // fprintf(stderr, "### PERS_FILE_XFER '%s'#%x::retry_or_backoff(): nretry=%d, backoff=%d, now=%d, next_request_time=%d\n", - // fip->name, this, nretry, - // backoff, now, next_request_time); } - scope_messages.printf("PERS_FILE_XFER::retry_or_backoff(): Backing off %d seconds on transfer of file %s", - backoff, fip->name); + scope_messages.printf( + "PERS_FILE_XFER::retry_or_backoff(): Backing off %d seconds on transfer of file %s", + backoff, fip->name + ); } // Parse XML information about a single persistent file transfer diff --git a/client/scheduler_op.C b/client/scheduler_op.C index f57363c72f..7e71b1395f 100644 --- a/client/scheduler_op.C +++ b/client/scheduler_op.C @@ -114,7 +114,7 @@ int SCHEDULER_OP::init_op_project(double ns) { } retval = gstate.make_scheduler_request(project, ns); if (retval) { - fprintf(stderr, "make_scheduler_request: %d\n", retval); + msg_printf(project, MSG_ERROR, "make_scheduler_request: %d\n", retval); goto done; } retval = start_rpc(); @@ -504,7 +504,7 @@ SCHEDULER_REPLY::~SCHEDULER_REPLY() { if (code_sign_key_signature) free(code_sign_key_signature); } -int SCHEDULER_REPLY::parse(FILE* in) { +int SCHEDULER_REPLY::parse(FILE* in, PROJECT* project) { char buf[256], *p; int retval; @@ -529,13 +529,13 @@ int SCHEDULER_REPLY::parse(FILE* in) { p = fgets(buf, 256, in); if (!p) { - fprintf(stderr, "SCHEDULER_REPLY::parse(): empty file\n"); + msg_printf(project, MSG_ERROR, "SCHEDULER_REPLY::parse(): empty file\n"); return ERR_XML_PARSE; } // First part of content should either be tag (HTTP 1.0) or // hex length of response (HTTP 1.1) if (!match_tag(buf, "")) { - fprintf(stderr, "SCHEDULER_REPLY::parse(): bad first tag %s\n", buf); + msg_printf(project, MSG_ERROR, "SCHEDULER_REPLY::parse(): bad first tag %s\n", buf); return ERR_XML_PARSE; } while (fgets(buf, 256, in)) { @@ -575,7 +575,7 @@ int SCHEDULER_REPLY::parse(FILE* in) { &code_sign_key ); if (retval) { - fprintf(stderr, "error: SCHEDULER_REPLY.parse: xml parsing error\n"); + msg_printf(project, MSG_ERROR, "SCHEDULER_REPLY.parse(): xml parsing error\n"); return ERR_XML_PARSE; } } else if (match_tag(buf, "")) { @@ -614,9 +614,9 @@ int SCHEDULER_REPLY::parse(FILE* in) { parse_attr(buf, "priority", message_priority, sizeof(message_priority)); continue; } else { - fprintf(stderr, "SCHEDULER_REPLY::parse: unrecognized %s\n", buf); + msg_printf(project, MSG_ERROR, "SCHEDULER_REPLY::parse(): unrecognized %s\n", buf); } } - fprintf(stderr, "SCHEDULER_REPLY::parse: no close tag\n"); + msg_printf(project, MSG_ERROR, "SCHEDULER_REPLY::parse(): no close tag\n"); return ERR_XML_PARSE; } diff --git a/client/scheduler_op.h b/client/scheduler_op.h index 404ff1b300..2cae2be4b4 100644 --- a/client/scheduler_op.h +++ b/client/scheduler_op.h @@ -110,7 +110,7 @@ struct SCHEDULER_REPLY { SCHEDULER_REPLY(); ~SCHEDULER_REPLY(); - int parse(FILE*); + int parse(FILE*, PROJECT*); }; #endif diff --git a/client/speed_stats.C b/client/speed_stats.C index ef9731d5e0..e45195587a 100644 --- a/client/speed_stats.C +++ b/client/speed_stats.C @@ -28,8 +28,10 @@ #include #endif -#include "speed_stats.h" #include "error_numbers.h" +#include "message.h" + +#include "speed_stats.h" #ifdef _WIN32 #include @@ -60,7 +62,7 @@ int main(void) { void run_test_suite(double num_secs_per_test) { if (num_secs_per_test<0) { - fprintf(stderr, "error: run_test_suite: negative num_seconds_per_test\n"); + msg_printf(NULL, MSG_ERROR, "error: run_test_suite: negative num_seconds_per_test\n"); } printf( "Running tests. This will take about %.1lf seconds.\n\n", @@ -91,7 +93,7 @@ int check_cache_size(int mem_size) { double secs, nanosecs, temp2; int not_found; if (mem_size<0) { - fprintf(stderr, "error: check_cache_size: negative mem_size\n"); + msg_printf(NULL, MSG_ERROR, "check_cache_size: negative mem_size\n"); return ERR_NEG; } logStride = (int)(log((double)(STRIDE_MAX/STRIDE_MIN))/log(2.0))+1; @@ -226,7 +228,7 @@ int run_double_prec_test(double num_secs, double &flops_per_sec) { int retval; if (num_secs<0) { - fprintf(stderr, "error: run_double_prec_test: negative num_secs\n"); + msg_printf(NULL, MSG_ERROR, "run_double_prec_test: negative num_secs\n"); return ERR_NEG; } @@ -246,7 +248,7 @@ int run_int_test(double num_secs, double &iops_per_sec) { int retval; if (num_secs<0) { - fprintf(stderr, "error: run_int_test: negative num_secs\n"); + msg_printf(NULL, MSG_ERROR, "run_int_test: negative num_secs\n"); return ERR_NEG; } @@ -266,7 +268,7 @@ int run_mem_bandwidth_test(double num_secs, double &bytes_per_sec) { int retval; if (num_secs<0) { - fprintf(stderr, "error: run_mem_bandwidth_test: negative num_secs\n"); + msg_printf(NULL, MSG_ERROR, "run_mem_bandwidth_test: negative num_secs\n"); return ERR_NEG; } @@ -290,7 +292,7 @@ int double_flop_test(int iterations, double &flops_per_sec, int print_debug) { clock_t time_start, time_total; if (iterations<0) { - fprintf(stderr, "error: double_flop_test: negative iterations\n"); + msg_printf(NULL, MSG_ERROR, "double_flop_test: negative iterations\n"); return ERR_NEG; } @@ -362,7 +364,7 @@ int int_op_test(int iterations, double &iops_per_sec, int print_debug) { clock_t time_start, time_total; int i,j,k,error = 0; if (iterations<0) { - fprintf(stderr, "error: int_op_test: negative iterations\n"); + msg_printf(NULL, MSG_ERROR, "int_op_test: negative iterations\n"); return ERR_NEG; } @@ -455,7 +457,7 @@ int bandwidth_test(int iterations, double &bytes_per_sec, int print_debug) { clock_t time_start, time_total; int i,j,n,actual_iters, error = 0; if (iterations<0) { - fprintf(stderr, "error: bandwidth_test: negative iterations\n"); + msg_printf(NULL, MSG_ERROR, "bandwidth_test: negative iterations\n"); return ERR_NEG; } diff --git a/client/time_stats.C b/client/time_stats.C index 030b3a31f3..f11b73f9d2 100644 --- a/client/time_stats.C +++ b/client/time_stats.C @@ -24,6 +24,7 @@ #include "parse.h" #include "util.h" #include "error_numbers.h" +#include "message.h" #include "time_stats.h" @@ -114,7 +115,7 @@ int TIME_STATS::parse(FILE* in) { else if (parse_double(buf, "", on_frac)) continue; else if (parse_double(buf, "", connected_frac)) continue; else if (parse_double(buf, "", active_frac)) continue; - else fprintf(stderr, "TIME_STATS:: parse(): unrecognized: %s\n", buf); + else msg_printf(NULL, MSG_ERROR, "TIME_STATS::parse(): unrecognized: %s\n", buf); } return ERR_XML_PARSE; } diff --git a/test/boinc_db.inc b/test/boinc_db.inc index 3559ee72ca..7b2c15addd 100644 --- a/test/boinc_db.inc +++ b/test/boinc_db.inc @@ -1,5 +1,5 @@