report the correct error code

This commit is contained in:
David Rose 2002-10-14 23:59:31 +00:00
parent 57c8314258
commit 5902cf7a38
3 changed files with 118 additions and 82 deletions

View File

@ -904,8 +904,8 @@ parse_header(DownloadStatus *status) {
} else if (authenticate && tline == "Proxy-Authenticate") { } else if (authenticate && tline == "Proxy-Authenticate") {
// We don't presently support authentication-demanding proxies. // We don't presently support authentication-demanding proxies.
downloader_cat.warning() downloader_cat.error()
<< tline << "\n"; << component << "\n";
return EU_error_http_proxy_authentication; return EU_error_http_proxy_authentication;
} else if (redirect == true && tline == "Location") { } else if (redirect == true && tline == "Location") {
@ -974,6 +974,9 @@ write_to_disk(DownloadStatus *status) {
// Ensure the header has been parsed successfully first // Ensure the header has been parsed successfully first
int parse_ret = parse_header(status); int parse_ret = parse_header(status);
if (parse_ret < 0)
return parse_ret;
if (status->_header_is_complete == false) { if (status->_header_is_complete == false) {
downloader_cat.error() downloader_cat.error()
<< "Downloader::write_to_disk() - Incomplete HTTP header - " << "Downloader::write_to_disk() - Incomplete HTTP header - "
@ -982,9 +985,6 @@ write_to_disk(DownloadStatus *status) {
return EU_error_abort; return EU_error_abort;
} }
if (parse_ret < 0)
return parse_ret;
// Write what we have so far to disk // Write what we have so far to disk
if (status->_bytes_in_buffer > 0) { if (status->_bytes_in_buffer > 0) {
if (downloader_cat.is_spam()) if (downloader_cat.is_spam())
@ -1016,6 +1016,8 @@ write_to_ram(DownloadStatus *status) {
// Ensure the header has been parsed successfully first // Ensure the header has been parsed successfully first
int parse_ret = parse_header(status); int parse_ret = parse_header(status);
if (parse_ret < 0)
return parse_ret;
if (status->_header_is_complete == false) { if (status->_header_is_complete == false) {
downloader_cat.error() downloader_cat.error()
@ -1025,10 +1027,6 @@ write_to_ram(DownloadStatus *status) {
return EU_error_abort; return EU_error_abort;
} }
if (parse_ret < 0)
return parse_ret;
// Write what we have so far to memory // Write what we have so far to memory
if (status->_bytes_in_buffer > 0) { if (status->_bytes_in_buffer > 0) {
if (downloader_cat.is_spam()) if (downloader_cat.is_spam())

View File

@ -31,80 +31,118 @@
// Function: error_to_text // Function: error_to_text
// Description: // Description:
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
string error_to_text(int err) { string error_to_text(ErrorUtilCode err) {
char *errmsg; const char *errmsg = "Unknown error";
switch (err) { switch (err) {
case EU_http_redirect:
errmsg = "EU_http_redirect";
break;
case EU_eof: case EU_eof:
errmsg = "EU_eof"; errmsg = "EU_eof";
break;
case EU_network_no_data: case EU_network_no_data:
errmsg = "EU_network_no_data"; errmsg = "EU_network_no_data";
break;
case EU_ok: case EU_ok:
errmsg = "EU_ok"; errmsg = "EU_ok";
break;
case EU_write: case EU_write:
errmsg = "EU_write"; errmsg = "EU_write";
break;
case EU_success: case EU_success:
errmsg = "EU_success"; errmsg = "EU_success";
break;
case EU_error_abort: case EU_error_abort:
errmsg = "EU_error_abort"; errmsg = "EU_error_abort";
break;
case EU_error_file_empty: case EU_error_file_empty:
errmsg = "EU_error_file_empty"; errmsg = "EU_error_file_empty";
break;
case EU_error_file_invalid: case EU_error_file_invalid:
errmsg = "EU_error_file_invalid"; errmsg = "EU_error_file_invalid";
break;
case EU_error_invalid_checksum: case EU_error_invalid_checksum:
errmsg = "EU_error_invalid_checksum"; errmsg = "EU_error_invalid_checksum";
break;
case EU_error_network_dead: case EU_error_network_dead:
errmsg = "EU_error_network_dead"; errmsg = "EU_error_network_dead";
break;
case EU_error_network_unreachable: case EU_error_network_unreachable:
errmsg = "EU_error_network_unreachable"; errmsg = "EU_error_network_unreachable";
break;
case EU_error_network_disconnected: case EU_error_network_disconnected:
errmsg = "EU_error_network_disconnected"; errmsg = "EU_error_network_disconnected";
break;
case EU_error_network_timeout: case EU_error_network_timeout:
errmsg = "EU_error_network_timeout"; errmsg = "EU_error_network_timeout";
break;
case EU_error_network_no_data: case EU_error_network_no_data:
errmsg = "EU_error_network_no_data"; errmsg = "EU_error_network_no_data";
break;
case EU_error_network_disconnected_locally: case EU_error_network_disconnected_locally:
errmsg = "EU_error_network_disconnected_locally"; errmsg = "EU_error_network_disconnected_locally";
break;
case EU_error_network_buffer_overflow: case EU_error_network_buffer_overflow:
errmsg = "EU_error_network_buffer_overflow"; errmsg = "EU_error_network_buffer_overflow";
break;
case EU_error_network_disk_quota_exceeded: case EU_error_network_disk_quota_exceeded:
errmsg = "EU_error_network_disk_quota_exceeded"; errmsg = "EU_error_network_disk_quota_exceeded";
break;
case EU_error_network_remote_host_disconnected: case EU_error_network_remote_host_disconnected:
errmsg = "EU_error_network_remote_host_disconnected"; errmsg = "EU_error_network_remote_host_disconnected";
break;
case EU_error_network_remote_host_down: case EU_error_network_remote_host_down:
errmsg = "EU_error_network_remote_host_down"; errmsg = "EU_error_network_remote_host_down";
break;
case EU_error_network_remote_host_unreachable: case EU_error_network_remote_host_unreachable:
errmsg = "EU_error_network_remote_host_unreachable"; errmsg = "EU_error_network_remote_host_unreachable";
break;
case EU_error_network_remote_host_not_found: case EU_error_network_remote_host_not_found:
errmsg = "EU_error_network_remote_host_not_found"; errmsg = "EU_error_network_remote_host_not_found";
break;
case EU_error_network_remote_host_no_response: case EU_error_network_remote_host_no_response:
errmsg = "EU_error_network_remote_host_no_response"; errmsg = "EU_error_network_remote_host_no_response";
break;
case EU_error_write_out_of_files: case EU_error_write_out_of_files:
errmsg = "EU_error_write_out_of_files"; errmsg = "EU_error_write_out_of_files";
break;
case EU_error_write_out_of_memory: case EU_error_write_out_of_memory:
errmsg = "EU_error_write_out_of_memory"; errmsg = "EU_error_write_out_of_memory";
break;
case EU_error_write_sharing_violation: case EU_error_write_sharing_violation:
errmsg = "EU_error_write_sharing_violation"; errmsg = "EU_error_write_sharing_violation";
break;
case EU_error_write_disk_full: case EU_error_write_disk_full:
errmsg = "EU_error_write_disk_full"; errmsg = "EU_error_write_disk_full";
break;
case EU_error_write_disk_not_found: case EU_error_write_disk_not_found:
errmsg = "EU_error_write_disk_not_found"; errmsg = "EU_error_write_disk_not_found";
break;
case EU_error_write_disk_sector_not_found: case EU_error_write_disk_sector_not_found:
errmsg = "EU_error_write_disk_sector_not_found"; errmsg = "EU_error_write_disk_sector_not_found";
break;
case EU_error_write_disk_fault: case EU_error_write_disk_fault:
errmsg = "EU_error_write_disk_fault"; errmsg = "EU_error_write_disk_fault";
break;
case EU_error_write_file_rename: case EU_error_write_file_rename:
errmsg = "EU_error_write_file_rename"; errmsg = "EU_error_write_file_rename";
break;
case EU_error_http_server_timeout: case EU_error_http_server_timeout:
errmsg = "EU_error_http_server_timeout"; errmsg = "EU_error_http_server_timeout";
break;
case EU_error_http_gateway_timeout: case EU_error_http_gateway_timeout:
errmsg = "EU_error_http_gateway_timeout"; errmsg = "EU_error_http_gateway_timeout";
break;
case EU_error_http_service_unavailable: case EU_error_http_service_unavailable:
errmsg = "EU_error_http_service_unavailable"; errmsg = "EU_error_http_service_unavailable";
break;
case EU_error_http_proxy_authentication:
errmsg = "EU_error_http_proxy_authentication";
break;
case EU_error_zlib: case EU_error_zlib:
errmsg = "EU_error_zlib"; errmsg = "EU_error_zlib";
default: break;
errmsg = "Unknown error";
} }
char msgbuf[1024]; char msgbuf[1024];

View File

@ -79,7 +79,7 @@ enum ErrorUtilCode {
EU_error_zlib = -80, EU_error_zlib = -80,
}; };
EXPCL_PANDAEXPRESS string error_to_text(int err); EXPCL_PANDAEXPRESS string error_to_text(ErrorUtilCode err);
EXPCL_PANDAEXPRESS int get_write_error(void); EXPCL_PANDAEXPRESS int get_write_error(void);
#ifdef HAVE_NET #ifdef HAVE_NET