Unit WSAPI |
Classes |
Functions |
bind_wsapi - ========================= SERVER_EXPORTED FUNCTIONS ========================= // // Version binding // TESTED: BOOL bind_wsapi(WORD major, WORD minor, BOOL strict);
close_form_decoder - TESTED: void close_form_decoder(FORM_CTX ctx, TCTX *TP);
construct_url - Other URL operations // UNTESTED: void construct_url(char *d, char *s, TCTX *tp);
DbgDump - UNTESTED: void DbgDump (BYTE *buf, WORD len, char *label);
decode_next_field - TESTED: PFIELD decode_next_field(FORM_CTX ctx, TCTX *tp);
die - HTTP error handler (use above result code #defs) // TESTED: void die(int http_status, char *string, TCTX *tp);
do_imagemap - UNTESTED: void do_imagemap(int method, char *map_name, char *coords, TCTX *tp);
escape_url - UNTESTED: void escape_url(char *url, TCTX *tp);
evaluate_access - UNTESTED: void evaluate_access(char *url, TCTX *tp);
exec_cgi - Response // UNTESTED: void exec_cgi(char *m, char *file, char *args, int intfc, TCTX *tp);
exec_cgi_to_file - UNTESTED: void exec_cgi_to_file(char *m, char *file, char *args, int intfc, TCTX *tp);
file_to_url - UNTESTED: void file_to_url(char *pathname, TCTX *tp);
get_content_type - Content type // UNTESTED: char *get_content_type(char *fn, TCTX *tp);
get_server_variable - UNTESTED: BOOL get_server_variable(char *name, char *buf, DWORD size, TCTX *tp);
get_temp_name - UNTESTED: void get_temp_name(char *buf);
http_nt_timestr - UNCONVERTED: char *http_timestr(time_t t, char *buf, int len); function http_timestr(t : time_t; buf : PChar; len : integer) : PChar cdecl; external 'HTTPD32.
init_sec -
later_than - Utilities // UNTESTED: BOOL later_than(char *t1, char *t2);
MD5Final - UNTESTED: void MD5Final(BYTE digest[16], MD5Context *context);
MD5Init - MD5 Support // UNTESTED: void MD5Init(MD5Context *context);
MD5Update - UNTESTED: void MD5Update(MD5Context *context, BYTE *buf, DWORD len);
nflush - TESTED: void nflush(TCTX *tp);
ngets - UNTESTED: void ngets(char *buf, int max, TCTX *tp);
normalize_url - UNTESTED: BOOL normalize_url(char *path);
nputs - Network I/O // TESTED: void nputs(char *buf, TCTX *tp);
nread - TESTED: void nread(char *buf, long nreq, TCTX *tp);
nreadf - UNTESTED: void nreadf(HANDLE hFile, long nreq, TCTX *tp);
nwrite - TESTED: void nwrite(char *buf, int n, TCTX *tp);
nwritef - UNTESTED: void nwritef(HANDLE hFile, DWORD dwStartPos, DWORD dwCount, TCTX *tp);
open_form_decoder - Registry access // UNCONVERTED: HKEY OpenRegKey(char *pszKey); UNCONVERTED: char *GetRegString(char *name, HKEY hKey); UNCONVERTED: DWORD GetRegBin(char *name, HKEY hKey); // Form decoder // TESTED: FORM_CTX open_form_decoder(BYTE *cont, DWORD clen, TCTX *tp);
plus_to_space - UNTESTED: void plus_to_space(char *str);
process_get - UNTESTED: void process_get(char *m, char *url, char *args, TCTX *tp);
send_http_header - TESTED: void send_http_header(TCTX *tp, BOOL do_xhdr);
set_content_type - UNTESTED: void set_content_type(char *fn, TCTX *tp);
space_to_plus - UNTESTED: void space_to_plus(char *str);
TrueRandAddNoise - Cryptographically Strong Random Number Generator // UNTESTED: void TrueRandAddNoise(DWORD data);
TrueRandEntropy - UNTESTED: DWORD TrueRandEntropy(void);
TrueRandGetByte - UNTESTED: BYTE TrueRandGetByte(void);
TrueRandGetBytes - UNTESTED: void TrueRandGetBytes(BYTE *buf, DWORD len);
unescape_url - UNTESTED: void unescape_url(char *url);
url_to_file - URL <--> filespace mapping // UNTESTED: int url_to_file(char *pathname, BOOL do_index, TCTX *tp);
wsapi_free - TESTED: void wsapi_free(void *ptr);
wsapi_log_event - UNTESTED: void wsapi_log_event(HINSTANCE hInstance, char *message);
wsapi_malloc - TESTED: void *wsapi_malloc(long size, TCTX *tp);
wsapi_realloc - UNTESTED: void *wsapi_realloc(void *ptr, long size, TCTX *tp);
wsapi_strdup - UNTESTED: char *wsapi_strdup(char *str, TCTX *tp);
Types |
FIELD
FORM_CTX
get_cert_key_Function
HANDLE
HCONN
HINSTANCE
LPBYTE
LPVOID
MD5Context
PDWORD
PFIELD
PMD5Context
PPBYTE
PTCTX
SOCKET
T16Bytes
TTCTX
xhdr
Constants |
ACCEPTED
AUTH_ACCEPT
AUTH_INTERNAL
AUTH_REJECT
AUTH_REQUIRED
BAD_REQUEST
CREATED
DELETED
DOCUMENT_FOLLOWS
FORBIDDEN
HUGE_STRING_LEN
MAJOR_VERSION
MAX_CGI_DLLS
MAX_EXT_HEADERS
MAX_NAME_LEN
MAX_PROC_DLLS
MAX_STRING_LEN
MAX_TYPE_LEN
MED_STRING_LEN
MINOR_VERSION
MODIFIED
MOVED
M_ANY
M_DELETE
M_GET
M_LINK
M_POST
M_PUT
M_UNLINK
NOT_FOUND
NOT_IMPLEMENTED
NO_RESPONSE
PARTIAL_INFORMATION
REDIRECT
REDIRECT_URL
SCRIPT_DOS
SCRIPT_SHELL
SCRIPT_WIN
SECOPT_NO_BROWSE
SECOPT_OR_CLASS_USERS
SECOPT_SSL_ONLY
SERVER_ERROR
SHTTP_HANDLE_SECURE_METHOD
SHTTP_HANDLE_SECURE_RESPONSE
SHTTP_PROCESS_REQUEST_HEADERS
SHTTP_TRANSACTION_CLEANUP
SML_STRING_LEN
STD_DOCUMENT
USE_LOCAL_COPY
Variables |
Functions |
Types |
FIELD = record
name : array[0..MED_STRING_LEN-1] of char;
data : PBYTE;
len : DWORD;
ctype : array[0..MED_STRING_LEN-1] of char;
xftype : array[0..MED_STRING_LEN-1] of char;
fname : array[0..MED_STRING_LEN-1] of char;
end;
FORM_CTX = pointer------------ Form decoder ------------
get_cert_key_Function = Function(cn : PChar; cert : PPBYTE; cert_len : PDWORD; key : PPBYTE; key_len : PDWORD) : BOOLS-HTTP only - Security initializer callback // UNTESTED: void init_sec(BOOL(*get_cert_key)(char *cn, BYTE **cert, DWORD *cert_len, BYTE **key, DWORD *key_len));
HANDLE = DWORD
HCONN = LPVOID
HINSTANCE = DWORD
LPBYTE = PBYTE
LPVOID = Pointersupporting types not in WSAPI.H but needed in the Delphi version
MD5Context = record
hash : array[0..3] of DWORD;
bytes : array[0..1] of DWORD;
input : array[0..15] of DWORD;
end;
PDWORD = ^DWORD
PFIELD = ^FIELDDecoding context handle
PMD5Context = ^MD5Context----------- FATAL Macro ----------- // Use this when you need to "bail out". It will generate an exception that will cause the server to alert and disable your hook DLL. Use it for "serious" errors that could compromise the DLL or the server. For "normal" errors, call the server-exported die() function or use the ABORT macro. // UNCONVERTED: #define FATAL RaiseException(0xE1000001, 0, 0, NULL) ----------- ABORT Macro (UNCONVERTED) ----------- // Use this when you need to silently end the current request. Calling this will end the request, sending a TCP "reset" packet to the browser. It will not cause your DLL to be disabled. // UNCONVERTED: #define ABORT RaiseException(0xE100000F, 0, 0, NULL) ------------------------------------ Message Digest 5 (MD5, see RFC 1321) ------------------------------------
PPBYTE = ^PBYTE
PTCTX = ^TTCTX--------------------- Transaction Context --------------------- // This is the structure that holds all of the public per-transaction data //
SOCKET = DWORD
T16Bytes = array[0..15] of BYTE;
TTCTX = record
link : pointer;
_hMainWnd : HWND;
bService : BOOL;
bTraceHook : BOOL;
temp_path : PChar;
server_version : PChar;
hSocket : SOCKET;
dwPort : DWORD;
dwThreadID : DWORD;
dwStartTicks : DWORD;
bSSL : BOOL;
remote_host : PChar;
remote_ip : PChar;
remote_name : PChar;
local_name : PChar;
url_prefix : PChar;
local_CN : PChar;
cert : ^BYTE;
cert_len : DWORD;
http_request : array[0..MED_STRING_LEN-1] of char;
http_09 : BOOL;
method : array[0..SML_STRING_LEN-1] of char;
url : array[0..MAX_STRING_LEN-1] of char;
params : array[0..MAX_STRING_LEN-1] of char;
args : array[0..MAX_STRING_LEN-1] of char;
http_accept : array[0..MAX_STRING_LEN-1] of char;
if_mod_since : array[0..SML_STRING_LEN-1] of char;
request_range : array[0..MAX_STRING_LEN-1] of char;
unl_mod_since : array[0..SML_STRING_LEN-1] of char;
referer : array[0..MAX_STRING_LEN-1] of char;
from : array[0..MED_STRING_LEN-1] of char;
user_agent : array[0..MED_STRING_LEN-1] of char;
keep_alive : BOOL;
auth_line : array[0..MED_STRING_LEN-1] of char;
auth_type : PChar;
auth_name : PChar;
user : array[0..SML_STRING_LEN-1] of char;
pass : array[0..SML_STRING_LEN-1] of char;
allow_options : DWORD;
content_length : longint;
content_type : array[0..MED_STRING_LEN-1] of char;
content_encoding : array[0..MED_STRING_LEN-1] of char;
location : array[0..MAX_STRING_LEN-1] of char;
last_modified : array[0..SML_STRING_LEN-1] of char;
rsp_status : array[0..SML_STRING_LEN-1] of char;
num_req_xhdr : longint;
req_xhdr : array[0..MAX_EXT_HEADERS-1] of xhdr;
num_rsp_xhdr : longint;
rsp_xhdr : array[0..MAX_EXT_HEADERS-1] of xhdr;
user_to_check : array[0..SML_STRING_LEN-1] of char;
hOutFile : HANDLE;
http_status : integer;
bytes : longint;
user_1 : DWORD;
user_2 : DWORD;
bSHTTP : BOOL;
dwCryptRequest : DWORD;
TerisaCtx : pointer;
hUnwrappedReq : HANDLE;
hUnwrappedRsp : HANDLE;
end;
xhdr = record------------------------- Extra header info in TCTX -------------------------
key : pointer;
value : pointer;
end;
Constants |
Variables |