Module Name:    src
Committed By:   rtr
Date:           Fri Apr 24 23:36:49 UTC 2015

Modified Files:
        src/sys/netatalk: ddp_usrreq.c

Log Message:
make at_pcbconnect() take sockaddr_at * instead of mbuf *.

move m_len check into callers which results in small duplication of
code that will go away when the callers are converted to receive
sockaddr * instead of mbuf *.


To generate a diff of this commit:
cvs rdiff -u -r1.65 -r1.66 src/sys/netatalk/ddp_usrreq.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/netatalk/ddp_usrreq.c
diff -u src/sys/netatalk/ddp_usrreq.c:1.65 src/sys/netatalk/ddp_usrreq.c:1.66
--- src/sys/netatalk/ddp_usrreq.c:1.65	Fri Apr 24 22:32:37 2015
+++ src/sys/netatalk/ddp_usrreq.c	Fri Apr 24 23:36:48 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: ddp_usrreq.c,v 1.65 2015/04/24 22:32:37 rtr Exp $	 */
+/*	$NetBSD: ddp_usrreq.c,v 1.66 2015/04/24 23:36:48 rtr Exp $	 */
 
 /*
  * Copyright (c) 1990,1991 Regents of The University of Michigan.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ddp_usrreq.c,v 1.65 2015/04/24 22:32:37 rtr Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ddp_usrreq.c,v 1.66 2015/04/24 23:36:48 rtr Exp $");
 
 #include "opt_mbuftrace.h"
 
@@ -59,7 +59,7 @@ __KERNEL_RCSID(0, "$NetBSD: ddp_usrreq.c
 static void at_pcbdisconnect(struct ddpcb *);
 static void at_sockaddr(struct ddpcb *, struct sockaddr_at *);
 static int at_pcbsetaddr(struct ddpcb *, struct sockaddr_at *);
-static int at_pcbconnect(struct ddpcb *, struct mbuf *);
+static int at_pcbconnect(struct ddpcb *, struct sockaddr_at *);
 static void ddp_detach(struct socket *);
 
 struct ifqueue atintrq1, atintrq2;
@@ -231,18 +231,15 @@ at_pcbsetaddr(struct ddpcb *ddp, struct 
 }
 
 static int
-at_pcbconnect(struct ddpcb *ddp, struct mbuf *addr)
+at_pcbconnect(struct ddpcb *ddp, struct sockaddr_at *sat)
 {
 	struct rtentry *rt;
 	const struct sockaddr_at *cdst;
-	struct sockaddr_at *sat = mtod(addr, struct sockaddr_at *);
 	struct route *ro;
 	struct at_ifaddr *aa;
 	struct ifnet   *ifp;
 	u_short         hintnet = 0, net;
 
-	if (addr->m_len != sizeof(*sat))
-		return EINVAL;
 	if (sat->sat_family != AF_APPLETALK) {
 		return EAFNOSUPPORT;
 	}
@@ -435,7 +432,9 @@ ddp_connect(struct socket *so, struct mb
 
 	if (ddp->ddp_fsat.sat_port != ATADDR_ANYPORT)
 		return EISCONN;
-	error = at_pcbconnect(ddp, nam);
+	if (nam->m_len != sizeof(struct sockaddr_at))
+		return EINVAL;
+	error = at_pcbconnect(ddp, mtod(nam, struct sockaddr_at *));
 	if (error == 0)
 		soisconnected(so);
 
@@ -550,7 +549,9 @@ ddp_send(struct socket *so, struct mbuf 
 		if (ddp->ddp_fsat.sat_port != ATADDR_ANYPORT)
 			return EISCONN;
 		s = splnet();
-		error = at_pcbconnect(ddp, nam);
+		if (nam->m_len != sizeof(struct sockaddr_at))
+			return EINVAL;
+		error = at_pcbconnect(ddp, mtod(nam, struct sockaddr_at *));
 		if (error) {
 			splx(s);
 			return error;

Reply via email to