⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 httpreadwrite.h

📁 Upnp开发包文件
💻 H
📖 第 1 页 / 共 2 页
字号:
/////////////////////////////////////////////////////////////////////////////// Copyright (c) 2000-2003 Intel Corporation // All rights reserved. //// Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: //// * Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above copyright notice, // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // * Neither name of Intel Corporation nor the names of its contributors // may be used to endorse or promote products derived from this software // without specific prior written permission.// // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY // OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE./////////////////////////////////////////////////////////////////////////////#ifndef GENLIB_NET_HTTP_HTTPREADWRITE_H#define GENLIB_NET_HTTP_HTTPREADWRITE_H#include "config.h"#include "util.h"#include "sock.h"#include "httpparser.h"// timeout in secs#define HTTP_DEFAULT_TIMEOUT (30 + MINIMUM_DELAY)#ifdef __cplusplus#extern "C" {#endif/************************************************************************* Function: http_FixUrl													*																		* Parameters:															*	IN uri_type* url ;			URL to be validated and fixed*	OUT uri_type* fixed_url ;	URL after being fixed.*																		* Description: Validates URL											*																		* Returns:																*	 UPNP_E_INVALID_URL													* 	 UPNP_E_SUCCESS														************************************************************************/int http_FixUrl( IN uri_type* url, OUT uri_type* fixed_url );/************************************************************************* Function: http_FixStrUrl												*																		* Parameters:															*	IN char* urlstr ; 			Character string as a URL				*	IN int urlstrlen ; 			Length of the character string								*	OUT uri_type* fixed_url	;	Fixed and corrected URL*																		* Description: Parses URL and then validates URL						*																		* Returns:																*	 UPNP_E_INVALID_URL													* 	 UPNP_E_SUCCESS														************************************************************************/int http_FixStrUrl( IN char* urlstr, IN int urlstrlen, OUT uri_type* fixed_url );/************************************************************************* Function: http_Connect												*																		* Parameters:															*	IN uri_type* destination_url ; URL containing destination information					*	OUT uri_type *url ;			   Fixed and corrected URL*																		* Description: Gets destination address from URL and then connects to the *	remote end*																		* Returns:																*	socket descriptor on sucess											*	UPNP_E_OUTOF_SOCKET													*	UPNP_E_SOCKET_CONNECT on error										************************************************************************/int http_Connect( IN uri_type* destination_url, OUT uri_type *url );/************************************************************************* Function: http_RecvMessage											*																		* Parameters:															*	IN SOCKINFO *info ;					Socket information object*	OUT http_parser_t* parser,			HTTP parser object*	IN http_method_t request_method ;	HTTP request method					*	IN OUT int* timeout_secs ;			time out											*	OUT int* http_error_code ;			HTTP error code returned*																		* Description: Get the data on the socket and take actions based on the *	read data to modify the parser objects buffer. If an error is reported *	while parsing the data, the error code is passed in the http_errr_code *	parameter*																		* Returns:																*	 UPNP_E_BAD_HTTPMSG													* 	 UPNP_E_SUCCESS														************************************************************************/int http_RecvMessage( IN SOCKINFO *info, OUT http_parser_t* parser,		IN http_method_t request_method, 		IN OUT int* timeout_secs,		OUT int* http_error_code );/************************************************************************* Function: http_SendMessage											*																		* Parameters:															*	IN SOCKINFO *info ;		Socket information object*	IN OUT int * TimeOut ; 	time out value											*	IN const char* fmt, ...	 Pattern format to take actions upon								*																		* Description: Sends a message to the destination based on the			*	IN const char* fmt parameter										*	fmt types:															*		'f':	arg = const char * file name							*		'm':	arg1 = const char * mem_buffer; arg2= size_t buf_length	*	E.g.:																*		char *buf = "POST /xyz.cgi http/1.1\r\n\r\n";					*		char *filename = "foo.dat";										*		int status = http_SendMessage( tcpsock, "mf",					*					buf, strlen(buf),	// args for memory buffer		*					filename );			// arg for file					*																		* Returns:																*	UPNP_E_OUTOF_MEMORY													* 	UPNP_E_FILE_READ_ERROR												*	UPNP_E_SUCCESS														************************************************************************/int http_SendMessage( IN SOCKINFO *info, IN OUT int* timeout_secs, 					  IN const char* fmt, ... );/************************************************************************* Function: http_RequestAndResponse										*																		* Parameters:															*	IN uri_type* destination ;		Destination URI object which contains *									remote IP address among other elements*	IN const char* request ;		Request to be sent*	IN size_t request_length ;		Length of the request*	IN http_method_t req_method ;	HTTP Request method*	IN int timeout_secs ;			time out value*	OUT http_parser_t* response	;	Parser object to receive the repsonse*																		* Description: Initiates socket, connects to the destination, sends a	*	request and waits for the response from the remote end				*																		* Returns:																*	UPNP_E_SOCKET_ERROR													* 	UPNP_E_SOCKET_CONNECT												*	Error Codes returned by http_SendMessage							*	Error Codes returned by http_RecvMessage							************************************************************************/int http_RequestAndResponse( IN uri_type* destination,						   IN const char* request, IN size_t request_length,						   IN http_method_t req_method,						   IN int timeout_secs, 						   OUT http_parser_t* response );/*************************************************************************  return codes:*		0 -- success*		UPNP_E_OUTOF_MEMORY*		UPNP_E_TIMEDOUT*		UPNP_E_BAD_REQUEST*		UPNP_E_BAD_RESPONSE*		UPNP_E_INVALID_URL*		UPNP_E_SOCKET_READ*		UPNP_E_SOCKET_WRITE************************************************************************//*************************************************************************	Function :	http_Download**	Parameters :*		IN const char* url_str :	String as a URL*		IN int timeout_secs :		time out value*		OUT char** document :		buffer to store the document extracted*									from the donloaded message.*		OUT int* doc_length :		length of the extracted document*	    OUT char* content_type :	Type of content**	Description :	Download the document message and extract the document *		from the message.**	Return : int;*		UPNP_E_SUCCESS;*		UPNP_E_INVALID_URL;*			**	Note :************************************************************************/int http_Download( IN const char* url, 				   IN int timeout_secs,				   OUT char** document, OUT int* doc_length,				   OUT char* content_type );/*************************************************************************	Function :	http_WriteHttpPost**	Parameters :*		IN void *Handle :		Handle to the http post object*		IN char *buf :			Buffer to send to peer, if format used*								is not UPNP_USING_CHUNKED, *		IN unsigned int *size :	Size of the data to be sent.*		IN int timeout :		time out value**	Description :	Formats data if format used is UPNP_USING_CHUNKED.*		Writes data on the socket connected to the peer.**	Return : int ;*		UPNP_E_SUCCESS - On Success*		UPNP_E_INVALID_PARAM - Invalid Parameter*		-1 - On Socket Error.**	Note :************************************************************************/int http_WriteHttpPost(IN void *Handle,		       IN char *buf,		       IN unsigned int *size,		       IN int timeout);/*************************************************************************	Function :	http_CloseHttpPost**	Parameters :*		IN void *Handle :			Handle to the http post object*		IN OUT int *httpStatus :	HTTP status returned on receiving a*									response message*		IN int timeout :			time out value**	Description :	Sends remaining data if using  UPNP_USING_CHUNKED *		format. Receives any more messages. Destroys socket and any socket*		associated memory. Frees handle associated with the HTTP POST msg.**	Return : int ;*		UPNP_E_SUCCESS - On Sucess ;*		UPNP_E_INVALID_PARAM  - Invalid Parameter;**	Note :************************************************************************/int http_CloseHttpPost(IN void *Handle, 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -