The proxy is an application server program which listens for connection requests from the Client, starts the required 4gl program, and then maintains communications back to the front end client.
The proxy allows the use of a Client behind firewalls and on Dynamic IP addresses.
In order to use the proxy - you need to set up 2 environment variables :
PIPEDIR This points to a directory where the proxy will store some temporary named pipe files.
BASEPROGRAMS This points to a directory where the 4gl applications exist. This is used to ensure that users cannot execute arbitrary programs - and can only use those which you specify..
When a Client connects to the proxy – there is a brief handshake – which involves :
PROTOCOL? → UIVERSION 1.0
PROGRAMNAME? → <program to execute>
USER? → <username>
PASSWORD? → <password>
The username/password combination must exist in the password file. The password file ($A4GL_PROXYPASSWD) is read and must contain username:password combinations.
The passwords will be encrypted with a simple password encryption mechanism – so passwords are not stored in a very secure way, but can at least not be read in plain text. Encrypted passwords begin with an ’!’, this means that a normal password cannot begin with a ’!’.
Note: All processes run as the same user as the Proxy. The username which was passed in will be set as the environment variable PROXYUSER
The proxy program is called proxy. If it is not in your PATH, you may have to compile it from the source tar ball. Look for it in the subdirectory:
lib/libui/ui_xml