-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ADBDEV-6682: Implement TLS options for PXF external tables #141
base: pxf-6.x
Are you sure you want to change the base?
Changes from 4 commits
9e1cd1e
a714710
7ab5e3f
fe251fd
ba31ada
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -76,6 +76,18 @@ get_authority(void) | |||||||||||||||||||||||||||||||
return psprintf("%s:%d", get_pxf_host(), get_pxf_port()); | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
const char * | ||||||||||||||||||||||||||||||||
get_pxf_protocol(void) | ||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||
const char *proto = getenv(ENV_PXF_PROTOCOL); | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
if (proto == NULL) { | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. An opening bracket after There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. okay |
||||||||||||||||||||||||||||||||
proto = PXF_DEFAULT_PROTOCOL; | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
return proto; | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
/* Returns the PXF Host defined in the PXF_HOST | ||||||||||||||||||||||||||||||||
* environment variable or the default when undefined | ||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||
|
@@ -116,6 +128,85 @@ get_pxf_port(void) | |||||||||||||||||||||||||||||||
return port; | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
const char * | ||||||||||||||||||||||||||||||||
get_pxf_ssl_keypasswd(void) | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. how about only two functions const char *getenv_char(const char *name, const char *default);
long getenv_long(const char *name, long default); There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nice idea, implemented. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Actually, I meant to get rid of the new There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. get_pxf_ssl_* functions keep PXF-related setup isolated in the pxfutils.c, continuing tradition started with get_pxf_port(), get_authority(), etc. It keeps code less coupled. |
||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||
const char *proto = getenv(ENV_PXF_SSL_KEYPASSWD); | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
if (proto == NULL) | ||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||
proto = PXF_DEFAULT_SSL_KEYPASSWD; | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
return proto; | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
const char * | ||||||||||||||||||||||||||||||||
get_pxf_ssl_cacert(void) | ||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||
const char *cacert = getenv(ENV_PXF_SSL_CACERT); | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
if (cacert == NULL) | ||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||
cacert = PXF_DEFAULT_SSL_CACERT; | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
return cacert; | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
const char * | ||||||||||||||||||||||||||||||||
get_pxf_ssl_cert(void) | ||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||
const char *cert = getenv(ENV_PXF_SSL_CERT); | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
if (cert == NULL) | ||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||
cert = PXF_DEFAULT_SSL_CERT; | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
return cert; | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
const char * | ||||||||||||||||||||||||||||||||
get_pxf_ssl_key(void) | ||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||
const char *key = getenv(ENV_PXF_SSL_KEY); | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
if (key == NULL) | ||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||
key = PXF_DEFAULT_SSL_KEY; | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
return key; | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
const char * | ||||||||||||||||||||||||||||||||
get_pxf_ssl_certtype(void) | ||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||
const char *certtype = getenv(ENV_PXF_SSL_CERT_TYPE); | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
if (certtype == NULL) | ||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||
certtype = PXF_DEFAULT_SSL_CERT_TYPE; | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
return certtype; | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
long | ||||||||||||||||||||||||||||||||
get_pxf_ssl_verifypeer(void) | ||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||
const char *verify_peer_var = getenv(ENV_PXF_SSL_VERIFY_PEER); | ||||||||||||||||||||||||||||||||
long verifypeer = PXF_DEFAULT_SSL_VERIFY_PEER; | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
if (verify_peer_var != NULL) | ||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||
verifypeer = atol(verify_peer_var); | ||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
return verifypeer; | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I suggest to remove the verifypeer variable
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This code rewritten now. |
||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
/* Returns the namespace (schema) name for a given namespace oid */ | ||||||||||||||||||||||||||||||||
char * | ||||||||||||||||||||||||||||||||
GetNamespaceName(Oid nsp_oid) | ||||||||||||||||||||||||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
okay