From 317a52b24d5a8153b10ca8b7d254caa81df2d688 Mon Sep 17 00:00:00 2001 From: gombasg Date: Tue, 23 May 2006 14:08:02 +0000 Subject: [PATCH] Fix logic error at config file reading A missing output file is not an error in stand-alone mode git-svn-id: svn+ssh://cvs.lpds.sztaki.hu/var/lib/svn/szdg/dcapi/trunk@609 a7169a2c-3604-0410-bc95-c702d8d87f7a --- dcapi/boinc/client.C | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/dcapi/boinc/client.C b/dcapi/boinc/client.C index 8377ab8abb..aa68c4a03b 100644 --- a/dcapi/boinc/client.C +++ b/dcapi/boinc/client.C @@ -164,7 +164,7 @@ int DC_initClient(void) /* Parse the config file if the master sent one */ buf = DC_resolveFileName(DC_FILE_IN, DC_CONFIG_FILE); - if (buf && access(buf, R_OK)) + if (buf && !access(buf, R_OK)) { ret = _DC_parseCfg(buf); if (ret) @@ -224,6 +224,7 @@ int DC_initClient(void) char *DC_resolveFileName(DC_FileType type, const char *logicalFileName) { char buf[PATH_MAX]; + int ret; if (!strcmp(logicalFileName, DC_CHECKPOINT_FILE)) { @@ -252,9 +253,14 @@ char *DC_resolveFileName(DC_FileType type, const char *logicalFileName) if (type == DC_FILE_TMP) return strdup(logicalFileName); - if (boinc_resolve_filename(logicalFileName, buf, sizeof(buf))) - return NULL; - return strdup(buf); + ret = boinc_resolve_filename(logicalFileName, buf, sizeof(buf)); + if (!ret) + return strdup(buf); + + /* Do not fail for missing output files in stand-alone mode */ + if (!wu_name[0] && type == DC_FILE_OUT) + return strdup(logicalFileName); + return NULL; } int DC_sendResult(const char *logicalFileName, const char *path,