netdir_options()--Access Transport-Specific Capabilities
Syntax
#include <netdir.h> int netdir_options(struct netconfig *nconf, int option, int fd, char *point_to_args);
Service Program Name: QZNFTRPC
Default Public Authority: *USE
Threadsafe: No
The netdir_options() function provides interfaces to transport-specific capabilities such as the broadcast address and reserved port facilities of TCP and UDP.
Parameters
- nconf (Input)
- A pointer to a netconfig structure that specifies a transport.
- option (Input)
- Specifies the transport-specific action to take. The following values may
be used for option:
ND_SET_BROADCAST Set the transport for broadcast if supported. ND_SET_RESERVEDPORT Let the application bind to a reserved port if allowed by the transport. ND_CHECK_RESERVEDPORT Verify that an address corresponds to a reserved port if the transport supports reserved ports. ND_MERGEADDR Transform a locally meaningful address into an address that the client host can connect to. - fd (Input)
- The file descriptor that may or may not be used based on the
option. The only value supported for this field is RPC_ANYFD.
The file descriptor value is used only if the specified option is
ND_SET_BROADCAST or ND_SET_RESERVEDPORT.
- point_to_args (Input)
- A pointer to the operation-specific data.
Authorities
The caller must have the *IOSYSCFG special authority to bind to a reserved port.
Return Value
0 | netdir_options() was successful. |
-1 | netdir_options() was not successful. The nd_errno global variable (defined in <netdir.h>) is set to indicate the error. |
Error Conditions
If netdir_options() is not successful, nd_errno indicates one of the following errors:
[ND_ACCESS] | The user does not have permission to use the specified address. |
[ND_BADARG] | Bad argument passed.
A file descriptor that was not valid was passed to the API. |
[ND_FAILCTRL] | Control operation failed. |
[ND_NO_ADDRESS] | Bad address. |
[ND_NOCONVERT] | Conversion error. One or more characters could not be converted from the source CCSID to the target CCSID. |
[ND_NOCTRL] | The function was used in the wrong sequence.
An incorrect option was specified. |
[ND_NO_DATA] | Incorret amount of data. |
[ND_NOHOST] | The host that was specified by the host name was not found. |
[ND_NOMEM] | Not enough memory left. |
[ND_NO_RECOVERY] | An unrecoverable error has occurred. |
[ND_OPEN] | File could not be opened. |
[ND_SYSTEM] | A damaged object was encountered. The damaged object cannot be
used.
The system detected an address that was not valid. |
[ND_TRY_AGAIN] | The local server did not receive a response from an authoritative server. An attempt at a later time may succeed. |
Error Messages
Message ID | Error Message Text |
---|---|
CPF9872 E | Program or service program &1 in library &2 ended. Reason code &3. |
Example
The following example shows how netdir_options() is used.
Note: By using the code examples, you agree to the terms of the Code license and disclaimer information.
#include <netdir.h> #include <rpc/rpc_com.h> /* for RPC_ANYFD definition */ main() { void *handlep; struct netconfig *nconf; /* Initialize the network selection mechanism */ if (handlep = setnetconfig()) == (void *)NULL) { exit(1); } /* Get a netconfig structure from the netconfig file */ if ((nconf = getnetconfig(handlep)) == (struct netconf *)NULL) { printf("Unable to obtain a netconfig structure\n"); } /* Set the protocol specific negotiation for broadcast */ if (netdir_options(nconf, ND_SET_BROADCAST, RPC_ANYFD, NULL)) { printf("Error setting the broadcasting option\n"); } /* Release the netconfig handle allocated by setnetconfig() */ endnetconfig(handlep); }
API introduced: V4R2
[ Back to top | Remote Procedure Call (RPC) APIs | APIs by category ]