|
API Guide Home (Online version only) |
![]() |
00001 /* 00002 HS_HTTPLib68K.h 00003 Copyright(c) 1996-2002 ACCESS CO., LTD. 00004 All rights are reserved by ACCESS CO., LTD., whether the whole or 00005 part of the source code including any modifications. 00006 */ 00007 /** 00008 * @defgroup HTTP HTTP Library 00009 * 00010 * @{ 00011 * @} 00012 */ 00013 /** 00014 * 00015 * @ingroup HTTP 00016 * 00017 */ 00018 00019 /** 00020 * @file HS_HTTPLib68K.h 00021 * @version 2.0 00022 * @date 00023 * 00024 * @brief Public 68k include file for the HTTP Library. 00025 * 00026 * 00027 */ 00028 00029 00030 00031 #ifndef HS_HTTPLIB68K_H__ 00032 #define HS_HTTPLIB68K_H__ 00033 00034 #include <PalmTypes.h> 00035 #include <LibTraps.h> 00036 00037 /** 00038 * Make sure to move the HS_inc folder in front of the following headers when merging 00039 * new Access code drops. 00040 **/ 00041 #include <Common/Libraries/HTTP/HS_HTTPLibApp.h> 00042 #include <Common/Libraries/HTTP/HS_HTTPLibConst.h> 00043 00044 /* struct */ 00045 00046 /** 00047 * structure for glueing 00048 **/ 00049 00050 struct HS_HTTPLibSplit_ { 00051 Char *s; /**< */ 00052 Int32 len; /**< */ 00053 }; 00054 typedef struct HS_HTTPLibSplit_ HS_HTTPLibSplit; 00055 00056 struct HS_HTTPLibTime_ { 00057 Int32 day; /**< days (either backward or forward) since 01 January, 1970 UTC */ 00058 Int32 msec; /**< milliseconds since midnight [0-86399999] */ 00059 }; 00060 typedef struct HS_HTTPLibTime_ HS_HTTPLibTime; 00061 00062 typedef void *HS_HTTPLibDataHandle; /**< */ 00063 typedef void *HS_HTTPLibVHandle; /**< */ 00064 typedef void *HS_HTTPLibString; /**< */ 00065 typedef void *HS_HTTPLibFixedString; /**< */ 00066 typedef void *HS_HTTPLibURLString; /**< */ 00067 00068 /** 00069 * 00070 **/ 00071 struct HS_HTTPLibAuthInfo_ { 00072 HS_HTTPLibString fUser; /**< */ 00073 HS_HTTPLibString fPass; /**< */ 00074 HS_HTTPLibString fRealm; /**< */ 00075 HS_HTTPLibString fChallenge; /**< */ 00076 HS_HTTPLibString fNextNonce; /**< */ 00077 Int32 fNC; /**< */ 00078 }; 00079 typedef struct HS_HTTPLibAuthInfo_ HS_HTTPLibAuthInfo; 00080 00081 /** 00082 * This sets the rules for HttpLib to use to select useragent for each request. 00083 * The rule should be set as little as possible so that it does not slow down 00084 * browser performance. 00085 **/ 00086 enum { 00087 httpUASelectTypeHost, /**< */ 00088 httpUASelectTypePath /**< */ 00089 }; 00090 00091 /** 00092 * 00093 **/ 00094 typedef struct { 00095 Int32 fType; /**< */ 00096 Char *fMatchString; /**< substring to be matched */ 00097 Char *fUserAgent; /**< */ 00098 } HttpUASelectionRule; 00099 00100 00101 typedef void *HS_HTTPLibStream; /**< */ 00102 typedef void *HS_HTTPLibSSL; /**< */ 00103 typedef void *HS_HTTPLibCookies; /**< */ 00104 typedef void *HS_HTTPLibCertPtr; /**< */ 00105 typedef void *HS_HTTPLibCertList; /**< */ 00106 typedef void *HS_HTTPLibClientCertList; /**< */ 00107 typedef void *HS_HTTPLibSSLClassPtr; /**< */ 00108 00109 typedef Int32 (*HS_HTTPLibCookieConfirmProc)(HS_HTTPLibCookies in_cookie, HS_HTTPLibURLString in_url, Char *in_header, Int32 in_header_len, HS_HTTPLibOpaque in_aux); /**< */ 00110 typedef Int32 (*HS_HTTPLibServerCertConfirmProc)(HS_HTTPLibSSL in_ssl, Int32 in_verify_result, HS_HTTPLibCertList in_list, HS_HTTPLibOpaque in_aux); /**< */ 00111 typedef Int32 (*HS_HTTPLibClientCertSelectProc)(HS_HTTPLibSSL in_ssl, HS_HTTPLibClientCertList in_list, HS_HTTPLibOpaque in_aux); /**< */ 00112 typedef Int32 (*HS_HTTPLibTunnelingCallbackProc)(HS_HTTPLibStream stream, Char* buf, Int32 len, void *in_aux); /**< */ 00113 typedef void (*HS_HTTPLibWakeUpCallbackProc)(HS_HTTPLibOpaque in_aux); /**< */ 00114 00115 /* const */ 00116 00117 /* API */ 00118 00119 /** 00120 * @brief This function opens the HTTP library and increments the open count. This 00121 * function will create and initialize the library’s common data at first opening. 00122 * 00123 * @param refnum: IN: Library reference number 00124 * @return Error code. 00125 **/ 00126 Err HS_HTTPLibOpen(UInt16 refnum) 00127 SYS_TRAP(kHTTPLibTrapOpen); 00128 00129 /** 00130 * @brief This function decrements open count and finalizes the library’s common data at 00131 * the last close. 00132 * 00133 * @param refnum: IN: Library reference number 00134 * @param usecountP: OUT: Open count 00135 * @return Error code. 00136 **/ 00137 Err HS_HTTPLibClose(UInt16 refnum, UInt16* usecountP) 00138 SYS_TRAP(kHTTPLibTrapClose); 00139 00140 /** 00141 * @brief Standard library sleep function. 00142 * 00143 * @param refnum: IN: Library reference number 00144 * @return Error code. 00145 **/ 00146 Err HS_HTTPLibSleep(UInt16 refnum) 00147 SYS_TRAP(kHTTPLibTrapSleep); 00148 00149 /** 00150 * @brief Standard library wake function. 00151 * 00152 * @param refnum: IN: Library reference number 00153 * @return Error code. 00154 **/ 00155 Err HS_HTTPLibWake(UInt16 refnum) 00156 SYS_TRAP(kHTTPLibTrapWake); 00157 00158 /** 00159 * @brief This function returns the open count of this library. 00160 * 00161 * @param refnum: IN: Library reference number 00162 * @return Open count. 00163 **/ 00164 UInt16 HS_HTTPLibOpenCount(UInt16 refnum) 00165 SYS_TRAP(kHTTPLibTrapOpenCount); 00166 00167 /** 00168 * @brief This function initializes the library instance and sets application dependent 00169 * information in the global variables. The return value is the handle of library 00170 * instance. If an error occurs during the initialization, the return value is NULL. 00171 * 00172 * This call should be made after the application has called HS_HTTPLibOpen and 00173 * assigned the HS_HTTPLibAppInfo, HS_HTTPLibNetLibInfo, and 00174 * HS_HTTPLibPeer global variables with the application’s parameters. A reciprocal 00175 * call to HS_HTTPLibFinalize should be made when the application is finished 00176 * using the library. 00177 * 00178 * @param refnum: IN: Library reference number 00179 * @param *appInfoP: IN: 00180 * @param *netLibInfoP: IN: 00181 * @param *peerP: IN: 00182 * @retval HS_HTTPLibHandle 00183 * non NULL if successful. NULL if failed 00184 **/ 00185 HS_HTTPLibHandle HS_HTTPLibInitialize(UInt16 refnum, HS_HTTPLibAppInfo *appInfoP, HS_HTTPLibNetLibInfo *netLibInfoP, HS_HTTPLibPeer *peerP) 00186 SYS_TRAP(kHTTPLibTrapInitialize); 00187 00188 /** 00189 * @brief This function finalizes the library instance. 00190 * 00191 * This call should be made when the application is finished using the library. 00192 * 00193 * @param refnum: IN: Library reference number 00194 * @param libH: IN: The handle of HTTP library instance 00195 * @return None. 00196 **/ 00197 void HS_HTTPLibFinalize(UInt16 refnum, HS_HTTPLibHandle libH) 00198 SYS_TRAP(kHTTPLibTrapFinalize); 00199 00200 /** 00201 * @brief 00202 * 00203 * @param refnum: IN: 00204 * @param libH: IN: 00205 * @retval Err error code. 00206 **/ 00207 HS_HTTPLibSSLClassPtr HS_HTTPLibSSLClass(UInt16 refnum, HS_HTTPLibHandle libH) 00208 SYS_TRAP(kHTTPLibTrapSSLClass); 00209 00210 /** 00211 * @brief 00212 * 00213 * @param refnum: IN: 00214 * @param libH: IN: 00215 * @param sslClassP: IN: 00216 * @retval Err error code. 00217 **/ 00218 void HS_HTTPLibRegisterSSLClass(UInt16 refnum, HS_HTTPLibHandle libH, HS_HTTPLibSSLClassPtr sslClassP) 00219 SYS_TRAP(kHTTPLibTrapRegisterSSLClass); 00220 00221 /** 00222 * @brief This function clears the DNS cache information. 00223 * 00224 * @param refnum: IN: Library reference number 00225 * @param libH: IN: The handle of HTTP library instance 00226 * @return None. 00227 **/ 00228 void HS_HTTPLibClearDNSCache(UInt16 refnum, HS_HTTPLibHandle libH) 00229 SYS_TRAP(kHTTPLibTrapClearDNSCache); 00230 00231 /** 00232 * @brief This function closes the all idle keep alive sockets relating this application. Nonidle 00233 * sockets are not closed by this function. 00234 * 00235 * This call should be made at library finalization if keep-alive sockets are active. 00236 * 00237 * @param refnum: IN: Library reference number 00238 * @param libH: IN: The handle of HTTP library instance 00239 * @return None. 00240 **/ 00241 void HS_HTTPLibCloseAllKeepAlive(UInt16 refnum, HS_HTTPLibHandle libH) 00242 SYS_TRAP(kHTTPLibTrapCloseAllKeepAlive); 00243 00244 /** 00245 * @brief Set the proxy information of this application to out_proxy_host, 00246 * out_proxy_http_port, out_proxy_https_port, out_no_proxy_hosts. 00247 * If out_proxy_host is NULL, the value of *out_proxy_http_port, 00248 * *out_proxy_https_port, *out_no_proxy_hosts are not set, otherwise the values of 00249 * *out_proxy_http_port, *out_proxy_https are set. 00250 * If out_no_proxy_hosts is NULL, *out_no_proxy_hosts is not set. 00251 * The format of out_no_proxy_hosts is the list separated by “,”. 00252 * The responsibility of delete *out_proxy_host, *out_no_proxy_hosts is caller. 00253 * 00254 * @param refnum: IN: Library reference number 00255 * @param libH: IN: The handle of HTTP library instance 00256 * @param *out_proxy_host: OUT: The pointer to handle of proxy host string 00257 * @param *out_proxy_http_port: OUT: The pointer to HTTP port number 00258 * @param *out_proxy_https_port: OUT: The pointer to HTTPS port number 00259 * @param *out_no_proxy_hosts: OUT: The pointer to handle of the list string of hosts connect without using proxy server. 00260 * @return None. 00261 **/ 00262 void HS_HTTPLibMakeProxy(UInt16 refnum, HS_HTTPLibHandle libH, HS_HTTPLibFixedString *out_proxy_host, Int32 *out_proxy_http_port, Int32 *out_proxy_https_port, HS_HTTPLibString *out_no_proxy_hosts) 00263 SYS_TRAP(kHTTPLibTrapMakeProxy); 00264 00265 /** 00266 * @brief This function sets the default HTTP port number. If there is no indication in URL, 00267 * this port number is used for TCP connection. 00268 * 00269 * @param refnum: IN: Library reference number 00270 * @param libH: IN: The handle of HTTP library instance 00271 * @param in_port: IN: The HTTP port number 00272 * @return None. 00273 **/ 00274 void HS_HTTPLibSetHTTPPort(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_port) 00275 SYS_TRAP(kHTTPLibTrapSetHTTPPort); 00276 00277 /** 00278 * @brief This function sets the default HTTPS port number. If there is no indication in https 00279 * URL, this port number is used for TCP connection. 00280 * 00281 * @param refnum: IN: Library reference number 00282 * @param libH: IN: The handle of HTTP library instance 00283 * @param in_port: IN: The HTTPS port number 00284 * @return None. 00285 **/ 00286 void HS_HTTPLibSetHTTPSPort(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_port) 00287 SYS_TRAP(kHTTPLibTrapSetHTTPSPort); 00288 00289 /** 00290 * @brief This function sets the maximal size of Request-Line. If in_size is -1, the maximal 00291 * size is unlimited. Note that this function does not set the maximal size of Request- 00292 * Header. See RFC2616 for the definitions of Request-Line and Request-Header. 00293 * 00294 * @param refnum: IN: Library reference number 00295 * @param libH: IN: The handle of HTTP library instance 00296 * @param in_size: IN: The maximal size (byte) 00297 * @return None. 00298 **/ 00299 void HS_HTTPLibSetMaxRequestHeader(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_size) 00300 SYS_TRAP(kHTTPLibTrapSetMaxRequestHeader); 00301 00302 /** 00303 * @brief This function sets the maximal size of Request-Body. If in_size is -1, the maximal 00304 * size is unlimited. 00305 * 00306 * @param refnum: IN: Library reference number 00307 * @param libH: IN: The handle of HTTP library instance 00308 * @param in_size: IN: The maximal size (byte) 00309 * @return None. 00310 **/ 00311 void HS_HTTPLibSetMaxRequestBody(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_size) 00312 SYS_TRAP(kHTTPLibTrapSetMaxRequestBody); 00313 00314 /** 00315 * @brief This function sets the proxy server setting for this application. If in_proxy_host is 00316 * NULL, in_proxy_host, in_proxy_http_port, in_proxy_https_port are not set. 00317 * If in_no_proxy_hosts is NULL, in_no_proxy_hosts is not set. The format of 00318 * in_no_proxy_hosts is comma (“,”) separated list. 00319 * 00320 * This call can be grouped with other proxy setting calls if the application is making 00321 * the same type of request for all the requests. 00322 * 00323 * @param refnum: IN: Library reference number 00324 * @param libH: IN: The handle of HTTP library instance 00325 * @param *in_proxy_host: IN: The proxy host name 00326 * @param in_proxy_host_len: IN: The length of in_proxy_host string 00327 * @param in_proxy_http_port: IN: The HTTP port of proxy server 00328 * @param in_proxy_https_port: IN: The HTTPS port of proxy server 00329 * @param *in_no_proxy_hosts: IN: The list of hosts not using proxy 00330 * @param in_no_proxy_hosts_len: IN: The length of in_no_proxy_hosts 00331 * @return 00332 * True if setting is succeed. 00333 * False if failed.(the main reason is memory shortage) 00334 **/ 00335 Boolean HS_HTTPLibSetProxy(UInt16 refnum, HS_HTTPLibHandle libH, Char *in_proxy_host, Int32 in_proxy_host_len, Int32 in_proxy_http_port, Int32 in_proxy_https_port, Char *in_no_proxy_hosts, Int32 in_no_proxy_hosts_len) 00336 SYS_TRAP(kHTTPLibTrapSetProxy); 00337 00338 /** 00339 * @brief This function sets the UserAgent string for the application. If in_useragent is 00340 * NULL, setting is cleared. 00341 * 00342 * This call allows the application to set the user agent identfication in the requests. 00343 * 00344 * @param refnum: IN: Library reference number 00345 * @param libH: IN: The handle of HTTP library instance 00346 * @param *in_useragent: IN: The string of User Agent 00347 * @param in_useragent_len: IN: The length of in_useragent 00348 * @return 00349 * True if setting is successful. 00350 * False if failed.(The main reason is memory shortage.) 00351 **/ 00352 Boolean HS_HTTPLibSetUserAgent(UInt16 refnum, HS_HTTPLibHandle libH, Char *in_useragent, Int32 in_useragent_len) 00353 SYS_TRAP(kHTTPLibTrapSetUserAgent); 00354 00355 /** 00356 * @brief This function sets the default header, i.e. this string is added to the Request-header 00357 * of the Request created at HS_HTTPLibStreamCreateRequest. If in_default_headers 00358 * is NULL, the setting is cleared. 00359 * 00360 * This call allows the application to set the application defined standard headers 00361 * without having the populate each request with HS_HTTPLibStreamAddHeader. 00362 * 00363 * @param refnum: IN: Library reference number 00364 * @param libH: IN: The handle of HTTP library instance 00365 * @param *in_default_headers: IN: The string of default header 00366 * @param in_default_headers_len: IN: The length of in_default_headers 00367 * @return 00368 * True if setting is successful. 00369 * False if failed. (The main reason is memory shortage.) 00370 **/ 00371 Boolean HS_HTTPLibSetDefaultHeaders(UInt16 refnum, HS_HTTPLibHandle libH, Char *in_default_headers, Int32 in_default_headers_len) 00372 SYS_TRAP(kHTTPLibTrapSetDefaultHeaders); 00373 00374 /** 00375 * @brief This function sets whether this application uses proxy server. 00376 * 00377 * @param refnum: IN: Library reference number 00378 * @param libH: IN: The handle of HTTP library instance 00379 * @param in_bool: IN: True if using proxy server. 00380 * False if not using proxy server. 00381 * @return None. 00382 **/ 00383 void HS_HTTPLibSetUseProxy(UInt16 refnum, HS_HTTPLibHandle libH, Boolean in_bool) 00384 SYS_TRAP(kHTTPLibTrapSetUseProxy); 00385 00386 /** 00387 * @brief This function sets whether this application permits HTTP1.1 over proxy server. If 00388 * false is set, the application use HTTP/1.0. 00389 * 00390 * @param refnum: IN: Library reference number 00391 * @param libH: IN: The handle of HTTP library instance 00392 * @param in_bool: IN: True if permitting HTTP/1.1 over proxy server 00393 * False if not permitting HTTP/1.1 over proxy server 00394 * @return None. 00395 **/ 00396 void HS_HTTPLibSetHTTP11OverProxy(UInt16 refnum, HS_HTTPLibHandle libH, Boolean in_bool) 00397 SYS_TRAP(kHTTPLibTrapSetHTTP11OverProxy); 00398 00399 /** 00400 * @brief 00401 * 00402 * @param refnum: IN: 00403 * @param libH: IN: 00404 * @param in_bool: IN: 00405 * @retval Err error code. 00406 **/ 00407 void HS_HTTPLibSetSendReferer(UInt16 refnum, HS_HTTPLibHandle libH, Boolean in_bool) 00408 SYS_TRAP(kHTTPLibTrapSetSendReferer); 00409 00410 /** 00411 * @brief 00412 * 00413 * @param refnum: IN: 00414 * @param libH: IN: 00415 * @param in_bool: IN: 00416 * @retval Err error code. 00417 **/ 00418 void HS_HTTPLibSetSendProxyKeepAlive(UInt16 refnum, HS_HTTPLibHandle libH, Boolean in_bool) 00419 SYS_TRAP(kHTTPLibTrapSetSendProxyKeepAlive); 00420 00421 /** 00422 * @brief This function sets whether this application sends Cookie. 00423 * 00424 * @param refnum: IN: Library reference number 00425 * @param libH: IN: The handle of HTTP library instance 00426 * @param in_bool: IN: True if sending Cookie 00427 * False if not sending Cookie 00428 * @return None. 00429 **/ 00430 void HS_HTTPLibSetSendCookie(UInt16 refnum, HS_HTTPLibHandle libH, Boolean in_bool) 00431 SYS_TRAP(kHTTPLibTrapSetSendCookie); 00432 00433 /** 00434 * @brief This function sets the limit of Connection timeout. If in_msec is -1, no timeout is 00435 * set. The condition of timeout is in_msec has passed from TCP connect without 00436 * HTTP connection established. 00437 * 00438 * With this function the different connection timeouts can be set at library 00439 * initialization. 00440 * 00441 * @param refnum: IN: Library reference number 00442 * @param libH: IN: The handle of HTTP library instance 00443 * @param in_msec: IN: Time Limit (msec) 00444 * @retval Nothing 00445 **/ 00446 void HS_HTTPLibSetConnectTimeOut(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_msec) 00447 SYS_TRAP(kHTTPLibTrapSetConnectTimeOut); 00448 00449 /** 00450 * @brief This function sets the limit of sending Request timeout. If in_msec is -1, no timeout 00451 * is set. The condition of timeout is in_msec has passed from the start of Request 00452 * sending without sending done. 00453 * 00454 * @param refnum: IN: Library reference number 00455 * @param libH: IN: The handle of HTTP library instance 00456 * @param in_msec: IN: Time Limit (msec) 00457 * @return None. 00458 **/ 00459 void HS_HTTPLibSetReqTimeOut(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_msec) 00460 SYS_TRAP(kHTTPLibTrapSetReqTimeOut); 00461 00462 /** 00463 * @brief This function sets the limit of receiving Response timeout. If in_msec is -1, no 00464 * timeout is set. The condition of timeout is in_msec has passed from the end of 00465 * sending request without receiving Response. Or in_msec has passed from the last 00466 * receiving a part of Response without receiving any part of Response. 00467 * 00468 * @param refnum: IN: Library reference number 00469 * @param libH: IN: The handle of HTTP library instance 00470 * @param in_msec: IN: Time Limit (msec) 00471 * @retval Nothing 00472 **/ 00473 void HS_HTTPLibSetRspTimeOut(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_msec) 00474 SYS_TRAP(kHTTPLibTrapSetRspTimeOut); 00475 00476 /** 00477 * @brief 00478 * 00479 * @param refnum: IN: 00480 * @param libH: IN: 00481 * @param in_cb: IN: 00482 * @param *in_aux: IN: 00483 * @retval Err error code. 00484 **/ 00485 void HS_HTTPLibSetTunnelingCallback(UInt16 refnum, HS_HTTPLibHandle libH, HS_HTTPLibTunnelingCallbackProc in_cb, void *in_aux) 00486 SYS_TRAP(kHTTPLibTrapSetTunnelingCallback); 00487 00488 /** 00489 * @brief This function returns whether this application uses proxy. 00490 * 00491 * @param refnum: IN: Library reference number 00492 * @param libH: IN: The handle of HTTP library instance 00493 * @return 00494 * True if this application uses proxy. 00495 * False if this application does not uses proxy. 00496 **/ 00497 Boolean HS_HTTPLibIsUseProxy(UInt16 refnum, HS_HTTPLibHandle libH) 00498 SYS_TRAP(kHTTPLibTrapIsUseProxy); 00499 00500 /** 00501 * @brief This function returns whether this application permits HTTP/1.1 over proxy. 00502 * 00503 * @param refnum: IN: Library reference number 00504 * @param libH: IN: The handle of HTTP library instance 00505 * @return 00506 * True if this application permits HTTP/1.1 over proxy. 00507 * False if this application does not permit HTTP/1.1 over proxy. 00508 **/ 00509 Boolean HS_HTTPLibIsHTTP11OverProxy(UInt16 refnum, HS_HTTPLibHandle libH) 00510 SYS_TRAP(kHTTPLibTrapIsHTTP11OverProxy); 00511 00512 /** 00513 * @brief 00514 * 00515 * @param refnum: IN: 00516 * @param libH: IN: 00517 * @retval Err error code. 00518 **/ 00519 Boolean HS_HTTPLibIsSendReferer(UInt16 refnum, HS_HTTPLibHandle libH) 00520 SYS_TRAP(kHTTPLibTrapIsSendReferer); 00521 00522 /** 00523 * @brief This function returns whether this application sends Cookie. 00524 * 00525 * @param refnum: IN: Library reference number 00526 * @param libH: IN: The handle of HTTP library instance 00527 * @return 00528 * True if this application sends Cookie. 00529 * False if this application does not send Cookie. 00530 **/ 00531 Boolean HS_HTTPLibIsSendCookie(UInt16 refnum, HS_HTTPLibHandle libH) 00532 SYS_TRAP(kHTTPLibTrapIsSendCookie); 00533 /** 00534 * @brief This function creates a new stream and returns the handle of stream instance. At 00535 * this time, TCP/SSL socket is not opened. 00536 * 00537 * @param refnum: IN: Library reference number 00538 * @param libH: IN: The handle of HTTP library instance 00539 * @return 00540 * non NULL if successful. 00541 * NULL if failed (the main reason is memory shortage). 00542 **/ 00543 HS_HTTPLibStream HS_HTTPLibStreamNew(UInt16 refnum, HS_HTTPLibHandle libH) 00544 SYS_TRAP(kHTTPLibTrapStreamNew); 00545 00546 /** 00547 * @brief This function deletes the stream instance. If this function is called without calling 00548 * HS_HTTPLibStreamClose, this function closes the TCP/SSL socket by calling 00549 * HS_HTTPLibStreamClose, however if the socket is in keep-alive, it is not closed. 00550 * 00551 * @param refnum: IN: Library reference number 00552 * @param stream: IN: The handle of stream instance. 00553 * @return None. 00554 **/ 00555 void HS_HTTPLibStreamDelete(UInt16 refnum, HS_HTTPLibStream stream) 00556 SYS_TRAP(kHTTPLibTrapStreamDelete); 00557 00558 /** 00559 * @brief This function creates a request. If using proxy and SSL connection, CONNECT 00560 * request message is made. If there are cached authenticate informations, add 00561 * authenticate header. Add default headers and in_header to Request-Header. 00562 * 00563 * @param refnum: IN: Library reference number. 00564 * @param stream: IN: The handle of stream instance. 00565 * @param in_method: IN: The HTTP method 00566 * httpMethodGET GET 00567 * httpMethodPOST POST 00568 * @param *in_url: IN: The URL string. 00569 * @param in_url_len: IN: The length of in_url. 00570 * @param *in_header: IN: The header string to add the Request-Header. 00571 * Each line is terminated by <CR><LF>. 00572 * @param in_header_len: IN: The length of in_header. 00573 * @param *in_referer: IN: The referer string. 00574 * @param in_referer_len: IN: The length of in_referer. 00575 * @param in_version: IN: The version 00576 * httpVersion_0_9 HTTP/0.9 00577 * httpVersion_1_0 HTTP/1.0 00578 * httpVersion_1_1 HTTP/1.1 00579 * @param in_no_cache: IN: True if no-cache is added to the header 00580 * False if no-cache is not added to the header 00581 * @param in_pipeline: IN: True if doing pipeline 00582 * False if not doing pipeline 00583 * @param in_ssl_flag: IN: The flag sent to SSL instance. 00584 * httpSSLFlagConnV2 connect by v2 protocol 00585 * httpSSLFlagConnV3 connect by v3 protocol 00586 * httpSSLFlagConnTLS connect by TLS(v3.1) protocol 00587 * httpSSLFlagConnV2V3 autoselect within v2,v3 00588 * httpSSLFlagConnV2TLS autoselect within v2,tls 00589 * httpSSLFlagConnV3TLS autoselect within v3,tls 00590 * httpSSLFlagConnV2V3TLS autoselect within v2,v3,tls 00591 * @return 00592 * httpErrorOK succeed 00593 * httpErrorNoMem memory shortage 00594 * httpErrorReqHeaderSizeOver if Request header size is over the maximal 00595 * setting. If the Request-Line size is set to unlimited, httpErrorReqHeaderSizeOver 00596 * is not returned. 00597 **/ 00598 Int32 HS_HTTPLibStreamCreateRequest(UInt16 refnum, HS_HTTPLibStream stream, Int32 in_method, Char *in_url, UInt32 in_url_len,Char *in_header, UInt32 in_header_len,Char *in_referer, UInt32 in_referer_len, Int32 in_version, Boolean in_no_cache,Boolean in_pipeline, Int32 in_ssl_flag) 00599 SYS_TRAP(kHTTPLibTrapStreamCreateRequest); 00600 00601 /** 00602 * @brief This function creates request for chunk-encoding post. If using proxy and SSL 00603 * connection, CONNECT request message is made. If there are cached authenticate 00604 * informations, add authenticate header. Add default headers and in_header to 00605 * Request-Header. 00606 * Do not use this API unless you want to create chunk-encoding request. Transfer- 00607 * Encoding: chunked is added to the request header. 00608 * 00609 * @param refnum: IN: Library reference number. 00610 * @param stream: IN: The handle of stream instance. 00611 * @param in_method: IN: The HTTP method 00612 * httpMethodGET GET 00613 * httpMethodPOST POST 00614 * @param *in_url: IN: The URL string. 00615 * @param in_url_len: IN: The length of in_url. 00616 * @param *in_header: IN: The header string to add the Request-Header. 00617 * Each line is terminated by <CR><LF>. 00618 * @param in_header_len: IN: The length of in_header. 00619 * @param *in_referer: IN: The referer string. 00620 * @param in_referer_len: IN: The length of in_referer. 00621 * @param in_version: IN: The version 00622 * httpVersion_0_9 HTTP/0.9 00623 * httpVersion_1_0 HTTP/1.0 00624 * httpVersion_1_1 HTTP/1.1 00625 * @param in_no_cache: IN: True if no-cache is added to the header 00626 * False if no-cache is not added to the header 00627 * @param in_pipeline: IN: True if doing pipeline 00628 * False if not doing pipeline 00629 * @param in_ssl_flag: IN: The flag sent to SSL instance. 00630 * httpSSLFlagConnV2 connect by v2 protocol 00631 * httpSSLFlagConnV3 connect by v3 protocol 00632 * httpSSLFlagConnTLS connect by TLS(v3.1) protocol 00633 * httpSSLFlagConnV2V3 autoselect within v2,v3 00634 * httpSSLFlagConnV2TLS autoselect within v2,tls 00635 * httpSSLFlagConnV3TLS autoselect within v3,tls 00636 * httpSSLFlagConnV2V3TLS autoselect within v2,v3,tls 00637 * @return 00638 * httpErrorOK succeed 00639 * httpErrorNoMem memory shortage 00640 * httpErrorReqHeaderSizeOver if the Request header size is over the maximal 00641 * setting. If the Request-Line size is set to unlimited, httpErrorReqHeaderSizeOver 00642 * is not returned. 00643 **/ 00644 Int32 HS_HTTPLibStreamCreateRequestWithChunkEncoding(UInt16 refnum, HS_HTTPLibStream stream, Int32 in_method, Char *in_url, UInt32 in_url_len,Char *in_header, UInt32 in_header_len,Char *in_referer, UInt32 in_referer_len, Int32 in_version, Boolean in_no_cache,Boolean in_pipeline, Int32 in_ssl_flag) 00645 SYS_TRAP(kHTTPLibTrapStreamCreateRequestWithChunkEncoding); 00646 00647 /** 00648 * @brief This function sends the request. This call opens and connects a TCP connection if 00649 * not already established. It automatically retries at where pipeline stalled if pipeline 00650 * is enable. 00651 * 00652 * Because the data streaming could block and resume at where the pipeline was 00653 * stalled, the application can call this function in a loop until the sending is finished. 00654 * 00655 * @param refnum: IN: Library reference number. 00656 * @param stream: IN: The handle of stream instance. 00657 * @param *out_sleep: OUT: The time of the application can sleep (msec). 00658 * This value is not used for application. 00659 * @return 00660 * httpErrorOK sending done 00661 * httpErrorWouldBlock application can call this function consecutively 00662 * httpErrorIOSleep application can sleep 00663 * httpErrorNoMem memory shortage 00664 * httpErrorDNSInval DNS message invalid 00665 * httpErrorDNSNoServer DNS server is not found 00666 * httpErrorDNSTimedout Timeout at DNS resolve 00667 * httpErrorDNSNotFound DNS server can not find the name 00668 * httpErrorTCPOpen cannot open TCP 00669 * httpErrorTCPConnec cannot connect TCP 00670 * httpErrorTCPRead cannot read TCP 00671 * httpErrorTCPWrite cannot write TCP 00672 * httpErrorSSLConnect cannot Proxy Tunneling 00673 * httpErrorSSLHandShake cannot SSL handshake 00674 * httpErrorSSLRead cannot SSL read 00675 * httpErrorSSLWrite cannot SSL write 00676 * httpErrorReqTimedout request timeout 00677 * httpErrorRspTimedout response timeout at Proxy Tunneling (SSL only) 00678 **/ 00679 Int32 HS_HTTPLibStreamSendRequest(UInt16 refnum, HS_HTTPLibStream stream,Int32 *out_sleep) 00680 SYS_TRAP(kHTTPLibTrapStreamSendRequest); 00681 00682 /** 00683 * @brief This function sends the POST request. This call opens and connects a TCP 00684 * connection if not already established. It automatically retries at where pipeline 00685 * stalled if pipeline is enable. 00686 * 00687 * Because the data streaming could block and resume at where the pipeline was 00688 * stalled, the application can call this function in a loop until the sending is finished. 00689 * 00690 * @param refnum: IN: Library reference number. 00691 * @param stream: IN: The handle of stream instance. 00692 * @param *in_buf: IN: The pointer to POST data. 00693 * @param in_len: IN: The length of in_buf. 00694 * @param *out_len: OUT: The size of sending data at this time (byte). 00695 * @param *out_sleep: OUT: The time of the application can sleep (msec) 00696 * This value is not used for application. 00697 * @return 00698 * httpErrorOK sending done 00699 * httpErrorWouldBlock application can call this function consecutively 00700 * httpErrorIOSleep application can sleep 00701 * httpErrorNoMem memory shortage 00702 * httpErrorDNSInval DNS message invalid 00703 **/ 00704 Int32 HS_HTTPLibStreamSendRequestWithPostData(UInt16 refnum, HS_HTTPLibStream stream, Char *in_buf, Int32 in_len, Int32 *out_len, Int32 *out_sleep) 00705 SYS_TRAP(kHTTPLibTrapStreamSendRequestWithPostData); 00706 00707 /** 00708 * @brief This function sends chunk encoding data. This call opens and connects a TCP 00709 * connection if not already established. It automatically retries at where pipeline 00710 * stalled if pipeline is enable. 00711 * The sequence of chunked data sending is 00712 * 1. call HS_HTTPLibStreamCreateRequestWithChunkEncoding() 00713 * 2. call HS_HTTPLibStreamSendRequestWithChunkEncoding() while return 00714 * value is not httpErrorOK or error. 00715 * 3. If there remains data, goto 2. 00716 * 4. end 00717 * If only one chunked data is sent, this API returns httpErrorOK. 00718 * The address of data for one chunk is in_buf + in_offset, this value should not be 00719 * changed while sending only one chunked data. 00720 * isFinish is used to indicate the chunked data is the last chunk. 00721 * 00722 * @param refnum: IN: Library reference number 00723 * @param stream: IN: The handle of stream instance. 00724 * @param *in_buf: IN: The pointer to POST data. 00725 * @param in_offset: IN: The offset to POST data. 00726 * @param in_len: IN: The length of in_buf. 00727 * @param isFinish: IN: True if the send data is the last chunk. 00728 * False if send data is not the last chunk. 00729 * @param *out_len: OUT: The size of sending data at this time (byte). 00730 * @param *out_sleep: OUT: The time of the application can sleep (msec) 00731 * This value is not used for application. 00732 * @return 00733 * httpErrorOK sending done 00734 * httpErrorWouldBlock application can call this function consecutively 00735 * httpErrorIOSleep application can sleep 00736 * httpErrorNoMem memory shortage 00737 * httpErrorDNSInval DNS message invalid 00738 * httpErrorDNSNoServer DNS server is not found 00739 * httpErrorDNSTimedout Timeout at DNS resolve 00740 * httpErrorDNSNotFound DNS server can not find the name 00741 * httpErrorTCPOpen cannot open TCP 00742 * httpErrorTCPConnec cannot connect TCP 00743 * httpErrorTCPRead cannot read TCP 00744 * httpErrorTCPWrite cannot write TCP 00745 * httpErrorSSLConnect cannot Proxy Tunneling 00746 * httpErrorSSLHandShake cannot SSL handshake 00747 * httpErrorSSLRead cannot read SSL 00748 * httpErrorSSLWrite cannot write SSL 00749 * httpErrorReqTimedout request timeout 00750 * httpErrorRspTimedout response timeout at Proxy Tunneling (SSL only) 00751 **/ 00752 Int32 HS_HTTPLibStreamSendRequestWithChunkEncoding(UInt16 refnum, HS_HTTPLibStream stream, Char *in_buf, Int32 in_offset, Int32 in_len, Boolean isFinish, Int32 *out_len, Int32 *out_sleep) 00753 SYS_TRAP(kHTTPLibTrapStreamSendRequestWithChunkEncoding); 00754 00755 /** 00756 * @brief This function receives response. It automatically retries at where pipeline stalled if 00757 * pipeline is enable. 00758 * 00759 * Because the data streaming could block and resume at where the pipeline was 00760 * stalled, the application can call this function in a loop until the receiving is finished. 00761 * 00762 * @param refnum: IN: Library reference number. 00763 * @param stream: IN: The handle of stream instance. 00764 * @param *out_buf: OUT: The pointer to the receive buffer. 00765 * @param in_len: IN: The size of the receive buffer (byte). 00766 * @param *out_len: OUT: The received size (byte). 00767 * @param *out_sleep: OUT: The time of the application can sleep (msec) 00768 * This value is not used for application. 00769 * @return 00770 * httpErrorOK receiving done 00771 * httpErrorWouldBlock application can call this function 00772 * consecutively 00773 * httpErrorIOSleep application can sleep 00774 * httpErrorNoMem memory shortage 00775 * httpErrorTCPRead cannot read TCP 00776 * httpErrorTCPWrite cannot write TCP 00777 * httpErrorSSLHandShake cannot SSL handshake 00778 * httpErrorSSLRead cannot read SSL 00779 * httpErrorSSLWrite cannot write SSL 00780 * httpErrorReqTimedout request timeout 00781 * httpErrorRspTimedout response timeout 00782 * httpErrorAuthUnknown unknown authentication type 00783 * httpErrorAuthNoHeader authentication request without 00784 * authentication header 00785 * httpErrorAuthFormat wrong format of authentication header 00786 * httpErrorRedirectFormat wrong format of redirect header 00787 * httpErrorRedirectCanceled redirect is canceled by user 00788 * httpErrorRspHeaderSizeOver size over of response header 00789 * httpErrorReqTooManyContinue it exceeds the limit times of Continue 00790 **/ 00791 Int32 HS_HTTPLibStreamReceiveResponse(UInt16 refnum, HS_HTTPLibStream stream, Char *out_buf, Int32 in_len, Int32 *out_len, Int32 *out_sleep) 00792 SYS_TRAP(kHTTPLibTrapStreamReceiveResponse); 00793 00794 /** 00795 * @brief 00796 * 00797 * @param refnum: IN: 00798 * @param stream: IN: 00799 * @retval Err error code. 00800 **/ 00801 Int32 HS_HTTPLibStreamGetFlag(UInt16 refnum, HS_HTTPLibStream stream) 00802 SYS_TRAP(kHTTPLibTrapStreamGetFlag); 00803 00804 /** 00805 * @brief 00806 * 00807 * @param refnum: IN: 00808 * @param stream: IN: 00809 * @retval Err error code. 00810 **/ 00811 void HS_HTTPLibStreamSuspendTimer(UInt16 refnum, HS_HTTPLibStream stream) 00812 SYS_TRAP(kHTTPLibTrapStreamSuspendTimer); 00813 /** 00814 * @brief 00815 * 00816 * @param refnum: IN: 00817 * @param stream: IN: 00818 * @retval Err error code. 00819 **/ 00820 void HS_HTTPLibStreamResumeTimer(UInt16 refnum, HS_HTTPLibStream stream) 00821 SYS_TRAP(kHTTPLibTrapStreamResumeTimer); 00822 00823 /** 00824 * @brief This function closes the HTTP stream. If the TCP/SSL socket is in keep-alive, it is 00825 * not closed. 00826 * 00827 * @param refnum: IN: Library reference number 00828 * @param stream: IN: The handle of stream instance. 00829 * @return None. 00830 **/ 00831 void HS_HTTPLibStreamClose(UInt16 refnum, HS_HTTPLibStream stream) 00832 SYS_TRAP(kHTTPLibTrapStreamClose); 00833 00834 /** 00835 * @brief This function returns whether the response header is completely received. 00836 * 00837 * This function is typically called after HS_HTTPLibStreamReceiveResponse when 00838 * receiving the response header. 00839 * 00840 * @param refnum: IN: Library reference number. 00841 * @param stream: IN: The handle of stream instance. 00842 * @return 00843 * True if header is completely received. 00844 * False if header is not received. 00845 **/ 00846 Boolean HS_HTTPLibStreamIsHeaderReceived(UInt16 refnum, HS_HTTPLibStream stream) 00847 SYS_TRAP(kHTTPLibTrapStreamIsHeaderReceived); 00848 00849 /** 00850 * @brief This function sets the POST data. 00851 * 00852 * @param refnum: IN: Library reference number. 00853 * @param stream: IN: The handle of stream instance. 00854 * @param in_encoding: IN: The type of encoding. 00855 * httpPostURLENCODED URL encoding 00856 * httpPostPLAINTEXT plain text (non encoding) 00857 * httpPostMULTIPART multi-part encoding 00858 * @param *in_data: IN: The pointer to the POST data. 00859 * @param in_len: IN: The length of in_data. 00860 * @return 00861 * httpErrorOK setting done 00862 * httpErrorNoMem memory shortage 00863 * httpErrorReqBodySizeOver the size of request body exceeds limit. If the 00864 * application does not set the limit by 00865 * HS_HTTPLibSetMaxRequestBody, 00866 * httpErrorReqBodySizeOver is not returned. 00867 **/ 00868 Int32 HS_HTTPLibStreamSetPostData(UInt16 refnum, HS_HTTPLibStream stream, Int32 in_encoding, Char *in_data, Int32 in_len) 00869 SYS_TRAP(kHTTPLibTrapStreamSetPostData); 00870 00871 /** 00872 * @brief This function returns the scheme given at the HS_HTTPLibStreamCreateRequest. 00873 * 00874 * @param refnum: IN: Library reference number. 00875 * @param stream: IN: The handle of stream instance. 00876 * @return 00877 * httpSchemeHTTP HTTP 00878 * httpSchemeHTTPS HTTPS 00879 **/ 00880 Int32 HS_HTTPLibStreamGetScheme(UInt16 refnum, HS_HTTPLibStream stream) 00881 SYS_TRAP(kHTTPLibTrapStreamGetScheme); 00882 00883 /** 00884 * @brief This function returns the state of the stream. The state changes follow the below 00885 * sequence (but skipping the states that are not relevant to the current request). 00886 * 00887 * @param refnum: IN: Library reference number. 00888 * @param stream: IN: The handle of stream instance. 00889 * @return 00890 * httpStreamStateNew The instance is created 00891 * httpStreamStateDormant The instance is dormant 00892 * httpStreamStateReqCreated The request is created 00893 * httpStreamStateReqResolve Name resolve begins 00894 * httpStreamStateReqResolving Name resolving 00895 * httpStreamStateReqOpen TCP/SSL open 00896 * httpStreamStateReqConnect TCP connect begins 00897 * httpStreamStateReqConnecting TCP connecting 00898 * httpStreamStateReqProxyConnect Proxy Tunneling begins 00899 * httpStreamStateReqProxyConnecting Proxy Tunneling 00900 * httpStreamStateReqSSLHandShaking SSL HandShaking 00901 * httpStreamStateReqSSLHandShaked SSL handShake done 00902 * httpStreamStateReqSending Sending the request 00903 * httpStreamStateReqSent Sending the request done 00904 * httpStreamStateRspHeaderWaiting Waiting the response header 00905 * httpStreamStateRspContinue Waiting response receiving done for 00906 * Status-Code 100 00907 * httpStreamStateRspHeaderReceiving Receiving the response header 00908 * httpStreamStateRspHeaderReceived Receiving the response header done 00909 * httpStreamStateRspEntityReceiving Receiving the response body 00910 **/ 00911 Int32 HS_HTTPLibStreamGetState(UInt16 refnum, HS_HTTPLibStream stream) 00912 SYS_TRAP(kHTTPLibTrapStreamGetState); 00913 00914 /** 00915 * @brief This function returns the Status Code. 00916 * 00917 * @param refnum: IN: Library reference number. 00918 * @param stream: IN: The handle of stream instance. 00919 * @return 00920 * httpStatusCodeContinue 100 00921 * httpStatusCodeSwitchingProtocols 101 00922 * httpStatusCodeOK 200 00923 * httpStatusCodeCreated 201 00924 * httpStatusCodeAccepted 202 00925 * httpStatusCodeNonAuthoritativeInformation 203 00926 * httpStatusCodeNoContent 204 00927 * httpStatusCodeResetContent 205 00928 * httpStatusCodePartialContent 206 00929 * httpStatusCodeMultipleChoices 300 00930 * httpStatusCodeMovedPermanently 301 00931 * httpStatusCodeFound 302 00932 * httpStatusCodeSeeOther 303 00933 * httpStatusCodeNotModified 304 00934 * httpStatusCodeUseProxy 305 00935 * httpStatusCodeTemporaryRedirect 307 00936 * httpStatusCodeBadRequest 400 00937 **/ 00938 Int32 HS_HTTPLibStreamGetStatusCode(UInt16 refnum, HS_HTTPLibStream stream) 00939 SYS_TRAP(kHTTPLibTrapStreamGetStatusCode); 00940 00941 /** 00942 * @brief This function returns the size of the response header. 00943 * 00944 * @param refnum: IN: Library reference number. 00945 * @param stream: IN: The handle of stream instance. 00946 * @return 00947 * header size (byte) 00948 * -1 if not received 00949 **/ 00950 Int32 HS_HTTPLibStreamGetResponseHeaderLength(UInt16 refnum, HS_HTTPLibStream stream) 00951 SYS_TRAP(kHTTPLibTrapStreamGetResponseHeaderLength); 00952 00953 /** 00954 * @brief This function returns the handle of the response header. The responsibility to 00955 * delete the handle is library, the application can not delete this return value. 00956 * To lock/unlock the handle, the application should use the APIs, 00957 * 00958 * @param refnum: IN: Library reference number. 00959 * @param stream: IN: The handle of stream instance. 00960 * @return 00961 * non NULL the handle of header 00962 * NULL if not received 00963 **/ 00964 HS_HTTPLibVHandle HS_HTTPLibStreamGetResponseHeader(UInt16 refnum, HS_HTTPLibStream stream) 00965 SYS_TRAP(kHTTPLibTrapStreamGetResponseHeader); 00966 00967 /** 00968 * @brief This function returns the content’s size (byte). 00969 * 00970 * @param refnum: IN: Library reference number. 00971 * @param stream: IN: The handle of stream instance. 00972 * @return 00973 * The Content-Length (byte) 00974 * -1 if not received 00975 **/ 00976 Int32 HS_HTTPLibStreamGetContentLength(UInt16 refnum, HS_HTTPLibStream stream) 00977 SYS_TRAP(kHTTPLibTrapStreamGetContentLength); 00978 00979 /** 00980 * @brief This function returns the size of response body (byte). 00981 * 00982 * @param refnum: IN: Library reference number. 00983 * @param stream: IN: The handle of stream instance. 00984 * @return 00985 * The size of response body (byte) 00986 * -1 if not received 00987 **/ 00988 Int32 HS_HTTPLibStreamGetEntityLength(UInt16 refnum, HS_HTTPLibStream stream) 00989 SYS_TRAP(kHTTPLibTrapStreamGetEntityLength); 00990 00991 /** 00992 * @brief This function adds the line to the Request header. If there is already the same kind 00993 * of header line, old one is deleted. 00994 * 00995 * @param refnum: IN: Library reference number. 00996 * @param stream: IN: The handle of stream instance. 00997 * @param *in_str: IN: The pointer to the header strong to add. 00998 * @param in_len: IN: The length of in_str. 00999 * @return 01000 * True if successful. 01001 * False failed (memory shortage) 01002 **/ 01003 Boolean HS_HTTPLibStreamAddHeaderLine(UInt16 refnum, HS_HTTPLibStream stream, Char *in_str, Int32 in_len) 01004 SYS_TRAP(kHTTPLibTrapStreamAddHeaderLine); 01005 01006 /** 01007 * @brief This function sets the value of corresponding header. If there is already the same 01008 * kind of header line, old one is deleted. 01009 * 01010 * @param refnum: IN: Library reference number. 01011 * @param stream: IN: The handle of stream instance. 01012 * @param in_type: IN: The type of header (See httpHeaderIDEnum). 01013 * @param *in_str: IN: The pointer to the header value string. 01014 * @param in_len: IN: The length of in_str. 01015 * @return 01016 * True if successful 01017 * False failed (memory shortage) 01018 **/ 01019 Boolean HS_HTTPLibStreamAddHeader(UInt16 refnum, HS_HTTPLibStream stream, Int32 in_type, Char *in_str, Int32 in_len) 01020 SYS_TRAP(kHTTPLibTrapStreamAddHeader); 01021 01022 /** 01023 * @brief This function returns the offset and length of corresponding header value. 01024 * 01025 * @param refnum: IN: Library reference number. 01026 * @param stream: IN: The handle of stream instance. 01027 * @param in_type: IN: The type of header (See httpHeaderIDEnum). 01028 * @param *out_off: IN: The offset to the header value. 01029 * @param *out_len: IN: The length of corresponding header value. 01030 * @return 01031 * True if successful 01032 * False there is no corresponding header 01033 **/ 01034 Boolean HS_HTTPLibStreamGetHeader(UInt16 refnum, HS_HTTPLibStream stream, Int32 in_type, Int32 *out_off, Int32 *out_len) 01035 SYS_TRAP(kHTTPLibTrapStreamGetHeader); 01036 01037 /** 01038 * @brief This function returns the Server certification used for SSL. The responsibility to 01039 * delete the return handle is the application. To delete the return value, the 01040 * application should use HS_HTTPLibCertListDelete. 01041 * 01042 * @param refnum: IN: Library reference number. 01043 * @param stream: IN: The handle of stream instance. 01044 * @return 01045 * The handle of SSL server certification chain. 01046 * NULL if no server certification or memory shortage. 01047 **/ 01048 HS_HTTPLibCertList HS_HTTPLibMakeCertList(UInt16 refnum, HS_HTTPLibStream stream) 01049 SYS_TRAP(kHTTPLibTrapMakeCertList); 01050 01051 /** 01052 * @brief 01053 * 01054 * @param refnum: IN: 01055 * @param *inout_ss: IN: 01056 * @param in_id: IN: 01057 * @param *in_cs: IN: 01058 * @retval Err error code. 01059 **/ 01060 Boolean HS_HTTPLibHeaderSplitByX(UInt16 refnum, HS_HTTPLibSplit *inout_ss, Int32 in_id, Char *in_cs) 01061 SYS_TRAP(kHTTPLibTrapHeaderSplitByX); 01062 01063 /** 01064 * @brief This function initialize/finalize the HS_HTTPLibAuthInfo struct. The application 01065 * should call this function setting in_new = true before using HS_HTTPLibAuthInfo. 01066 * The application should call this function setting in_new = false after using 01067 * HS_HTTPLibAuthInfo. 01068 * 01069 * @param refnum: IN: Library reference number. 01070 * @param *in_info: IN: The pointer to the authenticate information struct. 01071 * @param in_new: IN: True if initialize the member. 01072 * False if initialize the member after deleting. 01073 * @return None. 01074 **/ 01075 void HS_HTTPLibAuthInfoTidy(UInt16 refnum, HS_HTTPLibAuthInfo *in_info, Boolean in_new) 01076 SYS_TRAP(kHTTPLibTrapAuthInfoTidy); 01077 01078 /** 01079 * @brief This function sets the authentication information. 01080 * 01081 * @param refnum: IN: Library reference number. 01082 * @param libH: IN: The handle of HTTP library instance. 01083 * @param in_type: IN: The authentication type. 01084 * httpAuthTypeBasic Basic authentication 01085 * httpAuthTypeDigest Digest Authentication 01086 * @param in_target: IN: The authentication target. 01087 * httpAuthTargetPage Authentication Information for Page 01088 * httpAuthTargetProxy Authentication Information for Proxy 01089 * @param *in_challenge: IN: The challenge. 01090 * @param *in_realm: IN: The realm. 01091 * @param *in_user: IN: The pointer to the User ID. 01092 * @param in_user_len: IN: The length of in_user. 01093 * @param *in_pass: IN: The pointer to the Password. 01094 * @param in_pass_len: IN: The length of in_pass. 01095 * @param *in_url: IN: The pointer to the URL (httpAuthTargetPage only). 01096 * @param in_url_len: IN: The length of in_url. 01097 * @param *in_host: IN: The pointer to the proxy host name (httpAuthTargetProxy only). 01098 * @param in_host_len: IN: The length of in_host. 01099 * @param in_port: IN: The port of proxy (httpAuthTargetProxy only). 01100 * @return 01101 * True if setting successful. 01102 * False if failed (memory shortage). 01103 **/ 01104 Boolean HS_HTTPLibSetUserPass(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_type, Int32 in_target, HS_HTTPLibSplit *in_challenge, HS_HTTPLibSplit *in_realm, Char *in_user, Int32 in_user_len, Char *in_pass, Int32 in_pass_len, Char *in_url, Int32 in_url_len, Char *in_host, Int32 in_host_len, Int32 in_port) 01105 SYS_TRAP(kHTTPLibTrapSetUserPass); 01106 01107 /** 01108 * @brief 01109 * 01110 * @param refnum: IN: 01111 * @param libH: IN: 01112 * @param in_target: IN: 01113 * @param *in_url: IN: 01114 * @param in_url_len: IN: 01115 * @param *in_host: IN: 01116 * @param in_host_len: IN: 01117 * @param in_port: IN: 01118 * @param *in_realm: IN: 01119 * @param *out_info: IN: 01120 * @retval Err error code. 01121 **/ 01122 Boolean HS_HTTPLibFindAuthInfo(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_target, Char *in_url, Int32 in_url_len, Char *in_host, Int32 in_host_len, Int32 in_port, HS_HTTPLibSplit *in_realm, HS_HTTPLibAuthInfo *out_info) 01123 SYS_TRAP(kHTTPLibTrapFindAuthInfo); 01124 01125 /** 01126 * @brief This function returns the authentication information to the out_info. Before calling 01127 * this API, the application should intialize HS_HTTPLibAuthInfo by 01128 * HS_HTTPLibAuthInfoTidy(out_info, true). 01129 * 01130 * After using the authentication information, the application should finalize 01131 * HS_HTTPLibAuthInfoTidy by HS_HTTPLibAuthInfoTidy(out_info, false). 01132 * 01133 * @param refnum: IN: Library reference number. 01134 * @param libH: IN: The handle of HTTP library instance. 01135 * @param in_target: IN: The authentication target. 01136 * httpAuthTargetPage Authentication Information for Page 01137 * httpAuthTargetProxy Authentication Information for Proxy 01138 * @param *in_url: IN: The pointer to the URL (httpAuthTargetPage only). 01139 * @param in_url_len: IN: The length of in_url. 01140 * @param *in_host: IN: The pointer to the proxy host name (httpAuthTargetProxy only). 01141 * @param in_host_len: IN: The length of in_host. 01142 * @param in_port: IN: The port of proxy (httpAuthTargetProxy only). 01143 * @param *in_realm: IN: The realm. 01144 * @param *out_info: OUT: The pointer to the authentication information. 01145 * @return 01146 * True if setting successful. 01147 * False if failed (no information in cache or memory shortage). 01148 **/ 01149 Boolean HS_HTTPLibMakeAuthInfo(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_target, Char *in_url, Int32 in_url_len, Char *in_host, Int32 in_host_len, Int32 in_port, HS_HTTPLibSplit *in_realm, HS_HTTPLibAuthInfo *out_info) 01150 SYS_TRAP(kHTTPLibTrapMakeAuthInfo); 01151 01152 /** 01153 * @brief This function returns the User Name. The application should not delete this return value. 01154 * 01155 * @param refnum: IN: Library reference number. 01156 * @param *in_info: IN: The pointer to the authentication information. 01157 * @return The handle of User Name. 01158 **/ 01159 HS_HTTPLibString HS_HTTPLibAuthInfoUser(UInt16 refnum, HS_HTTPLibAuthInfo *in_info) 01160 SYS_TRAP(kHTTPLibTrapAuthInfoUser); 01161 01162 /** 01163 * @brief This function returns the Password. The application should not delete this return value. 01164 * 01165 * @param refnum: IN: Library reference number. 01166 * @param *in_info: IN: The pointer to the authentication information. 01167 * @return The handle of password. 01168 **/ 01169 HS_HTTPLibString HS_HTTPLibAuthInfoPass(UInt16 refnum, HS_HTTPLibAuthInfo *in_info) 01170 SYS_TRAP(kHTTPLibTrapAuthInfoPass); 01171 01172 /** 01173 * @brief This function returns the Realm. The application should not delete this return value. 01174 * 01175 * @param refnum: IN: Library reference number. 01176 * @param *in_info: IN: The pointer to the authentication information. 01177 * @return 01178 * The handle of Realm. 01179 **/ 01180 HS_HTTPLibString HS_HTTPLibAuthInfoRealm(UInt16 refnum, HS_HTTPLibAuthInfo *in_info) 01181 SYS_TRAP(kHTTPLibTrapAuthInfoRealm); 01182 01183 /** 01184 * @brief 01185 * 01186 * @param refnum: IN: 01187 * @param *in_challenge_ss: IN: 01188 * @param *in_token: IN: 01189 * @param *out_ss: IN: 01190 * @retval Err error code. 01191 **/ 01192 Boolean HS_HTTPLibAuthCacheGetChallengeTokenSS(UInt16 refnum, HS_HTTPLibSplit *in_challenge_ss, Char *in_token, HS_HTTPLibSplit *out_ss) 01193 SYS_TRAP(kHTTPLibTrapAuthCacheGetChallengeTokenSS); 01194 01195 /** 01196 * @brief This function sets the Cookie mode. 01197 * 01198 * @param refnum: IN: Library reference number. 01199 * @param libH: IN: The handle of HTTP library instance. 01200 * @param in_mode: IN: The mode of receiving Cookie. 01201 * httpCookieNotifyBeforeSet Confirm before Cookie set 01202 * httpCookieAlwaysSet Cookie is always set 01203 * httpCookieNeverSet Cookie is not set 01204 * @param in_cb: IN: The confirm callback function. 01205 * @param in_opaque:: IN: The opaque which is given to the callback function. 01206 * @return None. 01207 **/ 01208 void HS_HTTPLibSetCookieMode(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_mode, HS_HTTPLibCookieConfirmProc in_cb, HS_HTTPLibOpaque in_opaque) 01209 SYS_TRAP(kHTTPLibTrapSetCookieMode); 01210 01211 /** 01212 * @brief This function sets the max size of Cookie entries. 01213 * 01214 * @param refnum: IN: Library reference number. 01215 * @param libH: IN: The handle of HTTP library instance. 01216 * @param in_max_total_cookies: IN: The size of max Cookie entries. 01217 * @param in_max_cookies_per_domain: IN: The size of Cookie entries per one domain. 01218 * @param in_max_len_per_cookie: IN: The max size of one Cookie. 01219 * @return None. 01220 **/ 01221 void HS_HTTPLibSetCookieMax(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_max_total_cookies, Int32 in_max_cookies_per_domain, Int32 in_max_len_per_cookie) 01222 SYS_TRAP(kHTTPLibTrapSetCookieMax); 01223 01224 /** 01225 * @brief This function sets the Cookie abiding with the confirmation mode set by 01226 * HS_HTTPLibSetCookieMode. The application should not use this API in callback 01227 * function. The API HS_HTTPLibSetCookieX is designed for use in callback. 01228 * 01229 * @param refnum: IN: Library reference number. 01230 * @param libH: IN: The handle of HTTP library instance. 01231 * @param in_url: IN: The handle of URL. 01232 * @param *in_header: IN: The pointer to the header string. 01233 * @param in_header_len: IN: The length of in_header. 01234 * @return 01235 * httpErrorOK Cookie is set. 01236 * httpErrorNoMem memory shortage 01237 * httpErrorInval failed by other reason 01238 **/ 01239 Int32 HS_HTTPLibSetCookie(UInt16 refnum, HS_HTTPLibHandle libH, HS_HTTPLibURLString in_url, Char *in_header, Int32 in_header_len) 01240 SYS_TRAP(kHTTPLibTrapSetCookie); 01241 01242 /** 01243 * @brief This function sets the Cookie. This function is designed for callback confirm function. 01244 * 01245 * @param refnum: IN: Library reference number. 01246 * @param libH: IN: The handle of HTTP library instance. 01247 * @param in_url: IN: The handle of URL. 01248 * @param *in_header: IN: The pointer to the header string. 01249 * @param in_header_len: IN: The length of in_header. 01250 * @return 01251 * httpErrorOK Cookie is set. 01252 * httpErrorNoMem memory shortage 01253 * httpErrorInval failed by other reason 01254 **/ 01255 Int32 HS_HTTPLibSetCookieX(UInt16 refnum, HS_HTTPLibHandle libH, HS_HTTPLibURLString in_url, Char *in_header, Int32 in_header_len) 01256 SYS_TRAP(kHTTPLibTrapSetCookieX); 01257 01258 /** 01259 * @brief 01260 * 01261 * @param refnum: IN: 01262 * @param libH: IN: 01263 * @param *in_url: IN: 01264 * @param in_urllen: IN: 01265 * @param in_secure: IN: 01266 * @param *out_len: IN: 01267 * @retval Err error code. 01268 **/ 01269 HS_HTTPLibString HS_HTTPLibMakeCookiesString(UInt16 refnum, HS_HTTPLibHandle libH, Char *in_url, Int32 in_urllen, Boolean in_secure, Int32 *out_len) 01270 SYS_TRAP(kHTTPLibTrapMakeCookiesString); 01271 01272 /** 01273 * @brief 01274 * 01275 * @param refnum: IN: 01276 * @param libH: IN: 01277 * @param *out_len: IN: 01278 * @retval Err error code. 01279 **/ 01280 HS_HTTPLibString HS_HTTPLibSaveCookiesEntries(UInt16 refnum, HS_HTTPLibHandle libH, Int32 *out_len) 01281 SYS_TRAP(kHTTPLibTrapSaveCookiesEntries); 01282 01283 /** 01284 * @brief 01285 * 01286 * @param refnum: IN: 01287 * @param libH: IN: 01288 * @param *in_s: IN: 01289 * @param in_slen: IN: 01290 * @retval Err error code. 01291 **/ 01292 Boolean HS_HTTPLibLoadCookiesEntries(UInt16 refnum, HS_HTTPLibHandle libH, Char *in_s, Int32 in_slen) 01293 SYS_TRAP(kHTTPLibTrapLoadCookiesEntries); 01294 01295 /** 01296 * @brief This function clears Cookies. 01297 * 01298 * @param refnum: IN: Library reference number. 01299 * @param libH: IN: The handle of HTTP library instance. 01300 * @param in_flag: IN: httpCookieClearAll clear all Cookies 01301 * httpCookieClearSessionCookiesOnly clear session Cookies only 01302 * @return None. 01303 **/ 01304 void HS_HTTPLibCookieMakeEmpty(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_flag) 01305 SYS_TRAP(kHTTPLibTrapCookieMakeEmpty); 01306 01307 /** 01308 * @brief 01309 * 01310 * @param refnum: IN: 01311 * @param libH: IN: 01312 * @param in_retry: IN: 01313 * @retval Err error code. 01314 **/ 01315 void HS_HTTPLibSetDNSMaxRetry(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_retry) 01316 SYS_TRAP(kHTTPLibTrapSetDNSMaxRetry); 01317 01318 /** 01319 * @brief 01320 * 01321 * @param refnum: IN: 01322 * @param libH: IN: 01323 * @param in_interval: IN: 01324 * @retval Err error code. 01325 **/ 01326 void HS_HTTPLibSetDNSRetryInterval(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_interval) 01327 SYS_TRAP(kHTTPLibTrapSetDNSRetryInterval); 01328 01329 /** 01330 * @brief Set the SSL version. 01331 * 01332 * @param refnum: IN: Library reference number. 01333 * @param libH: IN: The handle of HTTP library instance. 01334 * @param in_flag: IN: - 01335 * @param in_on: IN: - 01336 * @return None. 01337 **/ 01338 void HS_HTTPLibSetSSLVersionFlag(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_flag, Boolean in_on) 01339 SYS_TRAP(kHTTPLibTrapSetSSLVersionFlag); 01340 01341 /** 01342 * @brief Set the timeout period for SSL use. 01343 * 01344 * @param refnum: IN: Library reference number. 01345 * @param libH: IN: The handle of HTTP library instance. 01346 * @return Timeout. 01347 **/ 01348 Int32 HS_HTTPLibSSLTimeout(UInt16 refnum, HS_HTTPLibHandle libH) 01349 SYS_TRAP(kHTTPLibTrapSSLTimeout); 01350 01351 /** 01352 * @brief TBD 01353 * 01354 * @param refnum: IN: Library reference number. 01355 * @param libH: IN: The handle of HTTP library instance. 01356 * @param *out_list: OUT: - 01357 * @retval Int32 01358 **/ 01359 Int32 HS_HTTPLibSSLOpenCertDB(UInt16 refnum, HS_HTTPLibHandle libH, HS_HTTPLibCertList *out_list) 01360 SYS_TRAP(kHTTPLibTrapSSLOpenCertDB); 01361 01362 /** 01363 * @brief TBD 01364 * 01365 * @param refnum: IN: Library reference number. 01366 * @param libH: IN: The handle of HTTP library instance. 01367 * @return None. 01368 **/ 01369 void HS_HTTPLibSSLCloseCertDB(UInt16 refnum, HS_HTTPLibHandle libH) 01370 SYS_TRAP(kHTTPLibTrapSSLCloseCertDB); 01371 01372 /** 01373 * @brief 01374 * 01375 * @param refnum: IN: 01376 * @param in_type: IN: 01377 * @return 01378 **/ 01379 HS_HTTPLibCertList HS_HTTPLibCertListNew(UInt16 refnum, Int32 in_type) 01380 SYS_TRAP(kHTTPLibTrapCertListNew); 01381 01382 /** 01383 * @brief TBD 01384 * 01385 * @param refnum: IN: Library reference number. 01386 * @param in_list: IN: The handle of the server’s certification list. 01387 * @return None. 01388 **/ 01389 void HS_HTTPLibCertListDelete(UInt16 refnum, HS_HTTPLibCertList in_list) 01390 SYS_TRAP(kHTTPLibTrapCertListDelete); 01391 01392 /** 01393 * @brief TBD 01394 * 01395 * @param refnum: IN: Library reference number. 01396 * @param in_list: IN: The handle of the server’s certification list. 01397 * @return Handle to the clone of the certification list. 01398 **/ 01399 HS_HTTPLibCertList HS_HTTPLibCertListClone(UInt16 refnum, HS_HTTPLibCertList in_list) 01400 SYS_TRAP(kHTTPLibTrapCertListClone); 01401 01402 /** 01403 * @brief Lock the certificate list and return its pointer. 01404 * 01405 * @param refnum: IN: Library reference number. 01406 * @param in_list: IN: The handle of the server's certification list. 01407 * @return Pointer to the certificate list. 01408 **/ 01409 void *HS_HTTPLibCertListLock(UInt16 refnum, HS_HTTPLibCertList in_list) 01410 SYS_TRAP(kHTTPLibTrapCertListLock); 01411 01412 /** 01413 * @brief Unlock the certificate list 01414 * 01415 * @param refnum: IN: Library reference number. 01416 * @param in_list: IN: The handle of the server’s certification list. 01417 * @return None. 01418 **/ 01419 void HS_HTTPLibCertListUnlock(UInt16 refnum, HS_HTTPLibCertList in_list) 01420 SYS_TRAP(kHTTPLibTrapCertListUnlock); 01421 01422 /** 01423 * @brief TBD 01424 * 01425 * @param refnum: IN: Library reference number. 01426 * @param in_list: IN: The handle of the server’s certification list. 01427 * @retval Int32 01428 **/ 01429 Int32 HS_HTTPLibCertListType(UInt16 refnum, HS_HTTPLibCertList in_list) 01430 SYS_TRAP(kHTTPLibTrapCertListType); 01431 01432 /** 01433 * @brief TBD 01434 * 01435 * @param refnum: IN: Library reference number. 01436 * @param in_list: IN: The handle of the server’s certification list. 01437 * @retval Int32 01438 **/ 01439 Int32 HS_HTTPLibCertListLength(UInt16 refnum, HS_HTTPLibCertList in_list) 01440 SYS_TRAP(kHTTPLibTrapCertListLength); 01441 01442 /** 01443 * @brief TBD 01444 * 01445 * @param refnum: IN: Library reference number. 01446 * @param in_list: IN: The handle of the server’s certification list. 01447 * @param in_index: IN: - 01448 * @param *out_cert: OUT: - 01449 * @retval Int32 01450 **/ 01451 Int32 HS_HTTPLibCertListBeginDecode(UInt16 refnum, HS_HTTPLibCertList in_list, Int32 in_index, HS_HTTPLibCertPtr *out_cert) 01452 SYS_TRAP(kHTTPLibTrapCertListBeginDecode); 01453 01454 /** 01455 * @brief TBD 01456 * 01457 * @param refnum: IN: Library reference number. 01458 * @param in_list: IN: The handle of the server’s certification list. 01459 * @param in_cert: IN: - 01460 * @return None. 01461 **/ 01462 void HS_HTTPLibCertListEndDecode(UInt16 refnum, HS_HTTPLibCertList in_list, HS_HTTPLibCertPtr in_cert) 01463 SYS_TRAP(kHTTPLibTrapCertListEndDecode); 01464 01465 /** 01466 * @brief TBD 01467 * 01468 * @param refnum: IN: Library reference number. 01469 * @param in_list: IN: The handle of the server’s certification list. 01470 * @param *in_info: IN: - 01471 * @param in_over_write: IN: - 01472 * @retval Int32 01473 **/ 01474 Int32 HS_HTTPLibCertListImportCert(UInt16 refnum, HS_HTTPLibCertList in_list, void *in_info, Boolean in_over_write) 01475 SYS_TRAP(kHTTPLibTrapCertListImportCert); 01476 01477 /** 01478 * @brief 01479 * 01480 * @param refnum: IN: 01481 * @param in_cert: IN: 01482 * @retval Err error code. 01483 **/ 01484 Int32 HS_HTTPLibCertPeekVersion(UInt16 refnum, HS_HTTPLibCertPtr in_cert) 01485 SYS_TRAP(kHTTPLibTrapCertPeekVersion); 01486 01487 /** 01488 * @brief 01489 * 01490 * @param refnum: IN: 01491 * @param in_cert: IN: 01492 * @param **out_str: IN: 01493 * @retval Err error code. 01494 **/ 01495 Int32 HS_HTTPLibCertPeekSerialNumber(UInt16 refnum, HS_HTTPLibCertPtr in_cert, Char **out_str) 01496 SYS_TRAP(kHTTPLibTrapCertPeekSerialNumber); 01497 01498 /** 01499 * @brief 01500 * 01501 * @param refnum: IN: 01502 * @param in_cert: IN: 01503 * @retval Err error code. 01504 **/ 01505 Int32 HS_HTTPLibCertPeekSignAlgo(UInt16 refnum, HS_HTTPLibCertPtr in_cert) 01506 SYS_TRAP(kHTTPLibTrapCertPeekSignAlgo); 01507 01508 /** 01509 * @brief 01510 * 01511 * @param refnum: IN: 01512 * @param in_cert: IN: 01513 * @param in_attr: IN: 01514 * @retval Err error code. 01515 **/ 01516 Boolean HS_HTTPLibCertBeginPeekIssuerRDN(UInt16 refnum, HS_HTTPLibCertPtr in_cert, Int32 in_attr) 01517 SYS_TRAP(kHTTPLibTrapCertBeginPeekIssuerRDN); 01518 01519 /** 01520 * @brief 01521 * 01522 * @param refnum: IN: 01523 * @param in_cert: IN: 01524 * @param **out_str: IN: 01525 * @retval Err error code. 01526 **/ 01527 Int32 HS_HTTPLibCertPeekIssuerRDN(UInt16 refnum, HS_HTTPLibCertPtr in_cert, Char **out_str) 01528 SYS_TRAP(kHTTPLibTrapCertPeekIssuerRDN); 01529 01530 /** 01531 * @brief 01532 * 01533 * @param refnum: IN: 01534 * @param in_cert: IN: 01535 * @retval Err error code. 01536 **/ 01537 Int32 HS_HTTPLibCertPeekIssuerRDNStrType(UInt16 refnum, HS_HTTPLibCertPtr in_cert) 01538 SYS_TRAP(kHTTPLibTrapCertPeekIssuerRDNStrType); 01539 01540 /** 01541 * @brief 01542 * 01543 * @param refnum: IN: 01544 * @param in_cert: IN: 01545 * @retval Err error code. 01546 **/ 01547 void HS_HTTPLibCertEndPeekIssuerRDN(UInt16 refnum, HS_HTTPLibCertPtr in_cert) 01548 SYS_TRAP(kHTTPLibTrapCert_EndPeekIssuerRDN); 01549 01550 /** 01551 * @brief 01552 * 01553 * @param refnum: IN: 01554 * @param in_cert: IN: 01555 * @param in_attr: IN: 01556 * @retval Err error code. 01557 **/ 01558 Boolean HS_HTTPLibCertBeginPeekSubjectRDN(UInt16 refnum, HS_HTTPLibCertPtr in_cert, Int32 in_attr) 01559 SYS_TRAP(kHTTPLibTrapCertBeginPeekSubjectRDN); 01560 01561 /** 01562 * @brief 01563 * 01564 * @param refnum: IN: 01565 * @param in_cert: IN: 01566 * @param **out_str: IN: 01567 * @retval Err error code. 01568 **/ 01569 Int32 HS_HTTPLibCertPeekSubjectRDN(UInt16 refnum, HS_HTTPLibCertPtr in_cert, Char **out_str) 01570 SYS_TRAP(kHTTPLibTrapCertPeekSubjectRDN); 01571 01572 /** 01573 * @brief 01574 * 01575 * @param refnum: IN: 01576 * @param in_cert: IN: 01577 * @retval Err error code. 01578 **/ 01579 Int32 HS_HTTPLibCertPeekSubjectRDNStrType(UInt16 refnum, HS_HTTPLibCertPtr in_cert) 01580 SYS_TRAP(kHTTPLibTrapCertPeekSubjectRDNStrType); 01581 01582 /** 01583 * @brief 01584 * 01585 * @param refnum: IN: 01586 * @param in_cert: IN: 01587 * @retval Err error code. 01588 **/ 01589 void HS_HTTPLibCertEndPeekSubjectRDN(UInt16 refnum, HS_HTTPLibCertPtr in_cert) 01590 SYS_TRAP(kHTTPLibTrapCert_EndPeekSubjectRDN); 01591 01592 /** 01593 * @brief 01594 * 01595 * @param refnum: IN: 01596 * @param in_cert: IN: 01597 * @param *in_time: IN: 01598 * @retval Err error code. 01599 **/ 01600 void HS_HTTPLibCertPeekValidityStart(UInt16 refnum, HS_HTTPLibCertPtr in_cert, HS_HTTPLibTime *in_time) 01601 SYS_TRAP(kHTTPLibTrapCert_PeekValidityStart); 01602 01603 /** 01604 * @brief 01605 * 01606 * @param refnum: IN: 01607 * @param in_cert: IN: 01608 * @param *in_time: IN: 01609 * @retval Err error code. 01610 **/ 01611 void HS_HTTPLibCertPeekValidityEnd(UInt16 refnum, HS_HTTPLibCertPtr in_cert, HS_HTTPLibTime *in_time) 01612 SYS_TRAP(kHTTPLibTrapCert_PeekValidityEnd); 01613 01614 /** 01615 * @brief 01616 * 01617 * @param refnum: IN: 01618 * @param in_cert: IN: 01619 * @retval Err error code. 01620 **/ 01621 Int32 HS_HTTPLibCertPeekRSAPublicKeyBits(UInt16 refnum, HS_HTTPLibCertPtr in_cert) 01622 SYS_TRAP(kHTTPLibTrapCert_PeekRSAPublicKeyBits); 01623 01624 /** 01625 * @brief 01626 * 01627 * @param refnum: IN: 01628 * @retval Err error code. 01629 **/ 01630 HS_HTTPLibClientCertList HS_HTTPLibClientCertListNew(UInt16 refnum) 01631 SYS_TRAP(kHTTPLibTrapClientCertListNew); 01632 01633 /** 01634 * @brief TBD 01635 * 01636 * @param refnum: IN: 01637 * @param in_list: IN: 01638 * @retval HS_HTTPLibClientCertList 01639 **/ 01640 HS_HTTPLibClientCertList HS_HTTPLibClientCertListClone(UInt16 refnum, HS_HTTPLibClientCertList in_list) 01641 SYS_TRAP(kHTTPLibTrapClientCertListClone); 01642 01643 /** 01644 * @brief 01645 * 01646 * @param refnum: IN: 01647 * @param in_list: IN: 01648 * @retval nothing 01649 **/ 01650 void HS_HTTPLibClientCertListDelete(UInt16 refnum, HS_HTTPLibClientCertList in_list) 01651 SYS_TRAP(kHTTPLibTrapClientCertListDelete); 01652 01653 /** 01654 * @brief TBD 01655 * 01656 * @param refnum: IN: 01657 * @param in_list: IN: 01658 * @retval Nothing 01659 **/ 01660 Int32 HS_HTTPLibClientCertListLength(UInt16 refnum, HS_HTTPLibClientCertList in_list) 01661 SYS_TRAP(kHTTPLibTrapClientCertListLength); 01662 01663 /** 01664 * @brief TBD 01665 * 01666 * @param refnum: IN: 01667 * @param in_list: IN: 01668 * @param in_index: IN: 01669 * @retval Boolean 01670 **/ 01671 Boolean HS_HTTPLibClientCertListIsValid(UInt16 refnum, HS_HTTPLibClientCertList in_list, Int32 in_index) 01672 SYS_TRAP(kHTTPLibTrapClientCertListIsValid); 01673 01674 /** 01675 * @brief TBD 01676 * 01677 * @param refnum: IN: 01678 * @param in_list: IN: 01679 * @param in_index: IN: 01680 * @param in_valid: IN: 01681 * @retval Nothing 01682 **/ 01683 void HS_HTTPLibClientCertListSetValid(UInt16 refnum, HS_HTTPLibClientCertList in_list, Int32 in_index, Boolean in_valid) 01684 SYS_TRAP(kHTTPLibTrapClientCertListSetValid); 01685 01686 /** 01687 * @brief This function sets the server certificate callback function for this application. 01688 * 01689 * @param refnum: IN: Library reference number. 01690 * @param libH: IN: - 01691 * @param in_cb: IN: - 01692 * @param in_opaque: IN: - 01693 * @return Nothing 01694 **/ 01695 void HS_HTTPLibSetSSLServerCertConfirmProc(UInt16 refnum, HS_HTTPLibHandle libH, HS_HTTPLibServerCertConfirmProc in_cb, HS_HTTPLibOpaque in_opaque) 01696 SYS_TRAP(kHTTPLibTrapSetSSLServerCertConfirmProc); 01697 01698 /** 01699 * @brief This function sets the result of confirmation. This function should be called in the 01700 * callback function. 01701 * 01702 * @param refnum: IN: Library reference number. 01703 * @param in_ssl: IN: - 01704 * @param in_verify_result: IN: - 01705 * @param in_confirm: IN: - 01706 * @return None. 01707 **/ 01708 void HS_HTTPLibServerCertConfirm(UInt16 refnum, HS_HTTPLibSSL in_ssl, Int32 in_verify_result, Boolean in_confirm) 01709 SYS_TRAP(kHTTPLibTrapServerCertConfirm); 01710 01711 /** 01712 * @brief This function sets the client certification select callback function.For now, there is 01713 * no corresponding function in SSL library, the callback will not be called. 01714 * 01715 * @param refnum: IN: Library reference number. 01716 * @param libH: IN: - 01717 * @param in_cb: IN: - 01718 * @param in_opaque: IN: - 01719 * @return None. 01720 **/ 01721 void HS_HTTPLibSetSSLClientCertSelectProc(UInt16 refnum, HS_HTTPLibHandle libH, HS_HTTPLibClientCertSelectProc in_cb, HS_HTTPLibOpaque in_opaque) 01722 SYS_TRAP(kHTTPLibTrapSetSSLClientCertSelectProc); 01723 01724 /** 01725 * @brief This function sets the selected certification. For now, there is no corresponding 01726 * function in SSL library, the callback will not be called. 01727 * 01728 * @param refnum: IN: Library reference number. 01729 * @param in_ssl: IN: - 01730 * @param in_index: IN: - 01731 * @return None. 01732 **/ 01733 void HS_HTTPLibClientCertSelect(UInt16 refnum, HS_HTTPLibSSL in_ssl, Int32 in_index) 01734 SYS_TRAP(kHTTPLibTrapClientCertSelect); 01735 01736 /** 01737 * @brief This function sets the callback functions concerning NetLib. But for now, there is 01738 * no call to callback functions from Peer layer. 01739 * 01740 * @param refnum: IN: Library reference number. 01741 * @param libH: IN: 01742 * @param netLibRefnum: IN: 01743 * @param in_open: IN: 01744 * @param in_close: IN: 01745 * @param in_online: IN: 01746 * @param in_offline: IN: 01747 * @return None. 01748 **/ 01749 void HS_HTTPLibSetNetLibProc(UInt16 refnum, HS_HTTPLibHandle libH, UInt16 netLibRefnum, HS_HTTPLibNetLibOpenProc in_open, HS_HTTPLibNetLibCloseProc in_close, HS_HTTPLibNetLibOnlineProc in_online, HS_HTTPLibNetLibOfflineProc in_offline) 01750 SYS_TRAP(kHTTPLibTrapSetNetLibProc); 01751 01752 /** 01753 * @brief 01754 * 01755 * @param refnum: IN: 01756 * @param in_handle: IN: 01757 * @retval Err error code. 01758 **/ 01759 Int32 HS_HTTPLibDataHandle_Length(UInt16 refnum, HS_HTTPLibDataHandle in_handle) 01760 SYS_TRAP(kHTTPLibTrapDataHandle_Length); 01761 01762 /** 01763 * @brief 01764 * 01765 * @param refnum: IN: 01766 * @param in_handle: IN: 01767 * @retval Err error code. 01768 **/ 01769 void *HS_HTTPLibDataHandle_Lock(UInt16 refnum, HS_HTTPLibDataHandle in_handle) 01770 SYS_TRAP(kHTTPLibTrapDataHandle_Lock); 01771 01772 /** 01773 * @brief 01774 * 01775 * @param refnum: IN: 01776 * @param in_handle: IN: 01777 * @retval Err error code. 01778 **/ 01779 void HS_HTTPLibDataHandle_Unlock(UInt16 refnum, HS_HTTPLibDataHandle in_handle) 01780 SYS_TRAP(kHTTPLibTrapDataHandle_Unlock); 01781 01782 /** 01783 * @brief 01784 * 01785 * @param refnum: IN: 01786 * @param in_handle: IN: 01787 * @retval Err error code. 01788 **/ 01789 void HS_HTTPLibDataHandle_Delete(UInt16 refnum, HS_HTTPLibDataHandle in_handle) 01790 SYS_TRAP(kHTTPLibTrapDataHandle_Delete); 01791 01792 /** 01793 * @brief This function returns the length of the handle (byte). 01794 * 01795 * @param refnum: IN: Library reference number. 01796 * @param in_vhandle: IN: The handle. 01797 * @retval Int32 01798 **/ 01799 Int32 HS_HTTPLibVHandle_Length(UInt16 refnum, HS_HTTPLibVHandle in_vhandle) 01800 SYS_TRAP(kHTTPLibTrapVHandle_Length); 01801 01802 /** 01803 * @brief This function locks the handle of type HS_HTTPLibVHandle. 01804 * 01805 * @param refnum: IN: Library reference number. 01806 * @param in_vhandle: IN: The handle. 01807 * @retval void * 01808 **/ 01809 void *HS_HTTPLibVHandle_Lock(UInt16 refnum, HS_HTTPLibVHandle in_vhandle) 01810 SYS_TRAP(kHTTPLibTrapVHandle_Lock); 01811 01812 /** 01813 * @brief This function unlocks the handle of type HS_HTTPLibVHandle. 01814 * 01815 * @param refnum: IN: Library reference number. 01816 * @param in_vhandle: IN: The handle. 01817 * @retval Nothing 01818 **/ 01819 void HS_HTTPLibVHandle_Unlock(UInt16 refnum, HS_HTTPLibVHandle in_vhandle) 01820 SYS_TRAP(kHTTPLibTrapVHandle_Unlock); 01821 01822 /** 01823 * @brief This function deletes the handle of type HS_HTTPLibVHandle. 01824 * 01825 * @param refnum: IN: Library reference number. 01826 * @param in_vhandle: IN: The handle. 01827 * @retval Nothing 01828 **/ 01829 void HS_HTTPLibVHandle_Delete(UInt16 refnum, HS_HTTPLibVHandle in_vhandle) 01830 SYS_TRAP(kHTTPLibTrapVHandle_Delete); 01831 01832 /** 01833 * @brief This function returns the length of the handle (byte). 01834 * 01835 * @param refnum: IN: Library reference number. 01836 * @param in_str: IN: The handle. 01837 * @retval Int32 01838 **/ 01839 Int32 HS_HTTPLibString_Length(UInt16 refnum, HS_HTTPLibString in_str) 01840 SYS_TRAP(kHTTPLibTrapString_Length); 01841 01842 /** 01843 * @brief This function creates a new handle of type HS_HTTPLibString. 01844 * 01845 * @param refnum: IN: Library reference number. 01846 * @param *in_str: IN: The pointer to the string. 01847 * @param in_len: IN: The length of in_str. 01848 * @retval HS_HTTPLibString 01849 **/ 01850 HS_HTTPLibString HS_HTTPLibStringNew(UInt16 refnum, Char *in_str, Int32 in_len) 01851 SYS_TRAP(kHTTPLibTrapStringNew); 01852 01853 /** 01854 * @brief This function locks the handle of type HS_HTTPLibString. 01855 * 01856 * @param refnum: IN: Library reference number. 01857 * @param in_str: IN: The handle. 01858 * @retval void * 01859 **/ 01860 void *HS_HTTPLibString_Lock(UInt16 refnum, HS_HTTPLibString in_str) 01861 SYS_TRAP(kHTTPLibTrapString_Lock); 01862 01863 /** 01864 * @brief This function unlocks the handle of type HS_HTTPLibString. 01865 * 01866 * @param refnum: IN: Library reference number. 01867 * @param in_str: IN: The handle. 01868 * @retval Nothing 01869 **/ 01870 void HS_HTTPLibString_Unlock(UInt16 refnum, HS_HTTPLibString in_str) 01871 SYS_TRAP(kHTTPLibTrapString_Unlock); 01872 /** 01873 * @brief This function deletes the handle of type HS_HTTPLibString. 01874 * 01875 * @param refnum: IN: Library reference number. 01876 * @param in_str: IN: The handle. 01877 * @retval Nothing 01878 **/ 01879 void HS_HTTPLibString_Delete(UInt16 refnum, HS_HTTPLibString in_str) 01880 SYS_TRAP(kHTTPLibTrapString_Delete); 01881 01882 /** 01883 * @brief This function returns the length of the handle (byte). 01884 * 01885 * @param refnum: IN: Library reference number. 01886 * @param in_str: IN: The handle. 01887 * @retval Int32 01888 **/ 01889 Int32 HS_HTTPLibFixedString_Length(UInt16 refnum, HS_HTTPLibFixedString in_str) 01890 SYS_TRAP(kHTTPLibTrapFixedString_Length); 01891 01892 /** 01893 * @brief This function creates a new handle of type HS_HTTPLibFixedString. 01894 * 01895 * @param refnum: IN: Library reference number. 01896 * @param *in_str: IN: The pointer to the string. 01897 * @param in_len: IN: The length of in_str. 01898 * @retval HS_HTTPLibFixedString 01899 **/ 01900 HS_HTTPLibFixedString HS_HTTPLibFixedStringNew(UInt16 refnum, Char *in_str, Int32 in_len) 01901 SYS_TRAP(kHTTPLibTrapFixedStringNew); 01902 01903 /** 01904 * @brief This function locks the handle of type HS_HTTPLibFixedString. 01905 * 01906 * @param refnum: IN: Library reference number. 01907 * @param in_str: IN: The handle. 01908 * @retval void * 01909 **/ 01910 void *HS_HTTPLibFixedString_Lock(UInt16 refnum, HS_HTTPLibFixedString in_str) 01911 SYS_TRAP(kHTTPLibTrapFixedString_Lock); 01912 01913 /** 01914 * @brief This function unlocks the handle of type HS_HTTPLibFixedString. 01915 * 01916 * @param refnum: IN: Library reference number. 01917 * @param in_str: IN: The handle. 01918 * @retval nothing 01919 **/ 01920 void HS_HTTPLibFixedString_Unlock(UInt16 refnum, HS_HTTPLibFixedString in_str) 01921 SYS_TRAP(kHTTPLibTrapFixedString_Unlock); 01922 01923 /** 01924 * @brief This function deletes the handle of type HS_HTTPLibFixedString. 01925 * 01926 * @param refnum: IN: Library reference number. 01927 * @param in_str: IN: The handle. 01928 * @retval nothing 01929 **/ 01930 void HS_HTTPLibFixedString_Delete(UInt16 refnum, HS_HTTPLibFixedString in_str) 01931 SYS_TRAP(kHTTPLibTrapFixedString_Delete); 01932 01933 /** 01934 * @brief This function returns the length of the handle (byte). 01935 * 01936 * @param refnum: IN: Library reference number. 01937 * @param in_str: IN: The handle. 01938 * @retval Int32 01939 **/ 01940 Int32 HS_HTTPLibURLString_Length(UInt16 refnum, HS_HTTPLibURLString in_str) 01941 SYS_TRAP(kHTTPLibTrapURLString_Length); 01942 01943 /** 01944 * @brief This function creates a new handle of type HS_HTTPLibURLString. 01945 * 01946 * @param refnum: IN: Library reference number. 01947 * @param *in_str: IN: The pointer to the string. 01948 * @param in_len: IN: The length of in_str. 01949 * @retval HS_HTTPLibURLString 01950 **/ 01951 HS_HTTPLibURLString HS_HTTPLibURLStringNew(UInt16 refnum, Char *in_str, Int32 in_len) 01952 SYS_TRAP(kHTTPLibTrapURLStringNew); 01953 01954 /** 01955 * @brief This function locks the handle of type HS_HTTPLibURLString. 01956 * 01957 * @param refnum: IN: Library reference number. 01958 * @param in_str: IN: The handle. 01959 * @retval void * 01960 **/ 01961 void *HS_HTTPLibURLString_Lock(UInt16 refnum, HS_HTTPLibURLString in_str) 01962 SYS_TRAP(kHTTPLibTrapURLString_Lock); 01963 01964 /** 01965 * @brief This function unlocks the handle of type HS_HTTPLibURLString. 01966 * 01967 * @param refnum: IN: Library reference number. 01968 * @param in_str: IN: The handle. 01969 * @retval nothing 01970 **/ 01971 void HS_HTTPLibURLString_Unlock(UInt16 refnum, HS_HTTPLibURLString in_str) 01972 SYS_TRAP(kHTTPLibTrapURLString_Unlock); 01973 01974 /** 01975 * @brief This function deletes the handle of type HS_HTTPLibURLString. 01976 * 01977 * @param refnum: IN: Library reference number. 01978 * @param in_str: IN: The handle. 01979 * @retval nothing 01980 **/ 01981 void HS_HTTPLibURLString_Delete(UInt16 refnum, HS_HTTPLibURLString in_str) 01982 SYS_TRAP(kHTTPLibTrapURLString_Delete); 01983 01984 /** 01985 * @brief This returns the cipher info. 01986 * SslCipherSuiteInfo is the structure defined in SslLib.h 01987 * 01988 * The implementation of this API in ARM native version is mere macro. 01989 * 01990 * @param refnum: IN: Library reference number. 01991 * @param *iself: IN: - 01992 * @retval nothing 01993 **/ 01994 void *HS_HTTPLibCertListGetCipherInfo(UInt16 refnum, void *iself) 01995 SYS_TRAP(kHTTPLibTrapCertListGetCipherInfo); 01996 01997 /** 01998 * @brief 01999 * 02000 * @param refnum: IN: 02001 * @param libH: IN: 02002 * @param in_msec:: IN: 02003 * @retval Err error code. 02004 **/ 02005 void HS_HTTPLibSetMaxKeepAliveTimeout(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_msec) 02006 SYS_TRAP(kHTTPLibTrapSetMaxKeepAliveTimeout); 02007 02008 /** 02009 * @brief 02010 * 02011 * @param refnum: IN: 02012 * @param stream: IN: 02013 * @param *out_total: IN: 02014 * @param *out_sent: IN: 02015 * @retval Err error code. 02016 **/ 02017 void HS_HTTPLibStreamGetRequestSent(UInt16 refnum, HS_HTTPLibStream stream, Int32 *out_total, Int32 *out_sent) 02018 SYS_TRAP(kHTTPLibTrapStreamGetRequestSent); 02019 02020 /** 02021 * @brief 02022 * 02023 * @param refnum: IN: 02024 * @param stream: IN: 02025 * @param in_type IN: 02026 * @param in_ofs: IN: 02027 * @param *out_off: IN: 02028 * @param *out_len: IN: 02029 * @retval Err error code. 02030 **/ 02031 Boolean HS_HTTPLibStreamGetHeaderWithOffset(UInt16 refnum, HS_HTTPLibStream stream, Int32 in_type, Int32 in_ofs, Int32 *out_off, Int32 *out_len) 02032 SYS_TRAP(kHTTPLibTrapStreamGetHeaderWithOffset); 02033 02034 /** 02035 * @brief 02036 * 02037 * @param refnum: IN: 02038 * @param libH: IN: 02039 * @param in_type: IN: 02040 * @param in_target: IN: 02041 * @param *in_challenge: IN: 02042 * @param *in_realm: IN: 02043 * @param *in_user: IN: 02044 * @param in_user_len: IN: 02045 * @param *in_pass: IN: 02046 * @param in_pass_len: IN: 02047 * @param *in_url: IN: 02048 * @param in_url_len: IN: 02049 * @param *in_host: IN: 02050 * @param in_host_len: IN: 02051 * @param in_port: IN: 02052 * @param in_keep_user: IN: 02053 * @param in_keep_pass: IN: 02054 * @retval Err error code. 02055 **/ 02056 Boolean HS_HTTPLibSetUserPassX(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_type, Int32 in_target, HS_HTTPLibSplit *in_challenge, HS_HTTPLibSplit *in_realm, Char *in_user, Int32 in_user_len, Char *in_pass, Int32 in_pass_len, Char *in_url, Int32 in_url_len, Char *in_host, Int32 in_host_len, Int32 in_port, Boolean in_keep_user, Boolean in_keep_pass) 02057 SYS_TRAP(kHTTPLibTrapSetUserPassX); 02058 02059 /** 02060 * @brief 02061 * 02062 * @param refnum: IN: 02063 * @param libH: IN: 02064 * @param in_target: IN: 02065 * @param *in_url: IN: 02066 * @param in_url_len: IN: 02067 * @param *in_host: IN: 02068 * @param in_host_len: IN: 02069 * @param in_port: IN: 02070 * @param *in_realm: IN: 02071 * @param in_realm_len: IN: 02072 * @param *out_user: IN: 02073 * @param *out_pass: IN: 02074 * @param *out_keep_user: IN: 02075 * @param *out_keep_pass: IN: 02076 * @param libH: IN: 02077 * @retval Err error code. 02078 **/ 02079 void HS_HTTPLibFindAuthCandidate(UInt16 refnum, HS_HTTPLibHandle libH, Int32 in_target, Char *in_url, Int32 in_url_len, Char *in_host, Int32 in_host_len, Int32 in_port, Char *in_realm, Int32 in_realm_len, HS_HTTPLibString *out_user, HS_HTTPLibString *out_pass, Boolean *out_keep_user, Boolean *out_keep_pass) 02080 SYS_TRAP(kHTTPLibTrapFindAuthCandidate); 02081 02082 /** 02083 * @brief 02084 * 02085 * @param refnum: IN: 02086 * @param libH: IN: 02087 * @param in_proc: IN: 02088 * @param in_opaque: IN: 02089 * @retval Err error code. 02090 **/ 02091 void HS_HTTPLibSetWakeUpCallback(UInt16 refnum, HS_HTTPLibHandle libH, HS_HTTPLibWakeUpCallbackProc in_proc, HS_HTTPLibOpaque in_opaque) 02092 SYS_TRAP(kHTTPLibTrapSetWakeUpCallback); 02093 02094 /** 02095 * @brief 02096 * 02097 * @param refnum: IN: 02098 * @param libH: IN: 02099 * @param *rules: IN: 02100 * @param len: IN: 02101 * @retval Err error code. 02102 **/ 02103 Boolean HS_HTTPLibSetUseragentSelectionRule(UInt16 refnum, HS_HTTPLibHandle libH, HttpUASelectionRule *rules, Int32 len) 02104 SYS_TRAP(kHTTPLibTrapSetUseragentSelectionRule); 02105 02106 02107 02108 #endif /* HS_HTTPLIB68K_H__ */
| Top | Palm Developer Network © 2004-2008, Palm, Inc. All rights reserved. Generated on Fri Jun 13 10:06:53 2008 for Palm API Guide |