diff options
| author | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2017-03-05 16:02:41 +0100 | 
|---|---|---|
| committer | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2017-03-05 16:02:41 +0100 | 
| commit | 89e95da1eae31fd20da5039f96ebb5d2c447040c (patch) | |
| tree | aa31ddece09a4fdb018eb933e4c50341af968925 /src | |
| parent | 7de909aa92935821aedcb7414f8a5d058ea520ad (diff) | |
| download | blogc-89e95da1eae31fd20da5039f96ebb5d2c447040c.tar.gz blogc-89e95da1eae31fd20da5039f96ebb5d2c447040c.tar.bz2 blogc-89e95da1eae31fd20da5039f96ebb5d2c447040c.zip | |
runserver: improved error reporting on write failures
Diffstat (limited to 'src')
| -rw-r--r-- | src/blogc-runserver/httpd.c | 19 | 
1 files changed, 11 insertions, 8 deletions
| diff --git a/src/blogc-runserver/httpd.c b/src/blogc-runserver/httpd.c index 43cd0e6..f3b2e2b 100644 --- a/src/blogc-runserver/httpd.c +++ b/src/blogc-runserver/httpd.c @@ -50,8 +50,9 @@ error(int socket, int status_code, const char *error)          "Connection: close\r\n"          "\r\n"          "<h1>%s</h1>\n", status_code, error, strlen(error) + 10, error); -    if (write(socket, str, strlen(str)) == -1) { -        // do nothing, just avoid warnig +    size_t str_len = strlen(str); +    if (str_len != write(socket, str, str_len)) { +        fprintf(stderr, "warning: Failed to write full response header!\n");      }      free(str);  } @@ -161,8 +162,9 @@ handle_request(void *arg)              "Connection: close\r\n"              "\r\n", path);          status_code = 302; -        if (write(client_socket, tmp, strlen(tmp)) == -1) { -            // do nothing, just avoid warnig +        size_t tmp_len = strlen(tmp); +        if (tmp_len != write(client_socket, tmp, tmp_len)) { +            fprintf(stderr, "warning: Failed to write full response header!\n");          }          free(tmp);          goto point4; @@ -184,13 +186,14 @@ handle_request(void *arg)          "Content-Length: %zu\r\n"          "Connection: close\r\n"          "\r\n", br_mime_guess_content_type(real_path), len); -    if (write(client_socket, out, strlen(out)) == -1) { -        // do nothing, just avoid warnig +    size_t out_len = strlen(out); +    if (out_len != write(client_socket, out, out_len)) { +        fprintf(stderr, "warning: Failed to write full response header!\n");      }      free(out); -    if (write(client_socket, contents, len) == -1) { -        // do nothing, just avoid warnig +    if (len != write(client_socket, contents, len)) { +        fprintf(stderr, "warning: Failed to write full response body!\n");      }      free(contents); | 
