diff options
author | pluknet <pluknet@FreeBSD.org> | 2013-02-15 13:00:20 +0000 |
---|---|---|
committer | pluknet <pluknet@FreeBSD.org> | 2013-02-15 13:00:20 +0000 |
commit | b585f0db6b4ff1dffb058cc09881606f50a2dc53 (patch) | |
tree | d2b31da522dbfa94583fddd2d2f5a36cb4c645d8 | |
parent | da122517170abdabec9ff0533dde1a8666aa8898 (diff) | |
download | FreeBSD-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.c | 13 |
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; |