NCBI C++ ToolKit
Classes | Macros | Typedefs | Enumerations | Functions | Variables
ncbi_http_connector.c File Reference
#include "ncbi_ansi_ext.h"
#include "ncbi_comm.h"
#include "ncbi_priv.h"
#include "ncbi_servicep.h"
#include <connect/ncbi_base64.h>
#include <connect/ncbi_http_connector.h>
#include <ctype.h>
#include <errno.h>
#include <stdlib.h>
+ Include dependency graph for ncbi_http_connector.c:

Go to the source code of this file.

Go to the SVN repository for this file.

Classes

struct  SRetry
 
struct  SHttpConnector
 
struct  XBUF_PeekCBCtx
 

Macros

#define NCBI_USE_ERRCODE_X   Connect_HTTP
 
#define HTTP_SOAK_READ_SIZE   16384
 

Typedefs

typedef unsigned EBConnState
 
typedef unsigned EBCanConnect
 
typedef unsigned EBSwitch
 

Enumerations

enum  EConnState {
  eCS_NotInitiated = 0 , eCS_WriteRequest = 1 , eCS_FlushRequest = 2 , eCS_ReadHeader = 3 ,
  eCS_ReadBody = 4 , eCS_DoneBody = 5 , eCS_Discard = 7 , eCS_Eom = 0xF
}
 
enum  ECanConnect { fCC_None , fCC_Once , fCC_Unlimited }
 
enum  EExtractMode { eEM_Drop , eEM_Wait , eEM_Read , eEM_Flush }
 
enum  ERetry {
  eRetry_None = 0 , eRetry_Unused = 1 , eRetry_Redirect = 2 , eRetry_Redirect303 = 3 ,
  eRetry_Authenticate = 4 , eRetry_ProxyAuthenticate = 5
}
 
enum  EHTTP_Auth {
  eHTTP_AuthMissing = -3 , eHTTP_AuthUnsafe = -2 , eHTTP_AuthDone = -1 , eHTTP_AuthOK = 0 ,
  eHTTP_AuthError = 1 , eHTTP_AuthIllegal = 3 , eHTTP_AuthNotSupp = 2 , eHTTP_AuthConnect = 4
}
 
enum  EHTTP_Redirect {
  eHTTP_RedirectInvalid = -2 , eHTTP_RedirectUnsafe = -1 , eHTTP_RedirectOK = 0 , eHTTP_RedirectError = 1 ,
  eHTTP_RedirectTunnel = 2
}
 

Functions

static int x_UnsafeRedirectOK (SHttpConnector *uuu)
 
static EHTTP_Auth x_Authenticate (SHttpConnector *uuu, ERetry auth, int retry)
 
static int x_SameScheme (EBURLScheme scheme1, EBURLScheme scheme2)
 
static int x_SameProxyHost (const char *host1, const char *host2)
 
static unsigned short x_PortForScheme (unsigned port, EBURLScheme scheme)
 
static int x_SamePort (unsigned short port1, EBURLScheme scheme1, unsigned short port2, EBURLScheme scheme2)
 
static int s_CallAdjust (SHttpConnector *uuu, unsigned int arg)
 
static int x_SameOrDefPort (unsigned short port1, EBURLScheme scheme1, unsigned short port2, EBURLScheme scheme2)
 
static int x_RedirectOK (EBURLScheme scheme_to, const char *host_to, unsigned short port_to, EBURLScheme scheme_from, const char *host_from, unsigned short port_from)
 
static int x_IsWriteThru (const SHttpConnector *uuu)
 
static EHTTP_Redirect x_Redirect (SHttpConnector *uuu, const SRetry *retry)
 
static EIO_Status s_Adjust (SHttpConnector *uuu, const SRetry *retry, EIO_Status status, EExtractMode extract)
 
static char * x_HostPort (size_t reserve, const char *host, unsigned short xport)
 
