Loading CHANGES +5 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,11 @@ Changelog Dan F (30 October 2007) - Fixed an OOM problem with file: URLs - Moved Curl_file_connect into the protocol handler struct Dan F (29 October 2007) - Added test case 546 to check that subsequent FTP transfers work after a failed one using the multi interface Loading lib/file.c +4 −5 Original line number Diff line number Diff line Loading @@ -97,6 +97,7 @@ static CURLcode Curl_file(struct connectdata *, bool *done); static CURLcode Curl_file_done(struct connectdata *conn, CURLcode status, bool premature); static CURLcode Curl_file_connect(struct connectdata *conn, bool *done); /* * FILE scheme handler. Loading @@ -108,7 +109,7 @@ const struct Curl_handler Curl_handler_file = { Curl_file, /* do_it */ Curl_file_done, /* done */ ZERO_NULL, /* do_more */ ZERO_NULL, /* connect_it */ Curl_file_connect, /* connect_it */ ZERO_NULL, /* connecting */ ZERO_NULL, /* doing */ ZERO_NULL, /* proto_getsock */ Loading @@ -123,7 +124,7 @@ const struct Curl_handler Curl_handler_file = { * do protocol-specific actions at connect-time. We emulate a * connect-then-transfer protocol and "connect" to the file here */ CURLcode Curl_file_connect(struct connectdata *conn) static CURLcode Curl_file_connect(struct connectdata *conn, bool *done) { struct SessionHandle *data = conn->data; char *real_path = curl_easy_unescape(data, data->reqdata.path, 0, NULL); Loading Loading @@ -203,6 +204,7 @@ CURLcode Curl_file_connect(struct connectdata *conn) Curl_file_done(conn, CURLE_FILE_COULDNT_READ_FILE, FALSE); return CURLE_FILE_COULDNT_READ_FILE; } *done = TRUE; return CURLE_OK; } Loading @@ -218,9 +220,6 @@ static CURLcode Curl_file_done(struct connectdata *conn, if(file->fd != -1) close(file->fd); free(file); conn->data->reqdata.proto.file= NULL; /* clear it! */ return CURLE_OK; } Loading lib/file.h +0 −2 Original line number Diff line number Diff line Loading @@ -25,7 +25,5 @@ ***************************************************************************/ #ifndef CURL_DISABLE_FILE extern const struct Curl_handler Curl_handler_file; CURLcode Curl_file_connect(struct connectdata *); #endif #endif lib/url.c +6 −4 Original line number Diff line number Diff line Loading @@ -3638,10 +3638,12 @@ static CURLcode CreateConnection(struct SessionHandle *data, * file: is a special case in that it doesn't need a network connection ***********************************************************************/ #ifndef CURL_DISABLE_FILE if (strequal(conn->protostr, "FILE")) { if(conn->protocol & PROT_FILE) { bool done; /* this is supposed to be the connect function so we better at least check that the file is present here! */ result = Curl_file_connect(conn); DEBUGASSERT(conn->handler->connect_it); result = conn->handler->connect_it(conn, &done); /* Setup a "faked" transfer that'll do nothing */ if(CURLE_OK == result) { Loading @@ -3652,8 +3654,8 @@ static CURLcode CreateConnection(struct SessionHandle *data, result = setup_range(data); if(result) { if(conn->handler->done) result = conn->handler->done(conn, result, FALSE); DEBUGASSERT(conn->handler->done); conn->handler->done(conn, result, FALSE); return result; } Loading Loading
CHANGES +5 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,11 @@ Changelog Dan F (30 October 2007) - Fixed an OOM problem with file: URLs - Moved Curl_file_connect into the protocol handler struct Dan F (29 October 2007) - Added test case 546 to check that subsequent FTP transfers work after a failed one using the multi interface Loading
lib/file.c +4 −5 Original line number Diff line number Diff line Loading @@ -97,6 +97,7 @@ static CURLcode Curl_file(struct connectdata *, bool *done); static CURLcode Curl_file_done(struct connectdata *conn, CURLcode status, bool premature); static CURLcode Curl_file_connect(struct connectdata *conn, bool *done); /* * FILE scheme handler. Loading @@ -108,7 +109,7 @@ const struct Curl_handler Curl_handler_file = { Curl_file, /* do_it */ Curl_file_done, /* done */ ZERO_NULL, /* do_more */ ZERO_NULL, /* connect_it */ Curl_file_connect, /* connect_it */ ZERO_NULL, /* connecting */ ZERO_NULL, /* doing */ ZERO_NULL, /* proto_getsock */ Loading @@ -123,7 +124,7 @@ const struct Curl_handler Curl_handler_file = { * do protocol-specific actions at connect-time. We emulate a * connect-then-transfer protocol and "connect" to the file here */ CURLcode Curl_file_connect(struct connectdata *conn) static CURLcode Curl_file_connect(struct connectdata *conn, bool *done) { struct SessionHandle *data = conn->data; char *real_path = curl_easy_unescape(data, data->reqdata.path, 0, NULL); Loading Loading @@ -203,6 +204,7 @@ CURLcode Curl_file_connect(struct connectdata *conn) Curl_file_done(conn, CURLE_FILE_COULDNT_READ_FILE, FALSE); return CURLE_FILE_COULDNT_READ_FILE; } *done = TRUE; return CURLE_OK; } Loading @@ -218,9 +220,6 @@ static CURLcode Curl_file_done(struct connectdata *conn, if(file->fd != -1) close(file->fd); free(file); conn->data->reqdata.proto.file= NULL; /* clear it! */ return CURLE_OK; } Loading
lib/file.h +0 −2 Original line number Diff line number Diff line Loading @@ -25,7 +25,5 @@ ***************************************************************************/ #ifndef CURL_DISABLE_FILE extern const struct Curl_handler Curl_handler_file; CURLcode Curl_file_connect(struct connectdata *); #endif #endif
lib/url.c +6 −4 Original line number Diff line number Diff line Loading @@ -3638,10 +3638,12 @@ static CURLcode CreateConnection(struct SessionHandle *data, * file: is a special case in that it doesn't need a network connection ***********************************************************************/ #ifndef CURL_DISABLE_FILE if (strequal(conn->protostr, "FILE")) { if(conn->protocol & PROT_FILE) { bool done; /* this is supposed to be the connect function so we better at least check that the file is present here! */ result = Curl_file_connect(conn); DEBUGASSERT(conn->handler->connect_it); result = conn->handler->connect_it(conn, &done); /* Setup a "faked" transfer that'll do nothing */ if(CURLE_OK == result) { Loading @@ -3652,8 +3654,8 @@ static CURLcode CreateConnection(struct SessionHandle *data, result = setup_range(data); if(result) { if(conn->handler->done) result = conn->handler->done(conn, result, FALSE); DEBUGASSERT(conn->handler->done); conn->handler->done(conn, result, FALSE); return result; } Loading