lint
[unix-history] / usr / src / sys / net / raw_usrreq.c
index 3c83a9d..b301fde 100644 (file)
@@ -1,18 +1,17 @@
-/*     raw_usrreq.c    4.17    82/06/20        */
+/*     raw_usrreq.c    4.25    83/02/10        */
 
 #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: