- if (count == sizeof(request->read_buf)) /* check if we have even more pending in the socket */
- {
- DWORD extra;
- if ((ret = netconn_query_data_available( &request->netconn, &extra )))
- {
- count = min( count + extra, request->content_length - request->content_read );
- }
- }
- if (async)
- {
- if (ret) send_callback( &request->hdr, WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE, &count, sizeof(count) );
- else
- {
- WINHTTP_ASYNC_RESULT result;
- result.dwResult = API_QUERY_DATA_AVAILABLE;
- result.dwError = get_last_error();
- send_callback( &request->hdr, WINHTTP_CALLBACK_STATUS_REQUEST_ERROR, &result, sizeof(result) );
- }
- }
- if (ret)
- {
- TRACE("%u bytes available\n", count);
- if (available) *available = count;
- }
- return ret;
+ if (async) send_callback( &request->hdr, WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE, &count, sizeof(count) );
+ TRACE("%u bytes available\n", count);
+ if (available) *available = count;
+ return TRUE;