mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-12-09 08:11:38 +08:00
79e38de840
Add the ability to set some additional curlopt values via .daprc (aka .dodsrc). This effects both DAP2 and DAP4 protocols. Related issues: [1] re: esupport: KOZ-821332 [2] re: github issue https://github.com/Unidata/netcdf4-python/issues/836 [3] re: github issue https://github.com/Unidata/netcdf-c/issues/1074 1. CURLOPT_BUFFERSIZE: Relevant to [1]. Allow user to set the read/write buffersizes used by curl. This is done by adding the following to .daprc (aka .dodsrc): HTTP.READ.BUFFERSIZE=n where n is the buffersize in bytes. There is a built-in (to curl) limit of 512k for this value. 2. CURLOPT_TCP_KEEPALIVE (and CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL): Relevant (maybe) to [2] and [3]. Allow the user to turn on KEEPALIVE This is done by adding the following to .daprc (aka .dodsrc): HTTP.KEEPALIVE=on|n/m If the value is "on", then simply enable default KEEPALIVE. If the value is n/m, then enable KEEPALIVE and set KEEPIDLE to n and KEEPINTVL to m.
39 lines
1.1 KiB
C
39 lines
1.1 KiB
C
/*********************************************************************
|
|
* Copyright 2016, UCAR/Unidata
|
|
* See netcdf/COPYRIGHT file for copying and redistribution conditions.
|
|
*********************************************************************/
|
|
|
|
#ifndef D4CURLFUNCTIONS_H
|
|
#define D4CURLFUNCTIONS_H
|
|
|
|
/* Aliases to older names */
|
|
#ifndef HAVE_CURLOPT_KEYPASSWD
|
|
#define CURLOPT_KEYPASSWD CURLOPT_SSLKEYPASSWD
|
|
#endif
|
|
#ifndef HAVE_CURLINFO_RESPONSE_CODE
|
|
#define CURLINFO_RESPONSE_CODE CURLINFO_HTTP_CODE
|
|
#endif
|
|
|
|
enum CURLFLAGTYPE {CF_UNKNOWN=0,CF_OTHER=1,CF_STRING=2,CF_LONG=3};
|
|
struct CURLFLAG {
|
|
const char* name;
|
|
int flag;
|
|
int value;
|
|
enum CURLFLAGTYPE type;
|
|
};
|
|
|
|
extern ncerror NCD4_set_curlopt(NCD4INFO* state, int flag, void* value);
|
|
|
|
extern ncerror NCD4_set_flags_perfetch(NCD4INFO*);
|
|
extern ncerror NCD4_set_flags_perlink(NCD4INFO*);
|
|
|
|
extern ncerror NCD4_set_curlflag(NCD4INFO*,int);
|
|
|
|
extern void NCD4_curl_debug(NCD4INFO* state);
|
|
|
|
extern struct CURLFLAG* NCD4_curlflagbyname(const char* name);
|
|
extern void NCD4_curl_protocols(NCD4INFO*);
|
|
extern ncerror NCD4_get_rcproperties(NCD4INFO* state);
|
|
|
|
#endif /*D4CURLFUNCTIONS_H*/
|