2
0
mirror of https://github.com/Unidata/netcdf-c.git synced 2024-12-21 08:39:46 +08:00
netcdf-c/include/ncauth.h
Dennis Heimbigner e31ce10842 Enable ACCEPT_ENCODING on DAP requests
re: PR https://github.com/Unidata/netcdf-c/issues/2622

H/T Nathan Potter for finding this.

Apparently the existing library DAP code for supporting
compressed http responses was disabled.

So:
1. enable CURLOPT_ACCEPT_ENCODING by default
2. Add a new HTTP.ENCODE for .dodsrc to allow it to be disabled.
2023-02-16 20:21:22 -07:00

71 lines
2.0 KiB
C

/*
Copyright (c) 1998-2018 University Corporation for Atmospheric Research/Unidata
See COPYRIGHT for license information.
*/
/*
Common authorization tracking.
Currently for DAP2 and DAP4 protocols.
Every curl connection will need a copy of this.
*/
#ifndef NCAUTH_H
#define NCAUTH_H
/* Need these support includes */
#include "ncrc.h"
typedef struct NCauth {
struct curlflags {
int proto_https; /* is https: supported? */
int encode; /*turn on CURLOPT_ACCEPT_ENCODING*/
int verbose; /*CURLOPT_VERBOSE*/
int timeout; /*CURLOPT_TIMEOUT*/
int connecttimeout; /*CURLOPT_CONNECTTIMEOUT*/
int maxredirs; /*CURLOPT_MAXREDIRS*/
char* useragent; /*CURLOPT_USERAGENT*/
int cookiejarcreated;
char* cookiejar; /*CURLOPT_COOKIEJAR,CURLOPT_COOKIEFILE*/
char* netrc; /*CURLOPT_NETRC,CURLOPT_NETRC_FILE*/
} curlflags;
struct ssl {
int verifypeer; /* CURLOPT_SSL_VERIFYPEER;
do not do this when cert might be self-signed
or temporarily incorrect */
int verifyhost; /* CURLOPT_SSL_VERIFYHOST; for client-side verification */
char* certificate; /*CURLOPT_SSLCERT*/
char* key; /*CURLOPT_SSLKEY*/
char* keypasswd; /*CURLOPT_SSLKEYPASSWD*/
char* cainfo; /* CURLOPT_CAINFO; certificate authority */
char* capath; /*CURLOPT_CAPATH*/
} ssl;
struct proxy {
char *host; /*CURLOPT_PROXY*/
int port; /*CURLOPT_PROXYPORT*/
char* user; /*CURLOPT_PROXYUSERNAME*/
char* pwd; /*CURLOPT_PROXYPASSWORD*/
} proxy;
struct credentials {
char *user; /*CURLOPT_USERNAME*/
char *pwd; /*CURLOPT_PASSWORD*/
} creds;
char* s3profile;
} NCauth;
#if defined(__cplusplus)
extern "C" {
#endif
extern int NC_authsetup(NCauth**, NCURI*);
extern void NC_authfree(NCauth*);
extern char* NC_combinehostport(NCURI*);
extern int NC_parsecredentials(const char* userpwd, char** userp, char** pwdp);
extern int NC_authgets3creds(NCauth* auth, const char* profile, const char** accessidp, const char** secretkeyp);
#if defined(__cplusplus)
}
#endif
#endif /*NCAUTH_H*/