diff -r 3cfe65695a8c -r 36a7f2ea7d12 dav/error.c --- a/dav/error.c Thu Jul 20 21:16:19 2023 +0200 +++ b/dav/error.c Thu Jul 20 21:55:45 2023 +0200 @@ -34,37 +34,41 @@ #include "error.h" void print_resource_error(DavSession *sn, const char *path) { + print_resource_error_to_file(stderr, sn, path); +} + +void print_resource_error_to_file(FILE *file, DavSession *sn, const char *path) { char *res_url = util_concat_path(sn->base_url, path); switch(sn->error) { default: { - fprintf(stderr, "Operation failed for resource %s.\n", res_url); + fprintf(file, "Operation failed for resource %s.\n", res_url); if(sn->errorstr) { - fprintf(stderr, "%s\n", sn->errorstr); + fprintf(file, "%s\n", sn->errorstr); } break; } case DAV_NOT_FOUND: { - fprintf(stderr, "Resource %s not found.\n", res_url); + fprintf(file, "Resource %s not found.\n", res_url); break; } case DAV_UNAUTHORIZED: { - fprintf(stderr, "Authentication required.\n"); + fprintf(file, "Authentication required.\n"); break; } case DAV_PROXY_AUTH_REQUIRED: { - fprintf(stderr, "Proxy authentication required.\n"); + fprintf(file, "Proxy authentication required.\n"); break; } case DAV_NET_AUTH_REQUIRED: { - fprintf(stderr, "Network authentication required.\n"); + fprintf(file, "Network authentication required.\n"); break; } case DAV_FORBIDDEN: { - fprintf(stderr, "Access forbidden.\n"); + fprintf(file, "Access forbidden.\n"); break; } case DAV_METHOD_NOT_ALLOWED: { - fprintf(stderr, "Method not allowed.\n"); + fprintf(file, "Method not allowed.\n"); break; } case DAV_CONFLICT: { @@ -81,48 +85,48 @@ break; } case DAV_UNSUPPORTED_PROTOCOL: { - fprintf(stderr, "Unsupported protocol.\n"); + fprintf(file, "Unsupported protocol.\n"); if(sn->errorstr) { - fprintf(stderr, "%s\n", sn->errorstr); + fprintf(file, "%s\n", sn->errorstr); } break; } case DAV_COULDNT_RESOLVE_PROXY: { - fprintf(stderr, "Cannot resolve proxy host.\n"); + fprintf(file, "Cannot resolve proxy host.\n"); break; } case DAV_COULDNT_RESOLVE_HOST: { - fprintf(stderr, "Cannot resolve host name.\n"); + fprintf(file, "Cannot resolve host name.\n"); break; } case DAV_COULDNT_CONNECT: { - fprintf(stderr, "Cannot connect to host.\n"); + fprintf(file, "Cannot connect to host.\n"); break; } case DAV_TIMEOUT: { - fprintf(stderr, "Operation timed out.\n"); + fprintf(file, "Operation timed out.\n"); break; } case DAV_SSL_ERROR: { - fprintf(stderr, "SSL error.\n"); + fprintf(file, "SSL error.\n"); if(sn->errorstr) { - fprintf(stderr, "%s\n", sn->errorstr); + fprintf(file, "%s\n", sn->errorstr); } break; } case DAV_CONTENT_VERIFICATION_ERROR: { fprintf( - stderr, + file, "Content checksum verification failed for resource %s.\n", res_url); break; } case DAV_REQUEST_ENTITY_TOO_LARGE: { - fprintf(stderr, "Request entity too large.\n"); + fprintf(file, "Request entity too large.\n"); break; } case DAV_REQUEST_URL_TOO_LONG: { - fprintf(stderr, "Request URL too long.\n"); + fprintf(file, "Request URL too long.\n"); break; } }