1 #ifndef CONNECT___NCBI_CONNUTIL__H
2 #define CONNECT___NCBI_CONNUTIL__H
90 #define CONN_PORT_FTP 21
91 #define CONN_PORT_SSH 22
92 #define CONN_PORT_SMTP 25
93 #define CONN_PORT_HTTP 80
94 #define CONN_PORT_HTTPS 443
97 #define CONN_USER_LEN 63
98 #define CONN_PASS_LEN 63
99 #define CONN_HOST_LEN 255
100 #define CONN_PATH_LEN 4095
223 #define DEF_CONN_REG_SECTION "CONN"
225 #define REG_CONN_REQ_METHOD "REQ_METHOD"
226 #define DEF_CONN_REQ_METHOD "ANY"
228 #define REG_CONN_USER "USER"
229 #define DEF_CONN_USER ""
231 #define REG_CONN_PASS "PASS"
232 #define DEF_CONN_PASS ""
234 #define REG_CONN_HOST "HOST"
235 #define DEF_CONN_HOST "www.ncbi.nlm.nih.gov"
237 #define REG_CONN_PORT "PORT"
238 #define DEF_CONN_PORT 0
240 #define REG_CONN_PATH "PATH"
241 #define DEF_CONN_PATH "/Service/dispd.cgi"
243 #define REG_CONN_ARGS "ARGS"
244 #define DEF_CONN_ARGS ""
246 #define REG_CONN_HTTP_PROXY_HOST "HTTP_PROXY_HOST"
247 #define DEF_CONN_HTTP_PROXY_HOST ""
249 #define REG_CONN_HTTP_PROXY_PORT "HTTP_PROXY_PORT"
250 #define DEF_CONN_HTTP_PROXY_PORT ""
252 #define REG_CONN_HTTP_PROXY_USER "HTTP_PROXY_USER"
253 #define DEF_CONN_HTTP_PROXY_USER ""
255 #define REG_CONN_HTTP_PROXY_PASS "HTTP_PROXY_PASS"
256 #define DEF_CONN_HTTP_PROXY_PASS ""
258 #define REG_CONN_HTTP_PROXY_LEAK "HTTP_PROXY_LEAK"
259 #define DEF_CONN_HTTP_PROXY_LEAK ""
261 #define REG_CONN_HTTP_PROXY_SKIP "HTTP_PROXY_SKIP"
262 #define DEF_CONN_HTTP_PROXY_SKIP ""
264 #define REG_CONN_HTTP_PUSH_AUTH "HTTP_PUSH_AUTH"
265 #define DEF_CONN_HTTP_PUSH_AUTH ""
267 #define REG_CONN_TIMEOUT "TIMEOUT"
268 #define DEF_CONN_TIMEOUT 30.0
270 #define REG_CONN_MAX_TRY "MAX_TRY"
271 #define DEF_CONN_MAX_TRY 3
273 #define REG_CONN_EXTERNAL "EXTERNAL"
274 #define DEF_CONN_EXTERNAL ""
276 #define REG_CONN_FIREWALL "FIREWALL"
277 #define DEF_CONN_FIREWALL ""
279 #define REG_CONN_STATELESS "STATELESS"
280 #define DEF_CONN_STATELESS ""
282 #define REG_CONN_LB_DISABLE "LB_DISABLE"
283 #define DEF_CONN_LB_DISABLE ""
285 #define REG_CONN_HTTP_VERSION "HTTP_VERSION"
286 #define DEF_CONN_HTTP_VERSION 0
288 #define REG_CONN_DEBUG_PRINTOUT "DEBUG_PRINTOUT"
289 #define DEF_CONN_DEBUG_PRINTOUT ""
291 #define REG_CONN_HTTP_USER_HEADER "HTTP_USER_HEADER"
292 #define DEF_CONN_HTTP_USER_HEADER ""
294 #define REG_CONN_HTTP_REFERER "HTTP_REFERER"
295 #define DEF_CONN_HTTP_REFERER 0
298 #define REG_CONN_LOCAL_ENABLE "LOCAL_ENABLE"
299 #define REG_CONN_LBSMD_DISABLE "LBSMD_DISABLE"
300 #define REG_CONN_LBDNS_ENABLE "LBDNS_ENABLE"
301 #define REG_CONN_LINKERD_ENABLE "LINKERD_ENABLE"
302 #define REG_CONN_NAMERD_ENABLE "NAMERD_ENABLE"
303 #define REG_CONN_DISPD_DISABLE "DISPD_DISABLE"
306 #define REG_CONN_IMPLICIT_SERVER_TYPE "IMPLICIT_SERVER_TYPE"
309 #define REG_CONN_SERVICE_NAME DEF_CONN_REG_SECTION "_" "SERVICE_NAME"
312 #define REG_CONN_LOCAL_SERVICES DEF_CONN_REG_SECTION "_" "LOCAL_SERVICES"
313 #define REG_CONN_LOCAL_SERVER DEF_CONN_REG_SECTION "_" "LOCAL_SERVER"
316 #define REG_CONN_LBDNS_DOMAIN DEF_CONN_REG_SECTION "_" "LBDNS_DOMAIN"
317 #define REG_CONN_LBDNS_DEBUG DEF_CONN_REG_SECTION "_" "LBDNS_DEBUG"
318 #define REG_CONN_LBDNS_HOST DEF_CONN_REG_SECTION "_" "LBDNS_HOST"
319 #define REG_CONN_LBDNS_PORT DEF_CONN_REG_SECTION "_" "LBDNS_PORT"
323 #define DEF_CONN_LOCAL_IPS "LOCAL_IPS"
324 #define REG_CONN_LOCAL_IPS DEF_CONN_REG_SECTION "_" DEF_CONN_LOCAL_IPS
325 #define DEF_CONN_LOCAL_IPS_DISABLE "NONE"
355 (
const char* service,
359 const char* def_value
779 size_t content_length,
782 const char* user_header,
812 #ifndef NCBI_DEPRECATED
813 # define NCBI_CONNUTIL_DEPRECATED
815 # define NCBI_CONNUTIL_DEPRECATED NCBI_DEPRECATED
823 size_t content_length,
826 const char* user_header,
893 (
const void* src_buf,
910 (
const void* src_buf,
916 const char* allow_symbols
932 (
const void* src_buf,
948 (
const void* src_buf,
954 const char* allow_symbols
1023 #define CONN_CONTENT_TYPE_LEN 63
1025 #define MAX_CONTENT_TYPE_LEN (CONN_CONTENT_TYPE_LEN+1)
static CS_CONNECTION * conn
unsigned int TSOCK_Flags
bitwise "OR" of ESOCK_Flags
ELOG_Level
Log severity level.
int ConnNetInfo_ExtendUserHeader(SConnNetInfo *net_info, const char *header)
int ConnNetInfo_AddPath(SConnNetInfo *net_info, const char *path)
int ConnNetInfo_SetupStandardArgs(SConnNetInfo *net_info, const char *service)
unsigned short http_proxy_port
int ConnNetInfo_SetTimeout(SConnNetInfo *net_info, const STimeout *timeout)
int ConnNetInfo_OverrideUserHeader(SConnNetInfo *net_info, const char *header)
void ConnNetInfo_DeleteAllArgs(SConnNetInfo *net_info, const char *args)
int ConnNetInfo_ParseURL(SConnNetInfo *net_info, const char *url)
char * MIME_ComposeContentTypeEx(EMIME_Type type, EMIME_SubType subtype, EMIME_Encoding encoding, char *buf, size_t bufsize)
int ConnNetInfo_SetArgs(SConnNetInfo *net_info, const char *args)
int ConnNetInfo_AppendUserHeader(SConnNetInfo *net_info, const char *header)
SConnNetInfo * ConnNetInfo_Clone(const SConnNetInfo *net_info)
int ConnNetInfo_AppendArg(SConnNetInfo *net_info, const char *arg, const char *val)
const char * ConnNetInfo_GetValue(const char *service, const char *param, char *value, size_t value_size, const char *def_value)
EIO_Status CONN_StripToPattern(CONN conn, const void *pattern, size_t pattern_size, BUF *discard, size_t *n_discarded)
Discard all input data before (and including) the first occurrence of a "pattern".
int URL_Decode(const void *src_buf, size_t src_size, size_t *src_read, void *dst_buf, size_t dst_size, size_t *dst_written)
const char * ConnNetInfo_GetArgs(const SConnNetInfo *net_info)
int ConnNetInfo_PreOverrideArg(SConnNetInfo *net_info, const char *arg, const char *val)
SOCK URL_Connect(const char *host, unsigned short port, const char *path, const char *args, EReqMethod req_method, size_t content_length, const STimeout *o_timeout, const STimeout *rw_timeout, const char *user_header, int encode_args, TSOCK_Flags flags)
char * ConnNetInfo_URL(const SConnNetInfo *net_info)
int ConnNetInfo_PostOverrideArg(SConnNetInfo *net_info, const char *arg, const char *val)
int ConnNetInfo_SetUserHeader(SConnNetInfo *net_info, const char *header)
int MIME_ParseContentTypeEx(const char *str, EMIME_Type *type, EMIME_SubType *subtype, EMIME_Encoding *encoding)
void ConnNetInfo_DeleteUserHeader(SConnNetInfo *net_info, const char *header)
void URL_EncodeEx(const void *src_buf, size_t src_size, size_t *src_read, void *dst_buf, size_t dst_size, size_t *dst_written, const char *allow_symbols)
void ConnNetInfo_Log(const SConnNetInfo *net_info, ELOG_Level sev, LOG log)
const char * http_user_header
int ConnNetInfo_DeleteArg(SConnNetInfo *net_info, const char *arg)
EIO_Status URL_ConnectEx(const char *host, unsigned short port, const char *path, const char *args, TReqMethod req_method, size_t content_length, const STimeout *o_timeout, const STimeout *rw_timeout, const char *user_header, NCBI_CRED cred, TSOCK_Flags flags, SOCK *sock)
EIO_Status SOCK_StripToPattern(SOCK sock, const void *pattern, size_t pattern_size, BUF *discard, size_t *n_discarded)
SConnNetInfo * ConnNetInfo_Create(const char *service)
int ConnNetInfo_PrependArg(SConnNetInfo *net_info, const char *arg, const char *val)
void URL_Encode(const void *src_buf, size_t src_size, size_t *src_read, void *dst_buf, size_t dst_size, size_t *dst_written)
#define NCBI_CONNUTIL_DEPRECATED
int ConnNetInfo_Boolean(const char *str)
EBDebugPrintout debug_printout
int URL_DecodeEx(const void *src_buf, size_t src_size, size_t *src_read, void *dst_buf, size_t dst_size, size_t *dst_written, const char *allow_symbols)
int ConnNetInfo_SetPath(SConnNetInfo *net_info, const char *path)
const char * http_referer
void ConnNetInfo_Destroy(SConnNetInfo *net_info)
int ConnNetInfo_SetFrag(SConnNetInfo *net_info, const char *frag)
EIO_Status BUF_StripToPattern(BUF buffer, const void *pattern, size_t pattern_size, BUF *discard, size_t *n_discarded)
@ eFWMode_Legacy
Relay, no firewall.
@ eFWMode_Firewall
Regular firewall ports only, no fallback.
@ eFWMode_Adaptive
Regular firewall ports first, then fallback.
@ eFWMode_Fallback
Fallback ports only (w/o trying any regular)
#define NCBI_XCONNECT_EXPORT
static pcre_uint8 * buffer
static const char * str(char *buf, int n)