summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpluknet <pluknet@FreeBSD.org>2013-02-15 13:00:20 +0000
committerpluknet <pluknet@FreeBSD.org>2013-02-15 13:00:20 +0000
commitb585f0db6b4ff1dffb058cc09881606f50a2dc53 (patch)
treed2b31da522dbfa94583fddd2d2f5a36cb4c645d8
parentda122517170abdabec9ff0533dde1a8666aa8898 (diff)
downloadFreeBSD-src-b585f0db6b4ff1dffb058cc09881606f50a2dc53.zip
FreeBSD-src-b585f0db6b4ff1dffb058cc09881606f50a2dc53.tar.gz
Add support of passing SCM_BINTIME ancillary data object for PF_LOCAL
sockets. PR: kern/175883 Submitted by: Andrey Simonenko <simon@comsys.ntu-kpi.kiev.ua> Discussed with: glebius, phk MFC after: 2 weeks
-rw-r--r--sys/kern/uipc_usrreq.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c
index c732c70..a6c308f 100644
--- a/sys/kern/uipc_usrreq.c
+++ b/sys/kern/uipc_usrreq.c
@@ -1798,6 +1798,7 @@ unp_internalize(struct mbuf **controlp, struct thread *td)
struct mbuf *control = *controlp;
struct proc *p = td->td_proc;
struct filedesc *fdescp = p->p_fd;
+ struct bintime *bt;
struct cmsghdr *cm = mtod(control, struct cmsghdr *);
struct cmsgcred *cmcred;
struct file **rp;
@@ -1906,6 +1907,18 @@ unp_internalize(struct mbuf **controlp, struct thread *td)
microtime(tv);
break;
+ case SCM_BINTIME:
+ *controlp = sbcreatecontrol(NULL, sizeof(*bt),
+ SCM_BINTIME, SOL_SOCKET);
+ if (*controlp == NULL) {
+ error = ENOBUFS;
+ goto out;
+ }
+ bt = (struct bintime *)
+ CMSG_DATA(mtod(*controlp, struct cmsghdr *));
+ bintime(bt);
+ break;
+
default:
error = EINVAL;
goto out;
OpenPOWER on IntegriCloud