From bb03623fd3ba7b9cc456da2c9504bad87b80ace0 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 11 Jan 2017 19:51:30 +0300 Subject: - Netlib_Send & Netlib_Recv helpers became real functions, MS_NETLIB_SEND & MS_NETLIB_RECV died; - fix for dumping chunked http replies into a network log --- include/delphi/m_helpers.inc | 43 ------------------------------------- include/delphi/m_netlib.inc | 51 ++++++++------------------------------------ 2 files changed, 9 insertions(+), 85 deletions(-) (limited to 'include/delphi') diff --git a/include/delphi/m_helpers.inc b/include/delphi/m_helpers.inc index 3e9d70b32f..0c98ecd947 100644 --- a/include/delphi/m_helpers.inc +++ b/include/delphi/m_helpers.inc @@ -16,11 +16,6 @@ function CreateVersionStringPlugin(pluginInfo:PPluginInfoEx;buf:PAnsiChar):PAnsi function PLUGIN_MAKE_VERSION(a,b,c,d: Cardinal): int; function PLUGIN_CMP_VERSION(verA: LongInt; verB: LongInt): int; -function Netlib_CloseHandle(Handle: THANDLE): int; -function Netlib_GetBase64DecodedBufferSize(const cchEncoded: int): int; -function Netlib_GetBase64EncodedBufferSize(const cbDecoded: int): int; -function Netlib_Send(hConn: THANDLE; const buf: PAnsiChar; len: int; flags: int): int_ptr; -function Netlib_Recv(hConn: THANDLE; const buf: PAnsiChar; len: int; flags: int): int_ptr; procedure Netlib_Log(hNetLib: THANDLE; const sz: PAnsiChar); function mir_hashstr (const key:PAnsiChar):uint; {inline;} @@ -178,44 +173,6 @@ begin Inc(Result, (verA and $FF000000) - (verB and $FF000000)); end; -function Netlib_CloseHandle(Handle: THANDLE): int; - {$IFDEF AllowInline}inline;{$ENDIF} -begin - Result := CallService(MS_NETLIB_CLOSEHANDLE, Handle, 0); -end; - -function Netlib_GetBase64DecodedBufferSize(const cchEncoded: int): int; - {$IFDEF AllowInline}inline;{$ENDIF} -begin - Result := (cchEncoded shr 2) * 3; -end; - -function Netlib_GetBase64EncodedBufferSize(const cbDecoded: int): int; - {$IFDEF AllowInline}inline;{$ENDIF} -begin - Result := (cbDecoded * 4+11) div 12*4+1; -end; - -function Netlib_Send(hConn: THANDLE; const buf: PAnsiChar; len: int; flags: int): int_ptr; -var - nlb: TNETLIBBUFFER; -begin - nlb.buf := buf; - nlb.len := len; - nlb.flags := flags; - Result := CallService(MS_NETLIB_SEND, wParam(hConn), lParam(@nlb)); -end; - -function Netlib_Recv(hConn: THANDLE; const buf: PAnsiChar; len: int; flags: int): int_ptr; -var - nlb: TNETLIBBUFFER; -begin - nlb.buf := buf; - nlb.len := len; - nlb.flags := flags; - Result := CallService(MS_NETLIB_RECV, wParam(hConn), lParam(@nlb)); -end; - procedure Netlib_Log(hNetLib: THANDLE; const sz: PAnsiChar); {$IFDEF AllowInline}inline;{$ENDIF} begin diff --git a/include/delphi/m_netlib.inc b/include/delphi/m_netlib.inc index edbf277804..3a9512cb49 100644 --- a/include/delphi/m_netlib.inc +++ b/include/delphi/m_netlib.inc @@ -313,27 +313,6 @@ const } MS_NETLIB_REGISTERUSER:PAnsiChar = 'Netlib/RegisterUser'; -{ - Assign a Netlib user handle a set of dynamic HTTP headers to be used with all - - HTTP connections that enable the HTTP-use-sticky headers flag. - The headers persist until cleared with lParam=NULL. - - All memory should be allocated by the caller using malloc() from MS_SYSTEM_GET_MMI - Once it has passed to Netlib, Netlib is the owner of it, the caller should not refer to the memory - In any way after this point. - - wParam=(WPARAM)hNetLibUser - lParam=(LPARAM)(AnsiChar*)szHeaders - - NOTE: The szHeaders parameter should be a NULL terminated string following the HTTP header syntax. - This string will be injected verbatim, thus the user should be aware of setting strings that are not - headers. This service is NOT THREAD SAFE, only a single thread is expected to set the headers and a single - thread reading the pointer internally, stopping race conditions and mutual exclusion don't happen. - - Version 0.3.2a+ (2003/10/27) -} - MS_NETLIB_SETSTICKYHEADERS:PAnsiChar = 'Netlib/SetStickyHeaders'; { wParam : HANDLE @@ -348,20 +327,6 @@ const Errors : ERROR_INVALID_PARAMETER } MS_NETLIB_GETUSERSETTINGS:PAnsiChar = 'Netlib/GetUserSettings'; - - { - wParam : HANDLE - lParam : Pointer to a initalised NETLIBUSERSETTINGS structure - Affect : Changes the configurable settings for a Netlib user -- see notes - Returns: [non zero] on success, NULL(0) on failure - Notes : This service is only really useful for people that specify NUF_NOOPTIONS - when registering and want to create their own options. - Settings will be stored even if the option to enable it, is it not enabled, - e.g. useProxyAuth is 0, szProxyAuthPassword will still be saved - Errors : ERROR_INVALID_PARAMETER - } - MS_NETLIB_SETUSERSETTINGS:PAnsiChar = 'Netlib/SetUserSettings'; - { wParam : HANDLE / SOCKET lParam : 0 @@ -371,7 +336,8 @@ const If a SOCKET type is passed instead of netlib handle type, it is closed Errors : ERROR_INVALID_PARAMETER } - MS_NETLIB_CLOSEHANDLE:PAnsiChar = 'Netlib/CloseHandle'; + +function Netlib_CloseHandle(pHandle:THANDLE) : int; stdcall; external AppDll; { wParam : HANDLE @@ -390,6 +356,8 @@ const Errors : ERROR_INVALID_PARAMETER, any returned by socket(), bind(), listen() getsockname() } + +const MS_NETLIB_BINDPORT:PAnsiChar = 'Netlib/BindPort'; { @@ -602,8 +570,6 @@ const MS_NETLIB_HTTPTRANSACTION:PAnsiChar = 'Netlib/HttpTransaction'; { - wParam : HANDLE - lParam : Pointer to an initialised TNETLIBBUFFER structure Affect : Send data over an open connection see notes Returns: The number of bytes sent on success, SOCKET_ERROR on failure Notes : see Netlib_Send() helper function @@ -613,11 +579,10 @@ const (HTTP proxy): ERROR_GEN_FAILURE (http result code wasn't 2xx) MS_NETLIB_SENDHTTPREQUEST, MS_NETLIB_RECVHTTPHEADERS } - MS_NETLIB_SEND:PAnsiChar = 'Netlib/Send'; + +function Netlib_Send(hConn:THANDLE; pBuf:Pointer; len,flags:int) : int; stdcall; external AppDll; { - wParam : HANDLE - lParam : Pointer to an initialised TNETLIBBUFFER structure Affect : Receive data over a connection, see notes Returns: The number of bytes read on success, SOCKET_ERROR on failure Notes : @@ -646,7 +611,8 @@ const connect(), MS_NETLIB_SENDHTTPREQUEST } - MS_NETLIB_RECV:PAnsiChar = 'Netlib/Recv'; + +function Netlib_Recv(hConn:THANDLE; pBuf:Pointer; len,flags:int) : int; stdcall; external AppDll; { wParam : 0 @@ -659,6 +625,7 @@ const or INVALID_HANDLE_VALUE. Errors : ERROR_INVALID_HANDLE, ERROR_INVALID_DATA, anything from select() } +const MS_NETLIB_SELECT :PAnsiChar = 'Netlib/Select'; MS_NETLIB_SELECTEX:PAnsiChar = 'Netlib/SelectEx'; // added in v0.3.3 -- cgit v1.2.3