static const char * x_SetHttpHostTag (SConnNetInfo *net_info)
 
static void x_SetRequestIDs (SConnNetInfo *net_info)
 
static int s_TunnelAdjust (SConnNetInfo *net_info, void *data, unsigned int arg)
 
static EIO_Status s_Connect (SHttpConnector *uuu, const STimeout *timeout, EExtractMode extract)
 
static void s_DropConnection (SHttpConnector *uuu, enum EConnState state)
 
static size_t x_WriteBuf (void *data, const void *buf, size_t size)
 
static EIO_Status s_ConnectAndSend (SHttpConnector *uuu, const STimeout *timeout, EExtractMode extract)
 
static int x_IsValidParam (const char *param, size_t paramlen)
 
static int x_IsValidChallenge (const char *text, size_t len)
 
static size_t x_PushbackBuf (void *data, const void *buf, size_t size)
 
static int x_Pushback (SOCK sock, BUF buf)
 
static EIO_Status x_ReadChunkHead (SHttpConnector *uuu, int first)
 
static EIO_Status x_ReadChunkTail (SHttpConnector *uuu)
 
static EIO_Status s_ReadData (SHttpConnector *uuu, void *buf, size_t size, size_t *n_read, EIO_ReadMethod how)
 
static int x_ErrorHeaderOnly (SHttpConnector *uuu)
 
static EIO_Status s_ReadHeader (SHttpConnector *uuu, SRetry *retry, EExtractMode extract)
 
static EIO_Status s_PreRead (SHttpConnector *uuu, const STimeout *timeout, EExtractMode extract)
 
static void x_Close (SHttpConnector *uuu)
 
static EIO_Status s_Read (SHttpConnector *uuu, void *buf, size_t size, size_t *n_read)
 
static EIO_Status s_Disconnect (SHttpConnector *uuu, const STimeout *timeout, EExtractMode extract)
 
static void s_OpenHttpConnector (SHttpConnector *uuu, const STimeout *timeout)
 
static void s_DestroyHttpConnector (SHttpConnector *uuu)
 
static const char * s_VT_GetType (CONNECTOR connector)
 
static char * s_VT_Descr (CONNECTOR connector)
 
static EIO_Status s_VT_Open (CONNECTOR connector, const STimeout *timeout)
 
static EIO_Status s_VT_Wait (CONNECTOR connector, EIO_Event event, const STimeout *timeout)
 
static EIO_Status s_VT_Write (CONNECTOR connector, const void *buf, size_t size, size_t *n_written, const STimeout *timeout)
 
static EIO_Status s_VT_Flush (CONNECTOR connector, const STimeout *timeout)
 
static EIO_Status s_VT_Read (CONNECTOR connector, void *buf, size_t size, size_t *n_read, const STimeout *timeout)
 
static EIO_Status s_VT_Status (CONNECTOR connector, EIO_Event dir)
 
static EIO_Status s_VT_Close (CONNECTOR connector, const STimeout *timeout)
 
static void s_Setup (CONNECTOR connector)
 
static void s_Destroy (CONNECTOR connector)
 
static const char * x_FixupUserHeader (SConnNetInfo *net_info, int has_ref, int *has_sid)
 
static EIO_Status s_CreateHttpConnector (const SConnNetInfo *net_info, const char *user_header, int tunnel, THTTP_Flags flags, void *user_data, FHTTP_Adjust adjust, SHttpConnector **http)
 
static CONNECTOR s_CreateConnector (const SConnNetInfo *net_info, const char *user_header, THTTP_Flags flags, FHTTP_ParseHeader parse_header, void *user_data, FHTTP_Adjust adjust, FHTTP_Cleanup cleanup)
 
CONNECTOR HTTP_CreateConnector (const SConnNetInfo *net_info, const char *user_header, THTTP_Flags flags)
 Same as HTTP_CreateConnector(net_info, flags, 0, 0, 0, 0) with the passed "user_header" overriding the value provided in "net_info->http_user_header". More...
 
