in_control gets PRU_CONTROLS; bigger TCP send/recv buffers,
authorMike Karels <karels@ucbvax.Berkeley.EDU>
Tue, 19 Mar 1985 07:24:28 +0000 (23:24 -0800)
committerMike Karels <karels@ucbvax.Berkeley.EDU>
Tue, 19 Mar 1985 07:24:28 +0000 (23:24 -0800)
bigger UDP recv buffers

SCCS-vsn: sys/netinet/tcp_usrreq.c 6.5
SCCS-vsn: sys/netinet/udp_usrreq.c 6.10

usr/src/sys/netinet/tcp_usrreq.c
usr/src/sys/netinet/udp_usrreq.c

index 5886b50..617a34d 100644 (file)
@@ -1,4 +1,4 @@
-/*     tcp_usrreq.c    6.4     84/08/29        */
+/*     tcp_usrreq.c    6.5     85/03/18        */
 
 #include "param.h"
 #include "systm.h"
 
 #include "param.h"
 #include "systm.h"
@@ -49,6 +49,9 @@ tcp_usrreq(so, req, m, nam, rights)
        int error = 0;
        int ostate;
 
        int error = 0;
        int ostate;
 
+       if (req == PRU_CONTROL)
+               return (in_control(so, (int)m, (caddr_t)nam,
+                       (struct ifnet *)rights));
        if (rights && rights->m_len) {
                splx(s);
                return (EINVAL);
        if (rights && rights->m_len) {
                splx(s);
                return (EINVAL);
@@ -232,12 +235,6 @@ tcp_usrreq(so, req, m, nam, rights)
                tp = tcp_drop(tp, ECONNABORTED);
                break;
 
                tp = tcp_drop(tp, ECONNABORTED);
                break;
 
-/* SOME AS YET UNIMPLEMENTED HOOKS */
-       case PRU_CONTROL:
-               error = EOPNOTSUPP;
-               break;
-/* END UNIMPLEMENTED HOOKS */
-
        case PRU_SENSE:
                ((struct stat *) m)->st_blksize = so->so_snd.sb_hiwat;
                return (0);
        case PRU_SENSE:
                ((struct stat *) m)->st_blksize = so->so_snd.sb_hiwat;
                return (0);
@@ -295,8 +292,8 @@ tcp_usrreq(so, req, m, nam, rights)
        return (error);
 }
 
        return (error);
 }
 
-int    tcp_sendspace = 1024*2;
-int    tcp_recvspace = 1024*2;
+int    tcp_sendspace = 1024*4;
+int    tcp_recvspace = 1024*4;
 /*
  * Attach TCP protocol to socket, allocating
  * internet protocol control block, tcp control block,
 /*
  * Attach TCP protocol to socket, allocating
  * internet protocol control block, tcp control block,
index ba53ed4..81ed462 100644 (file)
@@ -1,4 +1,4 @@
-/*     udp_usrreq.c    6.9     84/09/05        */
+/*     udp_usrreq.c    6.10    85/03/18        */
 
 #include "param.h"
 #include "dir.h"
 
 #include "param.h"
 #include "dir.h"
@@ -223,6 +223,9 @@ udp_output(inp, m0)
            so->so_options & SO_BROADCAST));
 }
 
            so->so_options & SO_BROADCAST));
 }
 
+int    udp_sendspace = 2048;           /* really max datagram size */
+int    udp_recvspace = 4 * (1024+sizeof(struct sockaddr_in)); /* 4 1K dgrams */
+
 /*ARGSUSED*/
 udp_usrreq(so, req, m, nam, rights)
        struct socket *so;
 /*ARGSUSED*/
 udp_usrreq(so, req, m, nam, rights)
        struct socket *so;
@@ -232,6 +235,9 @@ udp_usrreq(so, req, m, nam, rights)
        struct inpcb *inp = sotoinpcb(so);
        int error = 0;
 
        struct inpcb *inp = sotoinpcb(so);
        int error = 0;
 
+       if (req == PRU_CONTROL)
+               return (in_control(so, (int)m, (caddr_t)nam,
+                       (struct ifnet *)rights));
        if (rights && rights->m_len) {
                error = EINVAL;
                goto release;
        if (rights && rights->m_len) {
                error = EINVAL;
                goto release;
@@ -250,7 +256,7 @@ udp_usrreq(so, req, m, nam, rights)
                error = in_pcballoc(so, &udb);
                if (error)
                        break;
                error = in_pcballoc(so, &udb);
                if (error)
                        break;
-               error = soreserve(so, 2048, 2048);
+               error = soreserve(so, udp_sendspace, udp_recvspace);
                if (error)
                        break;
                break;
                if (error)
                        break;
                break;
@@ -331,8 +337,8 @@ udp_usrreq(so, req, m, nam, rights)
                m = NULL;
                if (nam) {
                        in_pcbdisconnect(inp);
                m = NULL;
                if (nam) {
                        in_pcbdisconnect(inp);
-                       splx(s);
                        inp->inp_laddr = laddr;
                        inp->inp_laddr = laddr;
+                       splx(s);
                }
                }
                break;
                }
                }
                break;
@@ -365,7 +371,6 @@ udp_usrreq(so, req, m, nam, rights)
                error =  EOPNOTSUPP;
                break;
 
                error =  EOPNOTSUPP;
                break;
 
-       case PRU_CONTROL:
        case PRU_RCVD:
        case PRU_RCVOOB:
                return (EOPNOTSUPP);    /* do not free mbuf's */
        case PRU_RCVD:
        case PRU_RCVOOB:
                return (EOPNOTSUPP);    /* do not free mbuf's */