Gen runtimes contain static curl code - impacts "Call External" use of latest curl

book

Article ID: 224565

calendar_today

Updated On:

Products

CA Gen CA Gen - Workstation Toolset

Issue/Introduction

This relates to using the 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://someproxy:some_https_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?

Environment

Release : 8.6

Component : CA Gen Run Time, Blockmode

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 next year (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. 
The proposed tentative target for delivery is April 2022 subject to any unforeseen problems.

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.