/*###################################################################### *## *## NAME: HttpSendRequest10 *## *## PURPOSE: Send an http 1.0 method request-line *## Note: szReq can be "HEAD ", "POST ", "GET ", .. *## *####################################################################*/ static int HttpSendRequest10(SOCKET CSock, /* socket decriptor */ LPCSTR szReq, /* request to be sent */ LPCSTR szURL /* URL or URI */) { LPSTR sRequest = NULL; int Rc; Tcp4uLog (LOG4U_INTERN, "HttpSendRequest10"); /* allocate buffer wide eough to contain all data */ sRequest = Calloc (sizeof(" HTTP/1.0 ") + Strlen (szURL) + Strlen(szReq), sizeof(char)); if (sRequest == NULL) return HTTP4U_INSMEMORY; /* compose request with reentrant functions */ Strcpy(sRequest, szReq); Strcat(sRequest, szURL); Strcat(sRequest, " HTTP/1.0"); /* send the request then forget it */ Rc = TnSend (CSock, sRequest, FALSE, DO_NOT_LOG); Free (sRequest); if (Rc!=TCP4U_SUCCESS) return HTTP4U_TCP_FAILED ; /* Send general-header */ return HttpSendAdditionnalHeader(CSock); } /* END HttpSendRequestHEAD10 */
/* ------------------------------------------------------------ */ int _export PASCAL FAR FtpQuote (LPCSTR szCmd, LPSTR szReplyBuf, UINT uBufSize) { LPProcData pProcData; int Rc; pProcData = ToolsLocateProcData (); if (pProcData==NULL || szCmd==NULL) return FTPERR_NOTINITIALIZED; if (pProcData->ftp.ctrl_socket==INVALID_SOCKET) return FTPERR_NOTCONNECTED; Rc = TnSend ( pProcData->ftp.ctrl_socket, szCmd, FALSE, pProcData->ftp.hLogFile); if (Rc != TN_SUCCESS) return FTPERR_SENDREFUSED; Rc = IntFtpGetAnswerCode ( & pProcData->ftp ); if (Rc==-1) return FTPERR_NOREPLY; if (szReplyBuf!=NULL) lstrcpyn ( szReplyBuf, pProcData->ftp.szInBuf, uBufSize ); return Rc; } /* FtpQuote */
/*###################################################################### *## *## NAME: HttpSendAdditionnalHeader *## *## PURPOSE: Send a http 1.0 general-header *## *####################################################################*/ static int HttpSendAdditionnalHeader(SOCKET CSock) { int Ark; int Rc; static LPCSTR szAdditionnalStrings[] = { "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*", "User-Agent: Http4u by Ph. Jounin and L. Le Bras", "", }; Tcp4uLog (LOG4U_INTERN, "HttpSendAdditionnalHeader"); /* sending request, if successful send Request Header */ for (Rc=TCP4U_SUCCESS,Ark=0 ; Rc==TCP4U_SUCCESS && Ark<SizeOfTab(szAdditionnalStrings); Ark++) Rc = TnSend (CSock, szAdditionnalStrings[Ark], FALSE, DO_NOT_LOG); return Rc==TCP4U_SUCCESS ? HTTP4U_SUCCESS : HTTP4U_TCP_FAILED; } /* END HttpSendAdditionnalHeader */