aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/libc/sys/accept.22
-rw-r--r--lib/libc/sys/bind.22
-rw-r--r--lib/libc/sys/connect.22
-rw-r--r--lib/libc/sys/getpeername.22
-rw-r--r--lib/libc/sys/getsockname.22
-rw-r--r--lib/libc/sys/getsockopt.24
-rw-r--r--lib/libc/sys/recv.22
-rw-r--r--lib/libc/sys/send.22
-rw-r--r--lib/libc/sys/socket.251
-rw-r--r--lib/libc_r/uthread/uthread_accept.c2
-rw-r--r--lib/libc_r/uthread/uthread_bind.c2
-rw-r--r--lib/libc_r/uthread/uthread_connect.c2
-rw-r--r--lib/libc_r/uthread/uthread_getpeername.c2
-rw-r--r--lib/libc_r/uthread/uthread_getsockname.c2
-rw-r--r--lib/libc_r/uthread/uthread_getsockopt.c2
-rw-r--r--lib/libc_r/uthread/uthread_recvfrom.c2
-rw-r--r--lib/libc_r/uthread/uthread_sendto.c2
-rw-r--r--lib/libc_r/uthread/uthread_setsockopt.c2
-rw-r--r--sys/compat/svr4/svr4_stream.c2
-rw-r--r--sys/kern/uipc_syscalls.c2
-rw-r--r--sys/svr4/svr4_stream.c2
-rw-r--r--sys/sys/socket.h61
22 files changed, 93 insertions, 61 deletions
diff --git a/lib/libc/sys/accept.2 b/lib/libc/sys/accept.2
index 211904ec2e6f..384823ea458b 100644
--- a/lib/libc/sys/accept.2
+++ b/lib/libc/sys/accept.2
@@ -42,7 +42,7 @@
.Fd #include <sys/types.h>
.Fd #include <sys/socket.h>
.Ft int
-.Fn accept "int s" "struct sockaddr *addr" "int *addrlen"
+.Fn accept "int s" "struct sockaddr *addr" "socklen_t *addrlen"
.Sh DESCRIPTION
The argument
.Fa s
diff --git a/lib/libc/sys/bind.2 b/lib/libc/sys/bind.2
index 53f1874e911e..316ed188947a 100644
--- a/lib/libc/sys/bind.2
+++ b/lib/libc/sys/bind.2
@@ -42,7 +42,7 @@
.Fd #include <sys/types.h>
.Fd #include <sys/socket.h>
.Ft int
-.Fn bind "int s" "const struct sockaddr *addr" "int addrlen"
+.Fn bind "int s" "const struct sockaddr *addr" "socklen_t addrlen"
.Sh DESCRIPTION
.Fn Bind
assigns the local protocol address to a socket.
diff --git a/lib/libc/sys/connect.2 b/lib/libc/sys/connect.2
index bd42550453ab..aef52f1fb190 100644
--- a/lib/libc/sys/connect.2
+++ b/lib/libc/sys/connect.2
@@ -42,7 +42,7 @@
.Fd #include <sys/types.h>
.Fd #include <sys/socket.h>
.Ft int
-.Fn connect "int s" "const struct sockaddr *name" "int namelen"
+.Fn connect "int s" "const struct sockaddr *name" "socklen_t namelen"
.Sh DESCRIPTION
The parameter
.Fa s
diff --git a/lib/libc/sys/getpeername.2 b/lib/libc/sys/getpeername.2
index cdf69f15edcc..109d195ced61 100644
--- a/lib/libc/sys/getpeername.2
+++ b/lib/libc/sys/getpeername.2
@@ -42,7 +42,7 @@
.Fd #include <sys/types.h>
.Fd #include <sys/socket.h>
.Ft int
-.Fn getpeername "int s" "struct sockaddr *name" "int *namelen"
+.Fn getpeername "int s" "struct sockaddr *name" "socklen_t *namelen"
.Sh DESCRIPTION
.Fn Getpeername
returns the name of the peer connected to
diff --git a/lib/libc/sys/getsockname.2 b/lib/libc/sys/getsockname.2
index 9330a3e7d9e5..93555963afca 100644
--- a/lib/libc/sys/getsockname.2
+++ b/lib/libc/sys/getsockname.2
@@ -42,7 +42,7 @@
.Fd #include <sys/types.h>
.Fd #include <sys/socket.h>
.Ft int
-.Fn getsockname "int s" "struct sockaddr *name" "int *namelen"
+.Fn getsockname "int s" "struct sockaddr *name" "socklen_t *namelen"
.Sh DESCRIPTION
.Fn Getsockname
returns the current
diff --git a/lib/libc/sys/getsockopt.2 b/lib/libc/sys/getsockopt.2
index 6cc8e49a2e4f..db1f83493c77 100644
--- a/lib/libc/sys/getsockopt.2
+++ b/lib/libc/sys/getsockopt.2
@@ -43,9 +43,9 @@
.Fd #include <sys/types.h>
.Fd #include <sys/socket.h>
.Ft int
-.Fn getsockopt "int s" "int level" "int optname" "void *optval" "int *optlen"
+.Fn getsockopt "int s" "int level" "int optname" "void *optval" "socklen_t *optlen"
.Ft int
-.Fn setsockopt "int s" "int level" "int optname" "const void *optval" "int optlen"
+.Fn setsockopt "int s" "int level" "int optname" "const void *optval" "socklen_t optlen"
.Sh DESCRIPTION
.Fn Getsockopt
and
diff --git a/lib/libc/sys/recv.2 b/lib/libc/sys/recv.2
index bcaf9b9838d7..bf73dd5cc033 100644
--- a/lib/libc/sys/recv.2
+++ b/lib/libc/sys/recv.2
@@ -46,7 +46,7 @@
.Ft ssize_t
.Fn recv "int s" "void *buf" "size_t len" "int flags"
.Ft ssize_t
-.Fn recvfrom "int s" "void *buf" "size_t len" "int flags" "struct sockaddr *from" "int *fromlen"
+.Fn recvfrom "int s" "void *buf" "size_t len" "int flags" "struct sockaddr *from" "socklen_t *fromlen"
.Ft ssize_t
.Fn recvmsg "int s" "struct msghdr *msg" "int flags"
.Sh DESCRIPTION
diff --git a/lib/libc/sys/send.2 b/lib/libc/sys/send.2
index 8f74a9f1b41a..327307c96d09 100644
--- a/lib/libc/sys/send.2
+++ b/lib/libc/sys/send.2
@@ -46,7 +46,7 @@
.Ft ssize_t
.Fn send "int s" "const void *msg" "size_t len" "int flags"
.Ft ssize_t
-.Fn sendto "int s" "const void *msg" "size_t len" "int flags" "const struct sockaddr *to" "int tolen"
+.Fn sendto "int s" "const void *msg" "size_t len" "int flags" "const struct sockaddr *to" "socklen_t tolen"
.Ft ssize_t
.Fn sendmsg "int s" "const struct msghdr *msg" "int flags"
.Sh DESCRIPTION
diff --git a/lib/libc/sys/socket.2 b/lib/libc/sys/socket.2
index df988fff5ab7..f86d6930796c 100644
--- a/lib/libc/sys/socket.2
+++ b/lib/libc/sys/socket.2
@@ -54,15 +54,42 @@ communication will take place; this selects the protocol family
which should be used.
These families are defined in the include file
.Ao Pa sys/socket.h Ac .
-The currently understood formats are
+The currently understood formats are:
.Pp
.Bd -literal -offset indent -compact
-PF_LOCAL (Host-internal protocols, formerly called PF_UNIX),
-PF_INET (ARPA Internet protocols),
-PF_ISO (ISO protocols),
-PF_CCITT (ITU-T protocols, like X.25),
-PF_NS (Xerox Network Systems protocols), and
-.\"PF_IMPLINK (IMP \*(lqhost at IMP\*(rq link layer).
+PF_LOCAL Host-internal protocols, formerly called PF_UNIX,
+PF_UNIX Host-internal protocols, depreciated, use PF_LOCAL,
+PF_INET Internet version 4 protocols,
+PF_IMPLINK ARPAnet IMP addresses,
+PF_PUP PUP protocols, like BSP,
+PF_CHAOS MIT CHAOS protocols,
+PF_NS Xerox Network Systems protocols,
+PF_ISO ISO protocols,
+PF_OSI Open Systems Interconnection protocols,
+PF_ECMA European Computer Manufacturers,
+PF_DATAKIT Datakit protocols,
+PF_CCITT ITU-T protocols, like X.25,
+PF_SNA IBM SNA,
+PF_DECnet DECnet,
+PF_DLI DEC Direct Data Link Interface protocol,
+PF_LAT LAT protocol,
+PF_HYLINK NSC Hyperchannel,
+PF_APPLETALK AppleTalk protocols,
+PF_ROUTE Internal Routing protocol,
+PF_LINK Link layer interface,
+PF_XTP eXpress Transfer Protocol,
+PF_COIP Connection-Oriented IP, aka ST II,
+PF_CNT Computer Network Technology,
+PF_SIP Simple Internet Protocol,
+PF_IPX Novell Intenet Packet eXchange protocol,
+PF_RTIP Help Identify RTIP packets,
+PF_PIP Help Identify PIP packets,
+PF_ISDN Integrated Services Digital Network,
+PF_KEY Internal key-management function,
+PF_INET6 Internet version 6 protocols,
+PF_NATM Native ATM access,
+PF_ATM ATM,
+PF_NETGRAPH Netgraph sockets
.Ed
.Pp
The socket has the indicated
@@ -71,11 +98,11 @@ which specifies the semantics of communication. Currently
defined types are:
.Pp
.Bd -literal -offset indent -compact
-SOCK_STREAM
-SOCK_DGRAM
-SOCK_RAW
-SOCK_SEQPACKET
-SOCK_RDM
+SOCK_STREAM Stream socket,
+SOCK_DGRAM Datagram socket,
+SOCK_RAW Raw-protocol interface,
+SOCK_RDM Sequenced packet stream,
+SOCK_SEQPACKET Reliably-delivered packet
.Ed
.Pp
A
diff --git a/lib/libc_r/uthread/uthread_accept.c b/lib/libc_r/uthread/uthread_accept.c
index a6015c2c0832..c703b8cf932d 100644
--- a/lib/libc_r/uthread/uthread_accept.c
+++ b/lib/libc_r/uthread/uthread_accept.c
@@ -41,7 +41,7 @@
#include "pthread_private.h"
int
-accept(int fd, struct sockaddr * name, int *namelen)
+accept(int fd, struct sockaddr * name, socklen_t *namelen)
{
int ret;
diff --git a/lib/libc_r/uthread/uthread_bind.c b/lib/libc_r/uthread/uthread_bind.c
index 20ca7723b372..e6989a09e3b5 100644
--- a/lib/libc_r/uthread/uthread_bind.c
+++ b/lib/libc_r/uthread/uthread_bind.c
@@ -38,7 +38,7 @@
#include "pthread_private.h"
int
-bind(int fd, const struct sockaddr * name, int namelen)
+bind(int fd, const struct sockaddr * name, socklen_t namelen)
{
int ret;
diff --git a/lib/libc_r/uthread/uthread_connect.c b/lib/libc_r/uthread/uthread_connect.c
index 67c706afc8c8..7c60f63ca771 100644
--- a/lib/libc_r/uthread/uthread_connect.c
+++ b/lib/libc_r/uthread/uthread_connect.c
@@ -40,7 +40,7 @@
#include "pthread_private.h"
int
-connect(int fd, const struct sockaddr * name, int namelen)
+connect(int fd, const struct sockaddr * name, socklen_t namelen)
{
struct sockaddr tmpname;
int errnolen, ret, tmpnamelen;
diff --git a/lib/libc_r/uthread/uthread_getpeername.c b/lib/libc_r/uthread/uthread_getpeername.c
index e05888f00acb..4e972a6d499b 100644
--- a/lib/libc_r/uthread/uthread_getpeername.c
+++ b/lib/libc_r/uthread/uthread_getpeername.c
@@ -38,7 +38,7 @@
#include "pthread_private.h"
int
-getpeername(int fd, struct sockaddr * peer, int *paddrlen)
+getpeername(int fd, struct sockaddr * peer, socklen_t *paddrlen)
{
int ret;
diff --git a/lib/libc_r/uthread/uthread_getsockname.c b/lib/libc_r/uthread/uthread_getsockname.c
index 399dcbd68d62..691394c8b27e 100644
--- a/lib/libc_r/uthread/uthread_getsockname.c
+++ b/lib/libc_r/uthread/uthread_getsockname.c
@@ -38,7 +38,7 @@
#include "pthread_private.h"
int
-getsockname(int s, struct sockaddr * name, int *namelen)
+getsockname(int s, struct sockaddr * name, socklen_t *namelen)
{
int ret;
diff --git a/lib/libc_r/uthread/uthread_getsockopt.c b/lib/libc_r/uthread/uthread_getsockopt.c
index f4cedb86a875..ad293fab6600 100644
--- a/lib/libc_r/uthread/uthread_getsockopt.c
+++ b/lib/libc_r/uthread/uthread_getsockopt.c
@@ -38,7 +38,7 @@
#include "pthread_private.h"
int
-getsockopt(int fd, int level, int optname, void *optval, int *optlen)
+getsockopt(int fd, int level, int optname, void *optval, socklen_t *optlen)
{
int ret;
diff --git a/lib/libc_r/uthread/uthread_recvfrom.c b/lib/libc_r/uthread/uthread_recvfrom.c
index acc9f7be7878..3130dfdf7247 100644
--- a/lib/libc_r/uthread/uthread_recvfrom.c
+++ b/lib/libc_r/uthread/uthread_recvfrom.c
@@ -40,7 +40,7 @@
#include "pthread_private.h"
ssize_t
-recvfrom(int fd, void *buf, size_t len, int flags, struct sockaddr * from, int *from_len)
+recvfrom(int fd, void *buf, size_t len, int flags, struct sockaddr * from, socklen_t *from_len)
{
int ret;
diff --git a/lib/libc_r/uthread/uthread_sendto.c b/lib/libc_r/uthread/uthread_sendto.c
index a001ab7a99ea..348affc14b1d 100644
--- a/lib/libc_r/uthread/uthread_sendto.c
+++ b/lib/libc_r/uthread/uthread_sendto.c
@@ -40,7 +40,7 @@
#include "pthread_private.h"
ssize_t
-sendto(int fd, const void *msg, size_t len, int flags, const struct sockaddr * to, int to_len)
+sendto(int fd, const void *msg, size_t len, int flags, const struct sockaddr * to, socklen_t to_len)
{
int ret;
diff --git a/lib/libc_r/uthread/uthread_setsockopt.c b/lib/libc_r/uthread/uthread_setsockopt.c
index c38c61ff3f04..ed1155b31ecc 100644
--- a/lib/libc_r/uthread/uthread_setsockopt.c
+++ b/lib/libc_r/uthread/uthread_setsockopt.c
@@ -38,7 +38,7 @@
#include "pthread_private.h"
int
-setsockopt(int fd, int level, int optname, const void *optval, int optlen)
+setsockopt(int fd, int level, int optname, const void *optval, socklen_t optlen)
{
int ret;
diff --git a/sys/compat/svr4/svr4_stream.c b/sys/compat/svr4/svr4_stream.c
index fbe6eebe747b..5399041a4fa4 100644
--- a/sys/compat/svr4/svr4_stream.c
+++ b/sys/compat/svr4/svr4_stream.c
@@ -340,7 +340,7 @@ svr4_recvit(p, s, mp, namelenp)
len -= tocopy;
m = m->m_next;
}
- mp->msg_controllen = ctlbuf - mp->msg_control;
+ mp->msg_controllen = ctlbuf - (caddr_t)mp->msg_control;
}
out:
if (fromsa)
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c
index cb21ac6f6282..af24c03df2f1 100644
--- a/sys/kern/uipc_syscalls.c
+++ b/sys/kern/uipc_syscalls.c
@@ -805,7 +805,7 @@ recvit(p, s, mp, namelenp)
len -= tocopy;
m = m->m_next;
}
- mp->msg_controllen = ctlbuf - mp->msg_control;
+ mp->msg_controllen = ctlbuf - (caddr_t)mp->msg_control;
}
out:
if (fromsa)
diff --git a/sys/svr4/svr4_stream.c b/sys/svr4/svr4_stream.c
index fbe6eebe747b..5399041a4fa4 100644
--- a/sys/svr4/svr4_stream.c
+++ b/sys/svr4/svr4_stream.c
@@ -340,7 +340,7 @@ svr4_recvit(p, s, mp, namelenp)
len -= tocopy;
m = m->m_next;
}
- mp->msg_controllen = ctlbuf - mp->msg_control;
+ mp->msg_controllen = ctlbuf - (caddr_t)mp->msg_control;
}
out:
if (fromsa)
diff --git a/sys/sys/socket.h b/sys/sys/socket.h
index febf2f8a0e9b..de550ff4eb86 100644
--- a/sys/sys/socket.h
+++ b/sys/sys/socket.h
@@ -42,6 +42,12 @@
*/
/*
+ * Data types.
+ */
+typedef u_char sa_family_t;
+typedef u_int32_t socklen_t;
+
+/*
* Types
*/
#define SOCK_STREAM 1 /* stream socket */
@@ -140,9 +146,9 @@ struct linger {
* addresses.
*/
struct sockaddr {
- u_char sa_len; /* total length */
- u_char sa_family; /* address family */
- char sa_data[14]; /* actually longer; address value */
+ u_char sa_len; /* total length */
+ sa_family_t sa_family; /* address family */
+ char sa_data[14]; /* actually longer; address value */
};
#define SOCK_MAXADDRLEN 255 /* longest possible addresses */
@@ -165,11 +171,11 @@ struct sockproto {
_SS_PAD1SIZE - _SS_ALIGNSIZE)
struct sockaddr_storage {
- u_char __ss_len; /* address length */
- u_char __ss_family; /* address family */
- char __ss_pad1[_SS_PAD1SIZE];
- int64_t __ss_align; /* force desired structure storage alignment */
- char __ss_pad2[_SS_PAD2SIZE];
+ u_char __ss_len; /* address length */
+ sa_family_t __ss_family; /* address family */
+ char __ss_pad1[_SS_PAD1SIZE];
+ int64_t __ss_align; /* force desired structure storage alignment */
+ char __ss_pad2[_SS_PAD2SIZE];
};
/*
@@ -179,7 +185,6 @@ struct sockaddr_storage {
#define PF_LOCAL AF_LOCAL
#define PF_UNIX PF_LOCAL /* backward compatibility */
#define PF_INET AF_INET
-#define PF_INET6 AF_INET6
#define PF_IMPLINK AF_IMPLINK
#define PF_PUP AF_PUP
#define PF_CHAOS AF_CHAOS
@@ -289,13 +294,13 @@ struct sockaddr_storage {
* Used value-result for recvmsg, value only for sendmsg.
*/
struct msghdr {
- caddr_t msg_name; /* optional address */
- u_int msg_namelen; /* size of address */
- struct iovec *msg_iov; /* scatter/gather array */
- u_int msg_iovlen; /* # elements in msg_iov */
- caddr_t msg_control; /* ancillary data, see below */
- u_int msg_controllen; /* ancillary data buffer len */
- int msg_flags; /* flags on received message */
+ void *msg_name; /* optional address */
+ socklen_t msg_namelen; /* size of address */
+ struct iovec *msg_iov; /* scatter/gather array */
+ int msg_iovlen; /* # elements in msg_iov */
+ void *msg_control; /* ancillary data, see below */
+ socklen_t msg_controllen; /* ancillary data buffer len */
+ int msg_flags; /* flags on received message */
};
#define MSG_OOB 0x1 /* process out-of-band data */
@@ -316,9 +321,9 @@ struct msghdr {
* of message elements headed by cmsghdr structures.
*/
struct cmsghdr {
- u_int cmsg_len; /* data byte count, including hdr */
- int cmsg_level; /* originating protocol */
- int cmsg_type; /* protocol-specific type */
+ socklen_t cmsg_len; /* data byte count, including hdr */
+ int cmsg_level; /* originating protocol */
+ int cmsg_type; /* protocol-specific type */
/* followed by u_char cmsg_data[]; */
};
@@ -414,22 +419,22 @@ struct sf_hdtr {
#include <sys/cdefs.h>
__BEGIN_DECLS
-int accept __P((int, struct sockaddr *, int *));
-int bind __P((int, const struct sockaddr *, int));
-int connect __P((int, const struct sockaddr *, int));
-int getpeername __P((int, struct sockaddr *, int *));
-int getsockname __P((int, struct sockaddr *, int *));
-int getsockopt __P((int, int, int, void *, int *));
+int accept __P((int, struct sockaddr *, socklen_t *));
+int bind __P((int, const struct sockaddr *, socklen_t));
+int connect __P((int, const struct sockaddr *, socklen_t));
+int getpeername __P((int, struct sockaddr *, socklen_t *));
+int getsockname __P((int, struct sockaddr *, socklen_t *));
+int getsockopt __P((int, int, int, void *, socklen_t *));
int listen __P((int, int));
ssize_t recv __P((int, void *, size_t, int));
-ssize_t recvfrom __P((int, void *, size_t, int, struct sockaddr *, int *));
+ssize_t recvfrom __P((int, void *, size_t, int, struct sockaddr *, socklen_t *));
ssize_t recvmsg __P((int, struct msghdr *, int));
ssize_t send __P((int, const void *, size_t, int));
ssize_t sendto __P((int, const void *,
- size_t, int, const struct sockaddr *, int));
+ size_t, int, const struct sockaddr *, socklen_t));
ssize_t sendmsg __P((int, const struct msghdr *, int));
int sendfile __P((int, int, off_t, size_t, struct sf_hdtr *, off_t *, int));
-int setsockopt __P((int, int, int, const void *, int));
+int setsockopt __P((int, int, int, const void *, socklen_t));
int shutdown __P((int, int));
int socket __P((int, int, int));
int socketpair __P((int, int, int, int *));