CONNECTOR HTTP_CreateConnectorEx (const SConnNetInfo *net_info, THTTP_Flags flags, FHTTP_ParseHeader parse_header, void *user_data, FHTTP_Adjust adjust, FHTTP_Cleanup cleanup)
 Create new CONNECTOR structure to hit the specified URL using HTTP with either POST / GET (or ANY) method. More...
 
EIO_Status HTTP_CreateTunnelEx (const SConnNetInfo *net_info, THTTP_Flags flags, const void *init_data, size_t init_size, void *user_data, FHTTP_Adjust adjust, SOCK *sock)
 Create a tunnel to "net_info->host:net_info->port" via an HTTP proxy server located at "net_info->http_proxy_host:net_info->http_proxy_port". More...
 
EIO_Status HTTP_CreateTunnel (const SConnNetInfo *net_info, THTTP_Flags flags, SOCK *sock)
 Same as HTTP_CreateTunnelEx(net_info, flags, 0, 0, 0, 0, sock) More...
 
void HTTP_SetNcbiMessageHook (FHTTP_NcbiMessageHook hook)
 Set a message hook procedure for messages originating from NCBI via HTTP. More...
 

Variables

static const char kHttpHostTag [] = "Host: "
 
static const STimeout kZeroTimeout = {0, 0}
 
static int s_MessageIssued = 0
 
static FHTTP_NcbiMessageHook s_MessageHook = 0
 

Macro Definition Documentation

◆ HTTP_SOAK_READ_SIZE

#define HTTP_SOAK_READ_SIZE   16384

Definition at line 49 of file ncbi_http_connector.c.

◆ NCBI_USE_ERRCODE_X

#define NCBI_USE_ERRCODE_X   Connect_HTTP

Definition at line 46 of file ncbi_http_connector.c.

Typedef Documentation

◆ EBCanConnect

typedef unsigned EBCanConnect

Definition at line 80 of file ncbi_http_connector.c.

◆ EBConnState

typedef unsigned EBConnState

Definition at line 69 of file ncbi_http_connector.c.

◆ EBSwitch

typedef unsigned EBSwitch

Definition at line 82 of file ncbi_http_connector.c.

Enumeration Type Documentation

◆ ECanConnect

Enumerator
fCC_None 
fCC_Once 
fCC_Unlimited 

Definition at line 75 of file ncbi_http_connector.c.

◆ EConnState

enum EConnState
Enumerator
eCS_NotInitiated 
eCS_WriteRequest 
eCS_FlushRequest 
eCS_ReadHeader 
eCS_ReadBody 
eCS_DoneBody 
eCS_Discard 
eCS_Eom 

Definition at line 59 of file ncbi_http_connector.c.

◆ EExtractMode

Enumerator
eEM_Drop 
eEM_Wait 
eEM_Read 
eEM_Flush 

Definition at line 84 of file ncbi_http_connector.c.

◆ EHTTP_Auth

enum EHTTP_Auth
Enumerator
eHTTP_AuthMissing 
eHTTP_AuthUnsafe 
eHTTP_AuthDone 
eHTTP_AuthOK 
eHTTP_AuthError 
eHTTP_AuthIllegal 
eHTTP_AuthNotSupp 
eHTTP_AuthConnect 

Definition at line 188 of file ncbi_http_connector.c.

◆ EHTTP_Redirect

Enumerator
eHTTP_RedirectInvalid 
eHTTP_RedirectUnsafe 
eHTTP_RedirectOK 
eHTTP_RedirectError 
eHTTP_RedirectTunnel 

Definition at line 461 of file ncbi_http_connector.c.

◆ ERetry

enum ERetry
Enumerator
eRetry_None 
eRetry_Unused 
eRetry_Redirect 
eRetry_Redirect303 
eRetry_Authenticate 
eRetry_ProxyAuthenticate 

Definition at line 92 of file ncbi_http_connector.c.

Function Documentation

◆ s_Adjust()

static EIO_Status s_Adjust ( SHttpConnector uuu,
const SRetry retry,
EIO_Status  status,
EExtractMode  extract 
)
static

◆ s_CallAdjust()

static int s_CallAdjust ( SHttpConnector uuu,
unsigned int  arg 
)
static

◆ s_Connect()

static EIO_Status s_Connect ( SHttpConnector uuu,
const STimeout timeout,
EExtractMode  extract 
)
static

Definition at line 827 of file ncbi_http_connector.c.

References SHttpConnector::adjust, assert, BUF_Peek(), BUF_Size(), SHttpConnector::can_connect, SHttpConnector::chunked, CONN_PORT_HTTPS, SHttpConnector::conn_state, ConnNetInfo_Clone(), ConnNetInfo_Destroy(), ConnNetInfo_ExtendUserHeader(), ConnNetInfo_GetArgs(), ConnNetInfo_Log(), ConnNetInfo_OverrideUserHeader(), ConnNetInfo_SetUserHeader(), ConnNetInfo_URL(), CORE_GetLOG(), CORE_LOCK_READ, CORE_LOGF_ERRNO_X, CORE_LOGF_X, CORE_UNLOCK, SConnNetInfo::credentials, SConnNetInfo::debug_printout, eCS_Eom, eCS_NotInitiated, eCS_WriteRequest, eDebugPrintout_Data, eEM_Read, eIO_Success, eIO_Unknown, eLOG_Critical, eLOG_Error, eLOG_Note, eLOG_Trace, SHttpConnector::entity, eReqMethod_Any, eReqMethod_Connect, eReqMethod_Get, eReqMethod_Head, eReqMethod_Post, eReqMethod_v1, eRetry_Authenticate, eRetry_ProxyAuthenticate, eURL_Http, eURL_Https, fCC_None, fCC_Once, fHCC_UrlEncodeArgs, fHTTP_NoAutomagicSID, fHTTP_NoUpread, SConnNetInfo::firewall, SHttpConnector::flags, flags, fProxy_Http, fProxy_Https, free(), fSOCK_KeepAlive, fSOCK_LogDefault, fSOCK_LogOn, fSOCK_ReadOnWrite, fSOCK_Secure, SConnNetInfo::host, SHttpConnector::http_code, HTTP_CreateTunnelEx(), SConnNetInfo::http_proxy_host, SConnNetInfo::http_proxy_mask, SConnNetInfo::http_proxy_port, SConnNetInfo::http_push_auth, SConnNetInfo::http_user_header, SConnNetInfo::http_version, if(), len, malloc(), SConnNetInfo::max_try, NCBI_CXX_TOOLKIT, SHttpConnector::net_info, SHttpConnector::o_timeout, SConnNetInfo::pass, SConnNetInfo::path, SConnNetInfo::port, SConnNetInfo::req_method, SHttpConnector::retry, SHttpConnector::reused, s_Adjust(), s_CallAdjust(), s_TunnelAdjust(), SConnNetInfo::scheme, ncbi::grid::netcache::search::fields::size, SHttpConnector::sock, SOCK_Abort(), SOCK_Destroy, SOCK_IsSecure(), strdup, strndup, URL_ConnectEx(), URL_Encode(), SConnNetInfo::user, SHttpConnector::vhost, SHttpConnector::w_buf, SHttpConnector::w_len, x_Authenticate(), x_IsWriteThru(), x_SetHttpHostTag(), and x_SetRequestIDs().

Referenced by s_ConnectAndSend().

◆ s_ConnectAndSend()

static EIO_Status s_ConnectAndSend ( SHttpConnector uuu,
const STimeout timeout,
EExtractMode  extract 
)
static

◆ s_CreateConnector()

static CONNECTOR s_CreateConnector ( const SConnNetInfo net_info,
const char *  user_header,
THTTP_Flags  flags,
FHTTP_ParseHeader  parse_header,
void *  user_data,
FHTTP_Adjust  adjust,
FHTTP_Cleanup  cleanup 
)
static

◆ s_CreateHttpConnector()

static EIO_Status s_CreateHttpConnector ( const SConnNetInfo net_info,
const char *  user_header,
int  tunnel,
THTTP_Flags  flags,
void *  user_data,
FHTTP_Adjust  adjust,
SHttpConnector **  http 
)
static

◆ s_Destroy()

static void s_Destroy ( CONNECTOR  connector)
static

Definition at line 2730 of file ncbi_http_connector.c.

References free(), SConnectorTag::handle, and s_DestroyHttpConnector().

Referenced by s_CreateConnector().

◆ s_DestroyHttpConnector()

static void s_DestroyHttpConnector ( SHttpConnector uuu)
static

◆ s_Disconnect()

static EIO_Status s_Disconnect ( SHttpConnector uuu,
const STimeout timeout,
EExtractMode  extract 
)
static

◆ s_DropConnection()

static void s_DropConnection ( SHttpConnector uuu,
enum EConnState  state 
)
static

◆ s_OpenHttpConnector()

static void s_OpenHttpConnector ( SHttpConnector uuu,
const STimeout timeout 
)
static

◆ s_PreRead()

static EIO_Status s_PreRead ( SHttpConnector uuu,
const STimeout timeout,
EExtractMode  extract 
)
static

◆ s_Read()

static EIO_Status s_Read ( SHttpConnector uuu,
void *  buf,
size_t  size,
size_t *  n_read 
)
static

◆ s_ReadData()

static EIO_Status s_ReadData ( SHttpConnector uuu,
void *  buf,
size_t  size,
size_t *  n_read,
EIO_ReadMethod  how 
)
static

◆ s_ReadHeader()

static EIO_Status s_ReadHeader ( SHttpConnector uuu,
SRetry retry,
EExtractMode  extract 
)
static

Definition at line 1551 of file ncbi_http_connector.c.

References SHttpConnector::adjust, assert, BUF_AppendEx(), BUF_Erase(), BUF_Peek(), BUF_Read(), BUF_Size(), SHttpConnector::chunked, SHttpConnector::conn_state, ConnNetInfo_OverrideUserHeader(), ConnNetInfo_URL(), CORE_DATAF_X, CORE_LOGF_ERRNO_X, CORE_LOGF_X, SRetry::data, SConnNetInfo::debug_printout, eCS_ReadBody, eCS_ReadHeader, eDebugPrintout_Some, eEM_Wait, eHTTP_HeaderComplete, eHTTP_HeaderContinue, eHTTP_HeaderError, eHTTP_HeaderSuccess, eIO_Read, eIO_ReadPlain, eIO_Success, eIO_Timeout, eIO_Unknown, eLOG_Critical, eLOG_Error, eLOG_Note, eLOG_Trace, eLOG_Warning, eReqMethod_Connect, eReqMethod_Head, eRetry_Authenticate, eRetry_None, eRetry_ProxyAuthenticate, eRetry_Redirect, eRetry_Redirect303, SHttpConnector::expected, fatal(), fHTTP_KeepHeader, fHTTP_NoAutomagicSID, fHTTP_SuppressMessages, SHttpConnector::flags, free(), g_NcbiDefConnTimeout, SHttpConnector::http, SHttpConnector::http_code, HTTP_NCBI_MESSAGE, HTTP_NCBI_SID, SConnNetInfo::http_version, IO_StatusStr(), isspace(), SHttpConnector::keepalive, len, malloc(), SConnNetInfo::max_try, memmove, SRetry::mode, n, NCBI_BIGCOUNT_FORMAT_SPEC, SHttpConnector::net_info, SHttpConnector::parse_header, SHttpConnector::r_buf, SHttpConnector::received, SConnNetInfo::req_method, SHttpConnector::reused, s_MessageHook, s_MessageIssued, s_ReadData(), STimeoutTag::sec, ncbi::grid::netcache::search::fields::size, SHttpConnector::sock, SOCK_GetTimeout(), SOCK_SetTimeout(), SOCK_StripToPattern(), strncasecmp, text(), tmp, STimeoutTag::usec, SHttpConnector::user_data, verify, x_ErrorHeaderOnly(), and x_IsValidChallenge().

Referenced by s_PreRead().

◆ s_Setup()

static void s_Setup ( CONNECTOR  connector)
static

◆ s_TunnelAdjust()

static int s_TunnelAdjust ( SConnNetInfo net_info,
void *  data,
unsigned int  arg 
)
static

Definition at line 813 of file ncbi_http_connector.c.

References data, SHttpConnector::major_fault, and SHttpConnector::minor_fault.

Referenced by s_Connect().

◆ s_VT_Close()

static EIO_Status s_VT_Close ( CONNECTOR  connector,
const STimeout timeout 
)
static

◆ s_VT_Descr()

static char * s_VT_Descr ( CONNECTOR  connector)
static

Definition at line 2453 of file ncbi_http_connector.c.

References ConnNetInfo_URL(), and SConnectorTag::handle.

Referenced by s_Setup().

◆ s_VT_Flush()

static EIO_Status s_VT_Flush ( CONNECTOR  connector,
const STimeout timeout 
)
static

◆ s_VT_GetType()

static const char * s_VT_GetType ( CONNECTOR  connector)
static

Definition at line 2446 of file ncbi_http_connector.c.

Referenced by s_Setup().

◆ s_VT_Open()

static EIO_Status s_VT_Open ( CONNECTOR  connector,
const STimeout timeout 
)
static

Definition at line 2460 of file ncbi_http_connector.c.

References eIO_Success, SConnectorTag::handle, and s_OpenHttpConnector().

Referenced by s_Setup().

◆ s_VT_Read()

static EIO_Status s_VT_Read ( CONNECTOR  connector,
void *  buf,
size_t  size,
size_t *  n_read,
const STimeout timeout 
)
static

◆ s_VT_Status()

static EIO_Status s_VT_Status ( CONNECTOR  connector,
EIO_Event  dir 
)
static

◆ s_VT_Wait()

static EIO_Status s_VT_Wait ( CONNECTOR  connector,
EIO_Event  event,
const STimeout timeout 
)
static

◆ s_VT_Write()

static EIO_Status s_VT_Write ( CONNECTOR  connector,
const void *  buf,
size_t  size,
size_t *  n_written,
const STimeout timeout 
)
static

◆ x_Authenticate()

static EHTTP_Auth x_Authenticate ( SHttpConnector uuu,
ERetry  auth,
int  retry 
)
static

◆ x_Close()

static void x_Close ( SHttpConnector uuu)
static

◆ x_ErrorHeaderOnly()

static int x_ErrorHeaderOnly ( SHttpConnector uuu)
static

◆ x_FixupUserHeader()

static const char* x_FixupUserHeader ( SConnNetInfo net_info,
int  has_ref,
int has_sid 
)
static

◆ x_HostPort()

static char* x_HostPort ( size_t  reserve,
const char *  host,
unsigned short  xport 
)
static

Definition at line 730 of file ncbi_http_connector.c.

References malloc().

Referenced by x_SetHttpHostTag().

◆ x_IsValidChallenge()

static int x_IsValidChallenge ( const char *  text,
size_t  len 
)
static

Definition at line 1296 of file ncbi_http_connector.c.

References len, strncasecmp, text(), and x_IsValidParam().

Referenced by s_ReadHeader().

◆ x_IsValidParam()

static int x_IsValidParam ( const char *  param,
size_t  paramlen 
)
static

Definition at line 1270 of file ncbi_http_connector.c.

