summaryrefslogtreecommitdiffstats
path: root/sys/kern/sys_socket.c
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2009-06-30 13:38:49 +0000
committeremaste <emaste@FreeBSD.org>2009-06-30 13:38:49 +0000
commit02a0b3a8398eef5365dd98db3badaafdd0b77480 (patch)
tree8b55a5b1eeeffcba51735b6a4fdb499a8936add5 /sys/kern/sys_socket.c
parent9a7ae64d553bf11e4648a25b3c383630165c81f8 (diff)
downloadFreeBSD-src-02a0b3a8398eef5365dd98db3badaafdd0b77480.zip
FreeBSD-src-02a0b3a8398eef5365dd98db3badaafdd0b77480.tar.gz
Add FIONSPACE from NetBSD. FIONSPACE is provided so that programs may
easily determine how much space is left in the send queue; they do not need to know the send queue size. NetBSD revisions: sys_socket.c r1.41, 1.42 filio.h r1.9 Obtained from: NetBSD Approved by: re (kensmith)
Diffstat (limited to 'sys/kern/sys_socket.c')
-rw-r--r--sys/kern/sys_socket.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/kern/sys_socket.c b/sys/kern/sys_socket.c
index ecfb4ad..c29ecc6 100644
--- a/sys/kern/sys_socket.c
+++ b/sys/kern/sys_socket.c
@@ -174,6 +174,14 @@ soo_ioctl(struct file *fp, u_long cmd, void *data, struct ucred *active_cred,
*(int *)data = so->so_snd.sb_cc;
break;
+ case FIONSPACE:
+ if ((so->so_snd.sb_hiwat < so->so_snd.sb_cc) ||
+ (so->so_snd.sb_mbmax < so->so_snd.sb_mbcnt))
+ *(int *)data = 0;
+ else
+ *(int *)data = sbspace(&so->so_snd);
+ break;
+
case FIOSETOWN:
error = fsetown(*(int *)data, &so->so_sigio);
break;
OpenPOWER on IntegriCloud