|
|
This appendix describes the LSCNCOM interface between the SAS/C socket library and the API.
The SAS/C socket interface, LSCNCOM, is a vendor independent socket library that is provided as part of the SAS/C compiler. This interface allows programs to be written that can use different vendors' TCP products at execution time without having to be recompiled.
The LSCNCOM interface relies on the SAS/C compiler and runtime library at the version 5.50 level or higher.
|
getnetbyname | getservbyport | setprotoent | getnetbyaddr |
| getpeerent | setservent | gethostbyname | getnetent |
| endpeerent | gethostbyaddr | getprotoent | endnetent |
| getprotobyname | getservent | endprotoent | getprotobynumber |
| setpeerent | endservent | getservbyname | setnetent |
Customers can run SAS/CONNECT or SAS/SHARE with Cisco IOS for S/390. In addition to the necessary Cisco IOS for S/390 maintenance for the SAS/C 5.50 socket library, customers also need the following:
AND
OR
The RPC portion of the SAS/CSL product has not been certified. Certification will be completed in a future release.
The LSCNCOM routine, and its alias L$CNCOM, should replace or be placed before the SAS-supplied version in the link-list search order. The routine is dynamically loaded on the first call to a SAS Socket Library function.
If you want to use the Cisco IOS for S/390 socket variables, you must define the following symbol in your source file. It must be placed before the #include statement. Use the following as a guide:
. . . #define _ _INTERLINK_TCPIP . . . #include <sys/socket.h>
The environment variables below are recognized by the LSCNCOM interface:
The subsystem name of the Cisco IOS for S/390 API task that was defined in the ACPCONxx parameter member. For compatibility with earlier releases, SUBSYS and TCPIP_MACH (first four bytes only) are also recognized.
Default: ACSS
Defines the order in which the DNR and SAS resolver are used:
| ONLY | Cisco IOS for S/390 resolver only, return OK or error |
| FIRST | Cisco IOS for S/390 is called first; SAS is called if there is an error |
| LAST | SAS is called first; Cisco IOS for S/390 is called if there is an error |
| NEVER | SAS resolver always, return OK or error |
These variables should be set prior to the first call to an LSCNCOM function. Either the PUTENV TSO command or inline (execute-time) parameters can be used to define or override the above variables.
Since it is difficult to delete permanent environment variables, the LSCNCOM interface treats a variable that is defined but has a null value as if it were not set. If none of the options are set, the default is used.
Default: ONLY
This table shows the configuration files used by the LSCNCOM interface, along with format documentation and equivalent parameter member for the DNR configuration. Either the files can be created with the expected names or environment variables can be setup to override the file names as documented in C-111.
| SAS/C Default MVS Names | UNIX File | MAN Page | Equivalent DNR PARM Member |
|---|---|---|---|
| id.ETC.PROTOCOLS | /etc/protocols | protocols(4) | DNRPRTxx |
| id.ETC.SERVICES | /etc/services | services(4) | Syntax differs; you must create this from the DNRSVCxx member or copy from the workstation.
The SAS resolver recognizes case-sensitive names, but DNRSLCxx is uppercase only. |
| id.ETC.HOSTS | /etc/hosts | hosts(4) | Syntax differs; you must create this from the DNRHSTxx member (static) or use the ICS or SAS resolver. |
| id.ETC.NETWORKS | /etc/networks | networks(4) | DNRNETxx
DNRNETxx should be unnumbered or the SAS resolver interprets the sequence field as an alias. |
| id.ETC.RESOLV.CONF | /etc/resolv.conf | resolv.conf(4) | No equivalent; you must extract information from DNRSVCxx (domain name) and DNRNSCxx (name servers) to create this file.
If no name servers are defined, static name resolution is used. See C-111. |
| id.ETC.RPC | /etc/rpc | rpc(4) | DNRRPCxx
The overrides can either be via a DD name or via a fully qualified data set name. |
This is an example of the environment variables used during the testing of these updates:
ICS_SUBSYS = acss X11R5_PREFIX = SASC.CSL100 ICS_RESOLVER = only DISPLAY = UNIX:0.0 ETC_PROTOCOLS = dsn:tcpics.parm(dnrprt00) ETC_NETWORKS = dsn:tcpics.parm(dnrnet00) ETC_RESOLV_CONF = dsn:tcpics.test.conf ETC_HOSTS = dsn:tcpics.test.hosts ETC_SERVICES = dsn:tcpics.test.service ETC_RPC = dsn:tcpics.parm(dnrrpc00)
|
|