Hans Leidekker : winhttp: Implement WinHttpWriteData.
Alexandre Julliard
julliard at winehq.org
Tue Aug 26 07:07:44 CDT 2008
Module: wine
Branch: master
Commit: 6619e54d1eaf5f62115e8fa43a2db16589e47c16
URL: http://source.winehq.org/git/wine.git/?a=commit;h=6619e54d1eaf5f62115e8fa43a2db16589e47c16
Author: Hans Leidekker <hans at codeweavers.com>
Date: Tue Aug 26 11:05:02 2008 +0200
winhttp: Implement WinHttpWriteData.
---
dlls/winhttp/main.c | 12 ------------
dlls/winhttp/request.c | 28 ++++++++++++++++++++++++++++
dlls/winhttp/tests/winhttp.c | 4 ++--
3 files changed, 30 insertions(+), 14 deletions(-)
diff --git a/dlls/winhttp/main.c b/dlls/winhttp/main.c
index 220cc51..2d3ec2f 100644
--- a/dlls/winhttp/main.c
+++ b/dlls/winhttp/main.c
@@ -105,18 +105,6 @@ BOOL WINAPI WinHttpSetOption (HINTERNET hInternet, DWORD dwOption, LPVOID lpBuff
return FALSE;
}
-/***********************************************************************
- * WinHttpWriteData (winhttp.@)
- */
-BOOL WINAPI WinHttpWriteData (HINTERNET hRequest, LPCVOID lpBuffer,
- DWORD dwNumberOfBytesToWrite, LPDWORD lpdwNumberOfBytesWritten)
-{
- FIXME("(%p, %d, %p): stub\n", lpBuffer, dwNumberOfBytesToWrite, lpdwNumberOfBytesWritten);
-
- SetLastError(ERROR_NOT_SUPPORTED);
- return FALSE;
-}
-
BOOL WINAPI InternetCrackUrlW( LPCWSTR, DWORD, DWORD, LPURL_COMPONENTSW );
BOOL WINAPI InternetCreateUrlW( LPURL_COMPONENTS, DWORD, LPWSTR, LPDWORD );
diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c
index 21e59c7..0d5d203 100644
--- a/dlls/winhttp/request.c
+++ b/dlls/winhttp/request.c
@@ -1109,3 +1109,31 @@ BOOL WINAPI WinHttpReadData( HINTERNET hrequest, LPVOID buffer, DWORD to_read, L
release_object( &request->hdr );
return ret;
}
+
+/***********************************************************************
+ * WinHttpWriteData (winhttp.@)
+ */
+BOOL WINAPI WinHttpWriteData( HINTERNET hrequest, LPCVOID buffer, DWORD to_write, LPDWORD written )
+{
+ BOOL ret;
+ request_t *request;
+
+ TRACE("%p, %p, %d, %p\n", hrequest, buffer, to_write, written);
+
+ if (!(request = (request_t *)grab_object( hrequest )))
+ {
+ set_last_error( ERROR_INVALID_HANDLE );
+ return FALSE;
+ }
+ if (request->hdr.type != WINHTTP_HANDLE_TYPE_REQUEST)
+ {
+ release_object( &request->hdr );
+ set_last_error( ERROR_WINHTTP_INCORRECT_HANDLE_TYPE );
+ return FALSE;
+ }
+
+ ret = netconn_send( &request->netconn, buffer, to_write, 0, (int *)written );
+
+ release_object( &request->hdr );
+ return ret;
+}
diff --git a/dlls/winhttp/tests/winhttp.c b/dlls/winhttp/tests/winhttp.c
index fa0249d..3fbb24c 100644
--- a/dlls/winhttp/tests/winhttp.c
+++ b/dlls/winhttp/tests/winhttp.c
@@ -117,8 +117,8 @@ static void test_SendRequest (void)
{
bytes_rw = -1;
ret = WinHttpWriteData(request, &post_data[i], 1, &bytes_rw);
- todo_wine ok(ret == TRUE, "WinHttpWriteData failed: %u.\n", GetLastError());
- todo_wine ok(bytes_rw == 1, "WinHttpWriteData failed, wrote %u bytes instead of 1 byte.\n", bytes_rw);
+ ok(ret == TRUE, "WinHttpWriteData failed: %u.\n", GetLastError());
+ ok(bytes_rw == 1, "WinHttpWriteData failed, wrote %u bytes instead of 1 byte.\n", bytes_rw);
}
ret = WinHttpReceiveResponse(request, NULL);
More information about the wine-cvs
mailing list