projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
lint
[unix-history]
/
usr
/
src
/
sys
/
net
/
raw_usrreq.c
diff --git
a/usr/src/sys/net/raw_usrreq.c
b/usr/src/sys/net/raw_usrreq.c
index
3c83a9d
..
b301fde
100644
(file)
--- a/
usr/src/sys/net/raw_usrreq.c
+++ b/
usr/src/sys/net/raw_usrreq.c
@@
-1,18
+1,17
@@
-/* raw_usrreq.c 4.
17 82/06/2
0 */
+/* raw_usrreq.c 4.
25 83/02/1
0 */
#include "../h/param.h"
#include "../h/mbuf.h"
#include "../h/protosw.h"
#include "../h/socket.h"
#include "../h/socketvar.h"
#include "../h/param.h"
#include "../h/mbuf.h"
#include "../h/protosw.h"
#include "../h/socket.h"
#include "../h/socketvar.h"
-#include "../h/mtpr.h"
-#include "../net/in.h"
-#include "../net/in_systm.h"
+#include "../h/errno.h"
+
#include "../net/if.h"
#include "../net/if.h"
+#include "../net/netisr.h"
#include "../net/raw_cb.h"
#include "../net/raw_cb.h"
-#include <errno.h>
-int rawqmaxlen = IFQ_MAXLEN;
+#include "../vax/mtpr.h"
/*
* Initialize raw connection block q.
/*
* Initialize raw connection block q.
@@
-39,13
+38,12
@@
raw_input(m0, proto, src, dst)
/*
* Rip off an mbuf for a generic header.
*/
/*
* Rip off an mbuf for a generic header.
*/
- m = m_get(M_DONTWAIT);
+ m = m_get(M_DONTWAIT
, MT_HEADER
);
if (m == 0) {
m_freem(m0);
return;
}
m->m_next = m0;
if (m == 0) {
m_freem(m0);
return;
}
m->m_next = m0;
- m->m_off = MMINOFF;
m->m_len = sizeof(struct raw_header);
rh = mtod(m, struct raw_header *);
rh->raw_dst = *dst;
m->m_len = sizeof(struct raw_header);
rh = mtod(m, struct raw_header *);
rh->raw_dst = *dst;
@@
-112,7
+110,7
@@
next:
continue;
if (last) {
struct mbuf *n;
continue;
if (last) {
struct mbuf *n;
- if (
n = m_copy(m->m_next, 0, (int)M_COPYALL)
)
+ if (
(n = m_copy(m->m_next, 0, (int)M_COPYALL)) == 0
)
goto nospace;
if (sbappendaddr(&last->so_rcv, &rh->raw_src, n)==0) {
/* should notify about lost packet */
goto nospace;
if (sbappendaddr(&last->so_rcv, &rh->raw_src, n)==0) {
/* should notify about lost packet */
@@
-136,6
+134,7
@@
drop:
goto next;
}
goto next;
}
+/*ARGSUSED*/
raw_ctlinput(cmd, arg)
int cmd;
caddr_t arg;
raw_ctlinput(cmd, arg)
int cmd;
caddr_t arg;
@@
-143,14
+142,14
@@
raw_ctlinput(cmd, arg)
if (cmd < 0 || cmd > PRC_NCMDS)
return;
if (cmd < 0 || cmd > PRC_NCMDS)
return;
+ /* INCOMPLETE */
}
/*ARGSUSED*/
}
/*ARGSUSED*/
-raw_usrreq(so, req, m,
addr
)
+raw_usrreq(so, req, m,
nam
)
struct socket *so;
int req;
struct socket *so;
int req;
- struct mbuf *m;
- caddr_t addr;
+ struct mbuf *m, *nam;
{
register struct rawcb *rp = sotorawcb(so);
int error = 0;
{
register struct rawcb *rp = sotorawcb(so);
int error = 0;
@@
-170,7
+169,7
@@
raw_usrreq(so, req, m, addr)
return (EACCES);
if (rp)
return (EINVAL);
return (EACCES);
if (rp)
return (EINVAL);
- error = raw_attach(so
, (struct sockaddr *)addr
);
+ error = raw_attach(so);
break;
/*
break;
/*
@@
-192,7
+191,7
@@
raw_usrreq(so, req, m, addr)
case PRU_CONNECT:
if (rp->rcb_flags & RAW_FADDR)
return (EISCONN);
case PRU_CONNECT:
if (rp->rcb_flags & RAW_FADDR)
return (EISCONN);
- raw_connaddr(rp,
(struct sockaddr *)addr
);
+ raw_connaddr(rp,
nam
);
soisconnected(so);
break;
soisconnected(so);
break;
@@
-215,14
+214,14
@@
raw_usrreq(so, req, m, addr)
* routine handles any massaging necessary.
*/
case PRU_SEND:
* routine handles any massaging necessary.
*/
case PRU_SEND:
- if (
addr
) {
+ if (
nam
) {
if (rp->rcb_flags & RAW_FADDR)
return (EISCONN);
if (rp->rcb_flags & RAW_FADDR)
return (EISCONN);
- raw_connaddr(rp,
(struct sockaddr *)addr
);
+ raw_connaddr(rp,
nam
);
} else if ((rp->rcb_flags & RAW_FADDR) == 0)
return (ENOTCONN);
error = (*so->so_proto->pr_output)(m, so);
} else if ((rp->rcb_flags & RAW_FADDR) == 0)
return (ENOTCONN);
error = (*so->so_proto->pr_output)(m, so);
- if (
addr
)
+ if (
nam
)
rp->rcb_flags &= ~RAW_FADDR;
break;
rp->rcb_flags &= ~RAW_FADDR;
break;
@@
-245,7
+244,9
@@
raw_usrreq(so, req, m, addr)
break;
case PRU_SOCKADDR:
break;
case PRU_SOCKADDR:
- bcopy(addr, (caddr_t)&rp->rcb_laddr, sizeof (struct sockaddr));
+ bcopy((caddr_t)&rp->rcb_laddr, mtod(nam, caddr_t),
+ sizeof (struct sockaddr));
+ nam->m_len = sizeof (struct sockaddr);
break;
default:
break;
default: