diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2020-02-23 19:45:20 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2020-02-24 10:32:24 +0100 |
| commit | 25f8c03774bd639af9e07f616211caada9d307f0 (patch) | |
| tree | 84d8bf3644da6398cd0abeed0a5435f9863d727c /src/networkfilemanager.cpp | |
| parent | 57595327b253f23ba4330fb1cda3d7bb66bbc81d (diff) | |
| download | PROJ-25f8c03774bd639af9e07f616211caada9d307f0.tar.gz PROJ-25f8c03774bd639af9e07f616211caada9d307f0.zip | |
Expose proj_context_is_network_enabled() in C API
Diffstat (limited to 'src/networkfilemanager.cpp')
| -rw-r--r-- | src/networkfilemanager.cpp | 48 |
1 files changed, 28 insertions, 20 deletions
diff --git a/src/networkfilemanager.cpp b/src/networkfilemanager.cpp index d252fd84..28d8baa2 100644 --- a/src/networkfilemanager.cpp +++ b/src/networkfilemanager.cpp @@ -2023,6 +2023,32 @@ int proj_context_set_enable_network(PJ_CONTEXT *ctx, int enable) { #endif } +// --------------------------------------------------------------------------- + +/** Return if network access is enabled. +* +* @param ctx PROJ context, or NULL +* @return TRUE if network access has been enabled +* @since 7.0 +*/ +int proj_context_is_network_enabled(PJ_CONTEXT *ctx) { + if (ctx == nullptr) { + ctx = pj_get_default_ctx(); + } + if (ctx->networking.enabled_env_variable_checked) { + return ctx->networking.enabled; + } + const char *enabled = getenv("PROJ_NETWORK"); + if (enabled && enabled[0] != '\0') { + ctx->networking.enabled = ci_equal(enabled, "ON") || + ci_equal(enabled, "YES") || + ci_equal(enabled, "TRUE"); + } + pj_load_ini(ctx); + ctx->networking.enabled_env_variable_checked = true; + return ctx->networking.enabled; +} + //! @endcond // --------------------------------------------------------------------------- @@ -2177,7 +2203,7 @@ int proj_is_download_needed(PJ_CONTEXT *ctx, const char *url_or_filename, if (ctx == nullptr) { ctx = pj_get_default_ctx(); } - if (!pj_context_is_network_enabled(ctx)) { + if (!proj_context_is_network_enabled(ctx)) { pj_log(ctx, PJ_LOG_ERROR, "Networking capabilities are not enabled"); return false; } @@ -2313,7 +2339,7 @@ int proj_download_file(PJ_CONTEXT *ctx, const char *url_or_filename, if (ctx == nullptr) { ctx = pj_get_default_ctx(); } - if (!pj_context_is_network_enabled(ctx)) { + if (!proj_context_is_network_enabled(ctx)) { pj_log(ctx, PJ_LOG_ERROR, "Networking capabilities are not enabled"); return false; } @@ -2503,24 +2529,6 @@ int proj_download_file(PJ_CONTEXT *ctx, const char *url_or_filename, //! @cond Doxygen_Suppress -bool pj_context_is_network_enabled(PJ_CONTEXT *ctx) { - if (ctx == nullptr) { - ctx = pj_get_default_ctx(); - } - if (ctx->networking.enabled_env_variable_checked) { - return ctx->networking.enabled; - } - const char *enabled = getenv("PROJ_NETWORK"); - if (enabled && enabled[0] != '\0') { - ctx->networking.enabled = ci_equal(enabled, "ON") || - ci_equal(enabled, "YES") || - ci_equal(enabled, "TRUE"); - } - pj_load_ini(ctx); - ctx->networking.enabled_env_variable_checked = true; - return ctx->networking.enabled; -} - // --------------------------------------------------------------------------- std::string pj_context_get_grid_cache_filename(PJ_CONTEXT *ctx) { |
