aboutsummaryrefslogtreecommitdiff
path: root/src/filemanager.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-12-25 20:13:03 +0100
committerEven Rouault <even.rouault@spatialys.com>2019-12-27 11:14:16 +0100
commit2093aca0720949303410280912b61efd791d2f01 (patch)
treea69c5392ed6689a88d9d959ddb41107413efacc6 /src/filemanager.cpp
parentc4589fbe42e5fea07a03919d3484164f5fb70dd3 (diff)
downloadPROJ-2093aca0720949303410280912b61efd791d2f01.tar.gz
PROJ-2093aca0720949303410280912b61efd791d2f01.zip
Network: make CDN endpoint configurable either in proj.ini, PROJ_NETWORK_ENDPOINT or proj_context_set_url_endpoint()
Diffstat (limited to 'src/filemanager.cpp')
-rw-r--r--src/filemanager.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/filemanager.cpp b/src/filemanager.cpp
index d9a02632..97d7369e 100644
--- a/src/filemanager.cpp
+++ b/src/filemanager.cpp
@@ -772,6 +772,9 @@ int proj_context_set_network_callbacks(
/** Enable or disable network access.
*
+* This overrides the default endpoint in the PROJ configuration file or with
+* the PROJ_NETWORK environment variable.
+*
* @param ctx PROJ context, or NULL
* @param enable TRUE if network access is allowed.
* @return TRUE if network access is possible. That is either libcurl is
@@ -781,6 +784,8 @@ int proj_context_set_enable_network(PJ_CONTEXT *ctx, int enable) {
if (ctx == nullptr) {
ctx = pj_get_default_ctx();
}
+ // Load ini file, now so as to override its network settings
+ pj_load_ini(ctx);
ctx->networking.enabled_env_variable_checked = true;
ctx->networking.enabled = enable != FALSE;
#ifdef CURL_ENABLED
@@ -793,6 +798,25 @@ int proj_context_set_enable_network(PJ_CONTEXT *ctx, int enable) {
// ---------------------------------------------------------------------------
+/** Define the URL endpoint to query for remote grids.
+*
+* This overrides the default endpoint in the PROJ configuration file or with
+* the PROJ_NETWORK_ENDPOINT environment variable.
+*
+* @param ctx PROJ context, or NULL
+* @param url Endpoint URL. Must NOT be NULL.
+*/
+void proj_context_set_url_endpoint(PJ_CONTEXT *ctx, const char *url) {
+ if (ctx == nullptr) {
+ ctx = pj_get_default_ctx();
+ }
+ // Load ini file, now so as to override its network settings
+ pj_load_ini(ctx);
+ ctx->endpoint = url;
+}
+
+// ---------------------------------------------------------------------------
+
//! @cond Doxygen_Suppress
bool pj_context_is_network_enabled(PJ_CONTEXT *ctx) {
@@ -808,6 +832,7 @@ bool pj_context_is_network_enabled(PJ_CONTEXT *ctx) {
ci_equal(enabled, "YES") ||
ci_equal(enabled, "TRUE");
}
+ pj_load_ini(ctx);
ctx->networking.enabled_env_variable_checked = true;
return ctx->networking.enabled;
}