A - Page 1 - ----------------------------------------------------------------------- | README file for POSIX V5.0A, SOCKETS/XTI for POSIX | | Edition: April 2007 | ----------------------------------------------------------------------- This file contains the known changes to the following manual: [1] POSIX V5.0A SOCKETS/XTI for POSIX Edition November 2004 Fujitsu-Siemens Computers 2007-03-21 A - Page 2 - Table of Contents ================= 1 Installation ........................................ Page 3 2 Restrictions ........................................ Page 4 3 Notice .............................................. Page 4 4 Functions ........................................... Page 5 4.1 Additional Functions ................................ Page 5 4.2 Multihoming ......................................... Page 5 4.3 Omitted Functions ................................... Page 6 A - Page 3 - 1 Installation Assumptions for the installation: - The subsystem POSIX must be running - The subsystem POSPRRTS must be running - The following files can be be installed by IMON in BS2000: MODE SHARE ACCESS MIGRATE $.SYSLIB.POSIX-SOCKETS.050 390 Y R I $.SRMLIB.POSIX-SOCKETS.050 RISC Y R I $.SPMLIB.POSIX-SOCKETS.050 SP04 Y R I $.SYSRME.POSIX-SOCKETS.050.D COM Y R I $.SYSRME.POSIX-SOCKETS.050.E COM Y R I $.SYSSII.POSIX-SOCKETS.050 COM Y R A $.SYSLNK.POSIX-SOCKETS.050.PTH COM Y R I $.SPULNK.POSIX-SOCKETS.050.PTH SP04 Y R I - The SYSLIB.POSIX-SOCKETS.050 contains the header-files and the modules in the /390 format for compiling and linking in BS2000 and for installing the Sockets library /usr/lib/libsocket.a into the POSIX filesystem. - The SRMLIB.POSIX-SOCKETS.050 contains the header-files and the modules in the RISC format for compiling and linking in BS2000 and for installing the Sockets library /usr/lib/libsocket.a or /usr/lib/RISC/libsocket.a into the POSIX filesystem. - The SPMLIB.POSIX-SOCKETS.050 contains the header-files and the modules in the SP04 (Sparc) format for compiling and linking in BS2000 and for installing the Sockets library /usr/lib/libsocket.a or /usr/lib/SP04/libsocket.a into the POSIX filesystem. - The SYSLNK.POSIX-SOCKETS.050.PTH and SPULNK.POSIX-SOCKETS.050.PTH contain the PThread variants of the modules (as a LLM SOCKGM). They will be loaded dynamically at run-time by certain POSIX- SOCKETS applications. These variants are not installed into the POSIX filesystem. - The installation is done with the POSIX-INSTALLATIONSTOOL (from user id $SYSROOT or $TSOS (UID=0, GID=0 )): /START-POSIX-INSTALLATION function: Install packages on POSIX name of product : posix-sockets version of product : 050 - If either the SYSLIB.POSIX-SOCKETS.050 or the SRMLIB.POSIX-SOCKETS.050 or the SPMLIB.POSIX-SOCKETS.050 is installed, only the one library /usr/lib/libsocket.a with the corresponding code format is generated in the POSIX filesystem. If different variants of the BS2000 libraries are installed, different Sockets libraries will be generated: /usr/lib/libsocket.a with /390 code /usr/lib/RISC/libsocket.a with RISC code /usr/lib/SP04/libsocket.a with SP04 code In this case, you can bind with the RISC or SP04 moduls by specifying the compiler option "-L /usr/lib/RISC" or "-L /usr/lib/SPS04". A - Page 4 - 2 Restrictions Using sockets of domain AF_UNIX : - The systemwide limit is 500. - The adjustments and limits of the transportsystem BCAM are also valid for these sockets. 3 Notice - The libraries contains the sockets and XTI functions. - The functions gethostbyname() and gethostbyaddr() do support DNS (Domain Name Service) if the DNS resolver of the product InternetServices is running or or the subsystem SOC6 of the product OpenNetServer is running. The functions getipnodebyname() and getipnodebyaddr() do support DNS for IPv4 and IPv6 addresses if the subsystem SOC6 is running. - The UFS installation requires about 6 MB temporary space at /tmp and about 6 MB permanent space per installed variant at /usr/lib, /usr/lib/RISC and /usr/lib/SP04. - The installation will need some time. - If the installation will fail, the text file /tmp/install.libsocket.err will be generated, which contains more information. - The following files are generated: /usr/lib/libsocket.a /usr/lib/libxnet.a /usr/include/netdb.h /usr/include/arpa/inet.h /usr/include/arpa.inet.h /usr/include/net/if.h /usr/include/net.if.h /usr/include/netinet/in.h /usr/include/netinet.in.h /usr/include/sys/byteorder.h /usr/include/sys.byteorder.h /usr/include/sys/netconfig.h /usr/include/sys.netconfig.h /usr/include/sys/socket.h /usr/include/sys.socket.h /usr/include/sys/sockio.h /usr/include/sys.sockio.h /usr/include/sys/un.h /usr/include/sys.un.h /usr/include/sys/xti_inet.h /usr/include/sys.xti_inet.h /usr/include/xti.h Activation of multicast functions in netinet/in.h by: #define IP_MULTICAST A - Page 5 - 4 Functions 4.1 Additional Functions In addition to the functions described by the manual the following the following functions are supported, too: - bindresvport( int sd , struct sockaddr_in *sin ) - rcmd( char **ahost , u_short rport , char *locuser , char *remuser , char *cmd , int *fd2p ) - rcmd_af( char **ahost , u_short rport , char *locuser , char *remuser , char *cmd , int *fd2p , int af ) - rexec( char **ahost , int rport , char *name , char *pass , char *cmd , int *fd2p ) - s_fcntl( int des , int cmd , int arg ) /* same as fcntl() */ - s_ioctl( int des , int cmd , int arg ) /* same as ioctl() */ - void s_set_uppernameatgethostbyname( int mode ) /* bs2 special */ - int t_rcvv(int, struct t_iovec *, unsigned int, int *) - int t_rcvreldata(int, struct t_discon *) - int t_rcvvudata(int, struct t_unitdata *, struct t_iovec *, unsigned int, int *) - int t_sndv(int, const struct t_iovec *, unsigned int, int) - int t_sndreldata(int, struct t_discon *) - int t_sndvudata(int, struct t_unitdata *, struct t_iovec *, unsigned int) - int t_sysconf(int) 4.2 Multihoming At hosts with multiple IP interfaces (IP addresses) POSIX-SOCKETS applications are able to bind separate server sockets for each interface to the same port at a time. So every server socket fulfills only requests arriving via the interface for which the socket was bound to the port. Instead of that (but not at the same time) a server socket can fulfill request to a port arriving via any interface (INADDR_ANY). Restrictions concerning systems using BCAM <= V17: - The multihoming functionality is only available for connection-oriented server sockets but not for connectionless or client sockets. - UDP sockets have no possibility to determine the interface that BCAM will use to send the data to the network. Restrictions concerning any system: - At a time it is not possible to bind two sockets to one port fulfilling requests indenpendent on the interface either for IPv4 (INADDR_ANY) only or for IPv6 (IN6ADDR_ANY) only. A - Page 6 - 4.3 Omitted Functions The function gethostname() is no longer contained in POSIX-SOCKETS but only in CRTE and CRTE-BASYS. In case of linking POSIX-SOCKETS applications with the library SYSLNK.CRTE.COMPL (e.g. by "c89 -d compl ...") one of following CRTE versions (or higher) will be required: CRTE V02.5A50 V02.6A10 V02.7A