GETSOCKNAME
The GETSOCKNAME call returns the address currently bound to a specified socket. If the socket is not currently bound to an address, the call returns with the FAMILY field set, and the rest of the structure set to 0.
Because a stream socket is not assigned a name until after a successful call to either BIND, CONNECT, or ACCEPT, the GETSOCKNAME call can be used after an implicit bind to discover which port was assigned to the socket.
| Condition | Requirement |
|---|---|
| Authorization: | Supervisor state or problem state, any PSW key. |
| Dispatchable unit mode: | Task. |
| Cross memory mode: | PASN = HASN. |
| Amode: | 31-bit or 24-bit. Note: See the addressability
mode (Amode) considerations under CALL instruction API environmental restrictions and programming requirements.
|
| ASC mode: | Primary address space control (ASC) mode. |
| Interrupt status: | Enabled for interrupts. |
| Locks: | Unlocked. |
| Control parameters: | All parameters must be addressable by the caller and in the primary address space. |
Figure 1 shows an example of GETSOCKNAME call instructions.
Figure 1. GETSOCKNAME
call instruction example
WORKING-STORAGE SECTION.
01 SOC-FUNCTION PIC X(16) VALUE IS 'GETSOCKNAME'.
01 S PIC 9(4) BINARY.
* IPv4 socket address structure.
01 NAME.
03 FAMILY PIC 9(4) BINARY.
03 PORT PIC 9(4) BINARY.
03 IP-ADDRESS PIC 9(8) BINARY.
03 RESERVED PIC X(8).
* IPv6 socket address structure.
01 NAME.
03 FAMILY PIC 9(4) BINARY.
03 PORT PIC 9(4) BINARY.
03 FLOWINFO PIC 9(8) BINARY.
03 IP-ADDRESS.
10 FILLER PIC 9(16) BINARY.
10 FILLER PIC 9(16) BINARY.
03 SCOPE-ID PIC 9(8) BINARY.
01 ERRNO PIC 9(8) BINARY.
01 RETCODE PIC S9(8) BINARY.
PROCEDURE DIVISION.
CALL 'EZASOKET' USING SOC-FUNCTION S NAME ERRNO RETCODE.
For equivalent PL/I and assembly language declarations, see Converting parameter descriptions.