bindresvport_sa(3) - NetBSD Manual Pages

Command: Section: Arch: Collection:  
BINDRESVPORT(3)         NetBSD Library Functions Manual        BINDRESVPORT(3)

bindresvport, bindresvport_sa -- bind a socket to a reserved privileged IP port
Standard C Library (libc, -lc)
#include <sys/types.h> #include <rpc/rpc.h> int bindresvport(int sd, struct sockaddr_in *sin); int bindresvport_sa(int sd, struct sockaddr *sa);
bindresvport() and bindresvport_sa() are used to bind a socket descriptor to a reserved privileged IP port, that is, a port number in the range 0-1023. The routine returns 0 if it is successful, otherwise -1 is returned and errno set to reflect the cause of the error. If sin is a pointer to a struct sockaddr_in then the appropriate fields in the structure should be defined. Note that sin->sin_family must be initialized to the address family of the socket, passed by sd. If sin->sin_port is `0' then a port (in the range 600-1023) will be chosen, and if bind(2) is successful, the sin->sin_port will be updated to con- tain the allocated port. If sin is the NULL pointer, a port will be allocated (as above). How- ever, there is no way for bindresvport() to return the allocated port in this case. getsockname(2) can be used to determine the assigned port. Only root can bind to a privileged port; this call will fail for any other users. Function prototype of bindresvport() is biased to AF_INET socket. bindresvport_sa() acts exactly the same, with more neutral function pro- totype. Note that both functions behave exactly the same, and both sup- port AF_INET6 sockets as well as AF_INET sockets.
If the bind is successful, a 0 value is returned. A return value of -1 indicates an error, which is further specified in the global errno.
[EPFNOSUPPORT] If second argument was supplied, and address family did not match between arguments. bindresvport() may also fail and set errno for any of the errors speci- fied for the calls bind(2), getsockopt(2), or setsockopt(2).
bind(2), getsockname(2), getsockopt(2), setsockopt(2), ip(4) NetBSD 9.99 January 27, 2007 NetBSD 9.99
Powered by man-cgi 1.15, Panagiotis Christias
Modified for NetBSD by Kimmo Suominen