- NetBSD Manual Pages
BINDRESVPORT(3) NetBSD Library Functions Manual BINDRESVPORT(3)
Powered by man-cgi (2021-06-01).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.
bindresvport, bindresvport_sa -- bind a socket to a reserved privileged
Standard C Library (libc, -lc)
bindresvport(int sd, struct sockaddr_in *sin);
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
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