1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-22 08:08:50 -05:00

added function headers and comments

This commit is contained in:
Daniel Stenberg 2004-04-26 07:11:06 +00:00
parent 241a4b3d45
commit d02587750c
2 changed files with 56 additions and 20 deletions

View File

@ -104,6 +104,10 @@
static bool verifyconnect(curl_socket_t sockfd); static bool verifyconnect(curl_socket_t sockfd);
/*
* Curl_ourerrno() returns the errno (or equivalent) on this platform to
* hide platform specific for the function that calls this.
*/
int Curl_ourerrno(void) int Curl_ourerrno(void)
{ {
#ifdef WIN32 #ifdef WIN32
@ -113,13 +117,11 @@ int Curl_ourerrno(void)
#endif #endif
} }
/************************************************************************* /*
* Curl_nonblock * Curl_nonblock() set the given socket to either blocking or non-blocking
* * mode based on the 'nonblock' boolean argument. This function is highly
* Description: * portable.
* Set the socket to either blocking or non-blocking mode.
*/ */
int Curl_nonblock(curl_socket_t sockfd, /* operate on this */ int Curl_nonblock(curl_socket_t sockfd, /* operate on this */
int nonblock /* TRUE or FALSE */) int nonblock /* TRUE or FALSE */)
{ {
@ -177,12 +179,19 @@ int Curl_nonblock(curl_socket_t sockfd, /* operate on this */
} }
/* /*
* waitconnect() returns: * waitconnect() waits for a TCP connect on the given socket for the specified
* number if milliseconds. It returns:
* 0 fine connect * 0 fine connect
* -1 select() error * -1 select() error
* 1 select() timeout * 1 select() timeout
* 2 select() returned with an error condition * 2 select() returned with an error condition fd_set
*/ */
#define WAITCONN_CONNECTED 0
#define WAITCONN_SELECT_ERROR -1
#define WAITCONN_TIMEOUT 1
#define WAITCONN_FDSET_ERROR 2
static static
int waitconnect(curl_socket_t sockfd, /* socket */ int waitconnect(curl_socket_t sockfd, /* socket */
long timeout_msec) long timeout_msec)
@ -213,18 +222,18 @@ int waitconnect(curl_socket_t sockfd, /* socket */
rc = select(sockfd+1, NULL, &fd, &errfd, &interval); rc = select(sockfd+1, NULL, &fd, &errfd, &interval);
if(-1 == rc) if(-1 == rc)
/* error, no connect here, try next */ /* error, no connect here, try next */
return -1; return WAITCONN_SELECT_ERROR;
else if(0 == rc) else if(0 == rc)
/* timeout, no connect today */ /* timeout, no connect today */
return 1; return WAITCONN_TIMEOUT;
if(FD_ISSET(sockfd, &errfd)) if(FD_ISSET(sockfd, &errfd))
/* error condition caught */ /* error condition caught */
return 2; return WAITCONN_FDSET_ERROR;
/* we have a connect! */ /* we have a connect! */
return 0; return WAITCONN_CONNECTED;
} }
static CURLcode bindlocal(struct connectdata *conn, static CURLcode bindlocal(struct connectdata *conn,

View File

@ -85,14 +85,16 @@
#include "memdebug.h" #include "memdebug.h"
#endif #endif
/* Silly win32 socket initialization functions */
#if defined(WIN32) && !defined(__GNUC__) || defined(__MINGW32__) #if defined(WIN32) && !defined(__GNUC__) || defined(__MINGW32__)
/* win32_cleanup() is for win32 socket cleanup functionality, the opposite
of win32_init() */
static void win32_cleanup(void) static void win32_cleanup(void)
{ {
WSACleanup(); WSACleanup();
} }
/* win32_init() performs win32 socket initialization to properly setup the
stack to allow networking */
static CURLcode win32_init(void) static CURLcode win32_init(void)
{ {
WORD wVersionRequested; WORD wVersionRequested;
@ -126,23 +128,23 @@ static CURLcode win32_init(void)
WSACleanup(); WSACleanup();
return CURLE_FAILED_INIT; return CURLE_FAILED_INIT;
} }
/* The Windows Sockets DLL is acceptable. Proceed. */
return CURLE_OK; return CURLE_OK;
} }
/* The Windows Sockets DLL is acceptable. Proceed. */
#else #else
/* These functions exist merely to prevent compiler warnings */ /* These functions exist merely to prevent compiler warnings */
static CURLcode win32_init(void) { return CURLE_OK; } static CURLcode win32_init(void) { return CURLE_OK; }
static void win32_cleanup(void) { } static void win32_cleanup(void) { }
#endif #endif
/* true globals -- for curl_global_init() and curl_global_cleanup() */ /* true globals -- for curl_global_init() and curl_global_cleanup() */
static unsigned int initialized = 0; static unsigned int initialized = 0;
static long init_flags = 0; static long init_flags = 0;
/** /**
* Globally initializes cURL given a bitwise set of * curl_global_init() globally initializes cURL given a bitwise set of the
* the different features to initialize. * different features of what to initialize.
*/ */
CURLcode curl_global_init(long flags) CURLcode curl_global_init(long flags)
{ {
@ -168,8 +170,8 @@ CURLcode curl_global_init(long flags)
} }
/** /**
* Globally cleanup cURL, uses the value of "init_flags" to determine * curl_global_cleanup() globally cleanups cURL, uses the value of
* what needs to be cleaned up and what doesn't * "init_flags" to determine what needs to be cleaned up and what doesn't.
*/ */
void curl_global_cleanup(void) void curl_global_cleanup(void)
{ {
@ -192,6 +194,10 @@ void curl_global_cleanup(void)
init_flags = 0; init_flags = 0;
} }
/*
* curl_easy_init() is the external interface to alloc, setup and init an
* easy handle that is returned. If anything goes wrong, NULL is returned.
*/
CURL *curl_easy_init(void) CURL *curl_easy_init(void)
{ {
CURLcode res; CURLcode res;
@ -213,6 +219,10 @@ CURL *curl_easy_init(void)
return data; return data;
} }
/*
* curl_easy_setopt() is the external interface for setting options on an
* easy handle.
*/
typedef int (*func_T)(void); typedef int (*func_T)(void);
CURLcode curl_easy_setopt(CURL *curl, CURLoption tag, ...) CURLcode curl_easy_setopt(CURL *curl, CURLoption tag, ...)
{ {
@ -257,6 +267,10 @@ CURLcode curl_easy_setopt(CURL *curl, CURLoption tag, ...)
return ret; return ret;
} }
/*
* curl_easy_perform() is the external interface that performs a transfer
* previously setup.
*/
CURLcode curl_easy_perform(CURL *curl) CURLcode curl_easy_perform(CURL *curl)
{ {
struct SessionHandle *data = (struct SessionHandle *)curl; struct SessionHandle *data = (struct SessionHandle *)curl;
@ -285,6 +299,10 @@ CURLcode curl_easy_perform(CURL *curl)
return Curl_perform(data); return Curl_perform(data);
} }
/*
* curl_easy_cleanup() is the external interface to cleaning/freeing the given
* easy handle.
*/
void curl_easy_cleanup(CURL *curl) void curl_easy_cleanup(CURL *curl)
{ {
struct SessionHandle *data = (struct SessionHandle *)curl; struct SessionHandle *data = (struct SessionHandle *)curl;
@ -296,6 +314,10 @@ void curl_easy_cleanup(CURL *curl)
Curl_close(data); Curl_close(data);
} }
/*
* curl_easy_getinfo() is an external interface that allows an app to retrieve
* information from a performed transfer and similar.
*/
CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...) CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...)
{ {
va_list arg; va_list arg;
@ -308,6 +330,11 @@ CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...)
return Curl_getinfo(data, info, paramp); return Curl_getinfo(data, info, paramp);
} }
/*
* curl_easy_duphandle() is an external interface to allow duplication of a
* given input easy handle. The returned handle will be a new working handle
* with all options set exactly as the input source handle.
*/
CURL *curl_easy_duphandle(CURL *incurl) CURL *curl_easy_duphandle(CURL *incurl)
{ {
struct SessionHandle *data=(struct SessionHandle *)incurl; struct SessionHandle *data=(struct SessionHandle *)incurl;