mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-11-27 07:30:33 +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.
42 lines
1.4 KiB
C
42 lines
1.4 KiB
C
/*********************************************************************
|
|
* Copyright 2016, UCAR/Unidata
|
|
* See netcdf/COPYRIGHT file for copying and redistribution conditions.
|
|
*********************************************************************/
|
|
|
|
#include "d4includes.h"
|
|
#include "d4curlfunctions.h"
|
|
|
|
/* Define supported curl flags */
|
|
struct CURLFLAG curlopts[] = {
|
|
#ifdef HAVE_CURLOPT_BUFFERSIZE
|
|
{"CURLOPT_BUFFERSIZE",CURLOPT_BUFFERSIZE,98,CF_LONG},
|
|
#endif
|
|
{"CURLOPT_PROXYUSERPWD",CURLOPT_PROXYUSERPWD,10006,CF_STRING},
|
|
{"CURLOPT_SSLCERT",CURLOPT_SSLCERT,10025,CF_STRING},
|
|
{"CURLOPT_SSLKEY",CURLOPT_SSLKEY,10087,CF_STRING},
|
|
#ifdef HAVE_CURLOPT_KEYPASSWD
|
|
{"CURLOPT_SSLKEYPASSWD",CURLOPT_SSLKEYPASSWD,CURLOPT_KEYPASSWD,CF_STRING},
|
|
#endif
|
|
{"CURLOPT_SSL_VERIFYHOST",CURLOPT_SSL_VERIFYHOST,81,CF_LONG},
|
|
{"CURLOPT_SSL_VERIFYPEER",CURLOPT_SSL_VERIFYPEER,64,CF_LONG},
|
|
#ifdef HAVE_CURLOPT_KEEPALIVE
|
|
{"CURLOPT_TCP_KEEPALIVE",CURLOPT_TCP_KEEPALIVE,213,CF_LONG},
|
|
#endif
|
|
{"CURLOPT_TIMEOUT",CURLOPT_TIMEOUT,13,CF_LONG},
|
|
{"CURLOPT_USERAGENT",CURLOPT_USERAGENT,10018,CF_STRING},
|
|
{"CURLOPT_USERPWD",CURLOPT_USERPWD,10005,CF_STRING},
|
|
{"CURLOPT_USE_SSL",CURLOPT_USE_SSL,119,CF_LONG},
|
|
{"CURLOPT_VERBOSE",CURLOPT_VERBOSE,41,CF_LONG},
|
|
{NULL,0}
|
|
};
|
|
|
|
struct CURLFLAG*
|
|
NCD4_curlflagbyname(const char* name)
|
|
{
|
|
struct CURLFLAG* p;
|
|
for(p=curlopts;p->name;p++) {
|
|
if(strcmp(p->name,name)==0) return p;
|
|
}
|
|
return NULL;
|
|
}
|