diff options
| author | Denys Vlasenko <dvlasenk@redhat.com> | 2010-10-21 15:04:13 +0200 |
|---|---|---|
| committer | Denys Vlasenko <dvlasenk@redhat.com> | 2010-10-21 15:04:13 +0200 |
| commit | aa26ace366d93b0b4ae7852bfc0b8bafa7819e49 (patch) | |
| tree | 2d35574b2967608a480d9e54a527bf728f933d52 /src | |
| parent | 0c1c4588a8a0b927534f4adc7990e797cf26f085 (diff) | |
| download | abrt-aa26ace366d93b0b4ae7852bfc0b8bafa7819e49.tar.gz abrt-aa26ace366d93b0b4ae7852bfc0b8bafa7819e49.tar.xz abrt-aa26ace366d93b0b4ae7852bfc0b8bafa7819e49.zip | |
abrt-action-rhtsupport: fix error handling
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/daemon/abrt-action-rhtsupport.cpp | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/src/daemon/abrt-action-rhtsupport.cpp b/src/daemon/abrt-action-rhtsupport.cpp index d3918761..c9f6531b 100644 --- a/src/daemon/abrt-action-rhtsupport.cpp +++ b/src/daemon/abrt-action-rhtsupport.cpp @@ -201,8 +201,35 @@ static void report_to_rhtsupport( package, tempfile ); - VERB3 log("post result:'%s'", result); - printf("STATUS:%s", result); + /* Temporary hackish detection of errors. Ideally, + * send_report_to_new_case needs to have better error reporting. + */ + if (strncasecmp(result, "error", 5) == 0) + { + /* + * result can contain "...server says: 'multi-line <html> text'" + * Replace all '\n' with spaces: + * we want this message to be, logically, one log entry. + * IOW: one line, not many lines. + */ + char *src, *dst; + dst = src = result; + while (1) + { + unsigned char c = *src++; + if (c == '\n') + c = ' '; + dst++ = c; + if (c == '\0') + break; + } + /* Use sanitized string as error message */ + CABRTException e(EXCEP_PLUGIN, "%s", result); + free(result); + throw e; + } + /* No error */ + printf("STATUS:%s\n", result); free(result); } |