References assert, isspace(), and len.

Referenced by x_IsValidChallenge().

◆ x_IsWriteThru()

static int x_IsWriteThru ( const SHttpConnector uuu)
static

◆ x_PortForScheme()

static unsigned short x_PortForScheme ( unsigned  port,
EBURLScheme  scheme 
)
static

◆ x_Pushback()

static int x_Pushback ( SOCK  sock,
BUF  buf 
)
static

◆ x_PushbackBuf()

static size_t x_PushbackBuf ( void *  data,
const void *  buf,
size_t  size 
)
static

◆ x_ReadChunkHead()

static EIO_Status x_ReadChunkHead ( SHttpConnector uuu,
int  first 
)
static

◆ x_ReadChunkTail()

static EIO_Status x_ReadChunkTail ( SHttpConnector uuu)
static

◆ x_Redirect()

static EHTTP_Redirect x_Redirect ( SHttpConnector uuu,
const SRetry retry 
)
static

◆ x_RedirectOK()

static int x_RedirectOK ( EBURLScheme  scheme_to,
const char *  host_to,
unsigned short  port_to,
EBURLScheme  scheme_from,
const char *  host_from,
unsigned short  port_from 
)
static

◆ x_SameOrDefPort()

static int x_SameOrDefPort ( unsigned short  port1,
EBURLScheme  scheme1,
unsigned short  port2,
EBURLScheme  scheme2 
)
static

Definition at line 409 of file ncbi_http_connector.c.

References x_PortForScheme().

Referenced by x_RedirectOK().

◆ x_SamePort()

static int x_SamePort ( unsigned short  port1,
EBURLScheme  scheme1,
unsigned short  port2,
EBURLScheme  scheme2 
)
static

Definition at line 332 of file ncbi_http_connector.c.

References x_PortForScheme().

Referenced by s_CallAdjust(), and x_Redirect().

◆ x_SameProxyHost()

static int x_SameProxyHost ( const char *  host1,
const char *  host2 
)
static

Definition at line 293 of file ncbi_http_connector.c.

References CONN_HOST_LEN, SOCK_gethostbyaddr(), SOCK_gethostbyname(), and strcasecmp.

Referenced by s_CallAdjust().

◆ x_SameScheme()

static int x_SameScheme ( EBURLScheme  scheme1,
EBURLScheme  scheme2 
)
static

Definition at line 283 of file ncbi_http_connector.c.

References eURL_Http.

Referenced by s_CallAdjust().

◆ x_SetHttpHostTag()

static const char* x_SetHttpHostTag ( SConnNetInfo net_info)
static

◆ x_SetRequestIDs()

static void x_SetRequestIDs ( SConnNetInfo net_info)
static

◆ x_UnsafeRedirectOK()

static int x_UnsafeRedirectOK ( SHttpConnector uuu)
static

◆ x_WriteBuf()

static size_t x_WriteBuf ( void *  data,
const void *  buf,
size_t  size 
)
static

Variable Documentation

◆ kHttpHostTag

const char kHttpHostTag[] = "Host: "
static

Definition at line 163 of file ncbi_http_connector.c.

Referenced by x_SetHttpHostTag().

◆ kZeroTimeout

const STimeout kZeroTimeout = {0, 0}
static

Definition at line 164 of file ncbi_http_connector.c.

Referenced by s_DropConnection(), and x_Close().

◆ s_MessageHook

FHTTP_NcbiMessageHook s_MessageHook = 0
static

Definition at line 169 of file ncbi_http_connector.c.

Referenced by HTTP_SetNcbiMessageHook(), and s_ReadHeader().

◆ s_MessageIssued

int s_MessageIssued = 0
static

Definition at line 168 of file ncbi_http_connector.c.

Referenced by HTTP_SetNcbiMessageHook(), and s_ReadHeader().

Modified on Wed May 15 15:09:15 2024 by modify_doxy.py rev. 669887