Gen 8.6 runtimes contain static curl code - "Call External"
search cancel

Gen 8.6 runtimes contain static curl code - "Call External"

book

Article ID: 224565

calendar_today

Updated On:

Products

Gen

Issue/Introduction

This relates to using the Gen 8.6 Call External SOAP Web Service feature to invoke SOAP Web Services from within a Gen application.

The Gen Linux runtime has some curl code statically linked into the runtime libraries.
Strings from the Gen runtime indicate it was built with libcurl 7-44.
It is required to use a newer version of curl to support an encrypted proxy which was first delivered in version 7-52 (2016) e.g. using environment variable http_proxy:
http_proxy=https://<proxy_hostname>:<proxy_port>
(Intentionally using a http_proxy as relying on the man-in-the-middle proxy accessing the data, therefore tunnelling with encrypted data via a proxy is not suitable.)
Also, need to be able to access the more recent curl features as they impact security.

As the version of curl Gen was built with pre-dates the above curl features, the static linking of curl into the Gen runtime means that only the curl features of its old version can be used.
Can the Gen runtime be changed so it uses a dynamic library for the curl calls?

Resolution

Curl objects have been inside the Gen binaries for several years and moving to dynamically linking curl is a sizeable task because currently curl is statically linked into runtime libraries (libabrt), the aefad and the middleware that supports Web Service cooperative flows on almost every platform.
There is already a project being planned for early 2022 to update the version of the curl library used (along with some other statically linked 3rd party objects), so the change to dynamically linking curl could be part of that. 

Updated status: 2022 PTF RTX86215/LU04760 for Linux also included in later Gen 8.6.3 Consolidation PTF RTX86300/LU06353 fixes this problem.

Additional Information

This situation applies to all Gen distributed OS platforms where Call External can be used with Gen C applications i.e. UNIX, Linux, Windows.
The fixes for all platforms are in their Gen 8.6.3 Consolidation PTFs. See Gen 8.6 Solutions & Patches for further details and the latest PTFs.