@@ -58,7 +58,7 @@ bool network_compute_endpoints (sqlite3_context *context, network_data *data, co
5858 }
5959
6060 char *site_id = network_data_get_siteid (data);
61- char *port_or_default = (port) ? (char *)port.UTF8String : CLOUDSYNC_DEFAULT_ENDPOINT_PORT;
61+ char *port_or_default = (port && strcmp (port. UTF8String , " 8860 " ) != 0 ) ? (char *)port.UTF8String : CLOUDSYNC_DEFAULT_ENDPOINT_PORT;
6262
6363 NSString *check_endpoint = [NSString stringWithFormat: @" %s ://%s :%s /%s%s /%s " , scheme.UTF8String, host.UTF8String, port_or_default, CLOUDSYNC_ENDPOINT_PREFIX, database.UTF8String, site_id];
6464 NSString *upload_endpoint = [NSString stringWithFormat: @" %s ://%s :%s /%s%s /%s /%s " , scheme.UTF8String, host.UTF8String, port_or_default, CLOUDSYNC_ENDPOINT_PREFIX, database.UTF8String, site_id, CLOUDSYNC_ENDPOINT_UPLOAD];
@@ -188,7 +188,18 @@ NETWORK_RESULT network_receive_buffer(network_data *data, const char *endpoint,
188188
189189 // return error
190190 NETWORK_RESULT result = {};
191- NSString *msg = (responseError) ? [responseError localizedDescription ] : [NSString stringWithCString: " Unknown network URL" encoding: NSUTF8StringEncoding];
191+ NSString *msg;
192+ if (responseError) {
193+ msg = [responseError localizedDescription ];
194+ } else if (responseData && [responseData length ] > 0 ) {
195+ // Use the actual response body as the error message
196+ msg = [[NSString alloc ] initWithData: responseData encoding: NSUTF8StringEncoding];
197+ if (!msg) {
198+ msg = [NSString stringWithCString: " Invalid error response encoding" encoding: NSUTF8StringEncoding];
199+ }
200+ } else {
201+ msg = [NSString stringWithFormat: @" HTTP %ld error" , (long )statusCode];
202+ }
192203 result.code = CLOUDSYNC_NETWORK_ERROR;
193204 result.buffer = (char *)msg.UTF8String ;
194205 result.xdata = (void *)CFBridgingRetain (msg);
0 commit comments