CVS commit: src/sys/netatalk
Module Name:src Committed By: maxv Date: Tue May 29 16:29:47 UTC 2018 Modified Files: src/sys/netatalk: aarp.c at_extern.h Log Message: Remove aarp_clean, unused. By the way this function was probably buggy since it didn't reset aat_hold to NULL. To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/sys/netatalk/aarp.c cvs rdiff -u -r1.19 -r1.20 src/sys/netatalk/at_extern.h 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/aarp.c diff -u src/sys/netatalk/aarp.c:1.41 src/sys/netatalk/aarp.c:1.42 --- src/sys/netatalk/aarp.c:1.41 Sat Feb 17 19:10:18 2018 +++ src/sys/netatalk/aarp.c Tue May 29 16:29:47 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: aarp.c,v 1.41 2018/02/17 19:10:18 rjs Exp $ */ +/* $NetBSD: aarp.c,v 1.42 2018/05/29 16:29:47 maxv Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: aarp.c,v 1.41 2018/02/17 19:10:18 rjs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: aarp.c,v 1.42 2018/05/29 16:29:47 maxv Exp $"); #include "opt_mbuftrace.h" #include "opt_atalk.h" @@ -673,15 +673,3 @@ aarpprobe(void *arp) aa->aa_probcnt--; mutex_exit(softnet_lock); } - -void -aarp_clean(void) -{ - struct aarptab *aat; - int i; - - callout_stop(_callout); - for (i = 0, aat = aarptab; i < AARPTAB_SIZE; i++, aat++) - if (aat->aat_hold) - m_freem(aat->aat_hold); -} Index: src/sys/netatalk/at_extern.h diff -u src/sys/netatalk/at_extern.h:1.19 src/sys/netatalk/at_extern.h:1.20 --- src/sys/netatalk/at_extern.h:1.19 Wed Jan 20 21:59:19 2016 +++ src/sys/netatalk/at_extern.h Tue May 29 16:29:47 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: at_extern.h,v 1.19 2016/01/20 21:59:19 riastradh Exp $ */ +/* $NetBSD: at_extern.h,v 1.20 2018/05/29 16:29:47 maxv Exp $ */ /* * Copyright (c) 1990,1994 Regents of The University of Michigan. @@ -50,7 +50,6 @@ int aarpresolve(struct ifnet *, struct m u_char *); void aarpinput(struct ifnet *, struct mbuf *); int at_broadcast(const struct sockaddr_at *); -void aarp_clean(void); int at_control(u_long, void *, struct ifnet *); int at_inithead(void **, int); void at_purgeaddr(struct ifaddr *);
CVS commit: src/sys/netatalk
Module Name:src Committed By: rjs Date: Sat Feb 17 19:10:18 UTC 2018 Modified Files: src/sys/netatalk: aarp.c at_control.c ddp_input.c ddp_output.c ddp_usrreq.c files.netatalk Log Message: Add NETATALKDEBUG to the option header and include that in the main source files. To generate a diff of this commit: cvs rdiff -u -r1.40 -r1.41 src/sys/netatalk/aarp.c cvs rdiff -u -r1.39 -r1.40 src/sys/netatalk/at_control.c cvs rdiff -u -r1.29 -r1.30 src/sys/netatalk/ddp_input.c cvs rdiff -u -r1.20 -r1.21 src/sys/netatalk/ddp_output.c cvs rdiff -u -r1.70 -r1.71 src/sys/netatalk/ddp_usrreq.c cvs rdiff -u -r1.3 -r1.4 src/sys/netatalk/files.netatalk 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/aarp.c diff -u src/sys/netatalk/aarp.c:1.40 src/sys/netatalk/aarp.c:1.41 --- src/sys/netatalk/aarp.c:1.40 Sat Dec 9 10:14:04 2017 +++ src/sys/netatalk/aarp.c Sat Feb 17 19:10:18 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: aarp.c,v 1.40 2017/12/09 10:14:04 maxv Exp $ */ +/* $NetBSD: aarp.c,v 1.41 2018/02/17 19:10:18 rjs Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,9 +27,10 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: aarp.c,v 1.40 2017/12/09 10:14:04 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: aarp.c,v 1.41 2018/02/17 19:10:18 rjs Exp $"); #include "opt_mbuftrace.h" +#include "opt_atalk.h" #include #include Index: src/sys/netatalk/at_control.c diff -u src/sys/netatalk/at_control.c:1.39 src/sys/netatalk/at_control.c:1.40 --- src/sys/netatalk/at_control.c:1.39 Mon Aug 1 03:15:30 2016 +++ src/sys/netatalk/at_control.c Sat Feb 17 19:10:18 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: at_control.c,v 1.39 2016/08/01 03:15:30 ozaki-r Exp $ */ +/* $NetBSD: at_control.c,v 1.40 2018/02/17 19:10:18 rjs Exp $ */ /* * Copyright (c) 1990,1994 Regents of The University of Michigan. @@ -27,7 +27,9 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: at_control.c,v 1.39 2016/08/01 03:15:30 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: at_control.c,v 1.40 2018/02/17 19:10:18 rjs Exp $"); + +#include "opt_atalk.h" #include #include Index: src/sys/netatalk/ddp_input.c diff -u src/sys/netatalk/ddp_input.c:1.29 src/sys/netatalk/ddp_input.c:1.30 --- src/sys/netatalk/ddp_input.c:1.29 Thu Dec 8 05:16:33 2016 +++ src/sys/netatalk/ddp_input.c Sat Feb 17 19:10:18 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_input.c,v 1.29 2016/12/08 05:16:33 ozaki-r Exp $ */ +/* $NetBSD: ddp_input.c,v 1.30 2018/02/17 19:10:18 rjs Exp $ */ /* * Copyright (c) 1990,1994 Regents of The University of Michigan. @@ -27,7 +27,8 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ddp_input.c,v 1.29 2016/12/08 05:16:33 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ddp_input.c,v 1.30 2018/02/17 19:10:18 rjs Exp $"); +#include "opt_atalk.h" #include #include Index: src/sys/netatalk/ddp_output.c diff -u src/sys/netatalk/ddp_output.c:1.20 src/sys/netatalk/ddp_output.c:1.21 --- src/sys/netatalk/ddp_output.c:1.20 Thu Dec 8 05:16:33 2016 +++ src/sys/netatalk/ddp_output.c Sat Feb 17 19:10:18 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_output.c,v 1.20 2016/12/08 05:16:33 ozaki-r Exp $ */ +/* $NetBSD: ddp_output.c,v 1.21 2018/02/17 19:10:18 rjs Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,8 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ddp_output.c,v 1.20 2016/12/08 05:16:33 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ddp_output.c,v 1.21 2018/02/17 19:10:18 rjs Exp $"); +#include "opt_atalk.h" #include #include Index: src/sys/netatalk/ddp_usrreq.c diff -u src/sys/netatalk/ddp_usrreq.c:1.70 src/sys/netatalk/ddp_usrreq.c:1.71 --- src/sys/netatalk/ddp_usrreq.c:1.70 Thu Dec 8 05:16:33 2016 +++ src/sys/netatalk/ddp_usrreq.c Sat Feb 17 19:10:18 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_usrreq.c,v 1.70 2016/12/08 05:16:33 ozaki-r Exp $ */ +/* $NetBSD: ddp_usrreq.c,v 1.71 2018/02/17 19:10:18 rjs Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,9 +27,10 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ddp_usrreq.c,v 1.70 2016/12/08 05:16:33 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ddp_usrreq.c,v 1.71 2018/02/17 19:10:18 rjs Exp $"); #include "opt_mbuftrace.h" +#include "opt_atalk.h" #include #include Index: src/sys/netatalk/files.netatalk diff -u src/sys/netatalk/files.netatalk:1.3 src/sys/netatalk/files.netatalk:1.4 --- src/sys/netatalk/files.netatalk:1.3 Mon Dec 8 07:18:45 2014 +++ src/sys/netatalk/files.netatalk Sat Feb 17 19:10:18 2018 @@ -1,6 +1,6 @@ -# $NetBSD: files.netatalk,v 1.3 2014/12/08 07:18:45 uebayasi Exp $ +# $NetBSD: files.netatalk,v 1.4 2018/02/17 19:10:18 rjs Exp $ -defflag opt_atalk.h NETATALK +defflag opt_atalk.h NETATALK NETATALKDEBUG define netatalk file netatalk/aarp.c netatalk
CVS commit: src/sys/netatalk
Module Name:src Committed By: maxv Date: Sat Dec 9 10:14:04 UTC 2017 Modified Files: src/sys/netatalk: aarp.c Log Message: Mmh, pull up the packet to ether_aarp, otherwise we're reading past the end of the mbuf. To generate a diff of this commit: cvs rdiff -u -r1.39 -r1.40 src/sys/netatalk/aarp.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/aarp.c diff -u src/sys/netatalk/aarp.c:1.39 src/sys/netatalk/aarp.c:1.40 --- src/sys/netatalk/aarp.c:1.39 Mon Aug 1 03:15:30 2016 +++ src/sys/netatalk/aarp.c Sat Dec 9 10:14:04 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: aarp.c,v 1.39 2016/08/01 03:15:30 ozaki-r Exp $ */ +/* $NetBSD: aarp.c,v 1.40 2017/12/09 10:14:04 maxv Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: aarp.c,v 1.39 2016/08/01 03:15:30 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: aarp.c,v 1.40 2017/12/09 10:14:04 maxv Exp $"); #include "opt_mbuftrace.h" @@ -351,6 +351,11 @@ at_aarpinput(struct ifnet *ifp, struct m struct psref psref; struct ifaddr *ifa; + /* We should also check ar_hln and ar_pln. */ + if ((m = m_pullup(m, sizeof(struct ether_aarp))) == NULL) { + return; + } + ea = mtod(m, struct ether_aarp *); /* Check to see if from my hardware address */
CVS commit: src/sys/netatalk
Module Name:src Committed By: riastradh Date: Wed Jan 20 21:59:19 UTC 2016 Modified Files: src/sys/netatalk: at_extern.h ddp_output.c Log Message: Give proper prototype to ddp_output. To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/netatalk/at_extern.h cvs rdiff -u -r1.17 -r1.18 src/sys/netatalk/ddp_output.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/at_extern.h diff -u src/sys/netatalk/at_extern.h:1.18 src/sys/netatalk/at_extern.h:1.19 --- src/sys/netatalk/at_extern.h:1.18 Tue Jul 1 05:49:18 2014 +++ src/sys/netatalk/at_extern.h Wed Jan 20 21:59:19 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: at_extern.h,v 1.18 2014/07/01 05:49:18 rtr Exp $ */ +/* $NetBSD: at_extern.h,v 1.19 2016/01/20 21:59:19 riastradh Exp $ */ /* * Copyright (c) 1990,1994 Regents of The University of Michigan. @@ -37,6 +37,7 @@ struct ifaddr; struct at_ifaddr; struct route; struct socket; +struct ddpcb; extern struct mowner atalk_rx_mowner; extern struct mowner atalk_tx_mowner; @@ -59,7 +60,7 @@ u_int16_t void ddp_init(void); struct ifaddr * at_ifawithnet(const struct sockaddr_at *, struct ifnet *); -int ddp_output(struct mbuf *, ...); +int ddp_output(struct mbuf *, struct ddpcb *); struct ddpcb * ddp_search(struct sockaddr_at *, struct sockaddr_at *, struct at_ifaddr *); Index: src/sys/netatalk/ddp_output.c diff -u src/sys/netatalk/ddp_output.c:1.17 src/sys/netatalk/ddp_output.c:1.18 --- src/sys/netatalk/ddp_output.c:1.17 Thu Sep 12 19:47:58 2013 +++ src/sys/netatalk/ddp_output.c Wed Jan 20 21:59:19 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_output.c,v 1.17 2013/09/12 19:47:58 martin Exp $ */ +/* $NetBSD: ddp_output.c,v 1.18 2016/01/20 21:59:19 riastradh Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ddp_output.c,v 1.17 2013/09/12 19:47:58 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ddp_output.c,v 1.18 2016/01/20 21:59:19 riastradh Exp $"); #include #include @@ -52,15 +52,9 @@ __KERNEL_RCSID(0, "$NetBSD: ddp_output.c int ddp_cksum = 1; int -ddp_output(struct mbuf *m,...) +ddp_output(struct mbuf *m, struct ddpcb *ddp) { - struct ddpcb *ddp; struct ddpehdr *deh; - va_list ap; - - va_start(ap, m); - ddp = va_arg(ap, struct ddpcb *); - va_end(ap); M_PREPEND(m, sizeof(struct ddpehdr), M_DONTWAIT); if (!m)
CVS commit: src/sys/netatalk
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;
CVS commit: src/sys/netatalk
Module Name:src Committed By: uebayasi Date: Mon Dec 8 07:18:45 UTC 2014 Modified Files: src/sys/netatalk: files.netatalk Log Message: Define netatalk module. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/netatalk/files.netatalk 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/files.netatalk diff -u src/sys/netatalk/files.netatalk:1.2 src/sys/netatalk/files.netatalk:1.3 --- src/sys/netatalk/files.netatalk:1.2 Tue Dec 2 19:33:44 2014 +++ src/sys/netatalk/files.netatalk Mon Dec 8 07:18:45 2014 @@ -1,7 +1,8 @@ -# $NetBSD: files.netatalk,v 1.2 2014/12/02 19:33:44 christos Exp $ +# $NetBSD: files.netatalk,v 1.3 2014/12/08 07:18:45 uebayasi Exp $ defflag opt_atalk.h NETATALK +define netatalk file netatalk/aarp.c netatalk file netatalk/at_control.c netatalk file netatalk/at_print.c
CVS commit: src/sys/netatalk
Module Name:src Committed By: christos Date: Tue Dec 2 19:33:44 UTC 2014 Modified Files: src/sys/netatalk: at.h files.netatalk Added Files: src/sys/netatalk: at_print.c Log Message: - s/u_intX/uintX/ - add routines to print sockaddr_at and ataddr. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/netatalk/at.h cvs rdiff -u -r0 -r1.1 src/sys/netatalk/at_print.c cvs rdiff -u -r1.1 -r1.2 src/sys/netatalk/files.netatalk 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/at.h diff -u src/sys/netatalk/at.h:1.7 src/sys/netatalk/at.h:1.8 --- src/sys/netatalk/at.h:1.7 Sat Dec 10 18:29:05 2005 +++ src/sys/netatalk/at.h Tue Dec 2 14:33:44 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: at.h,v 1.7 2005/12/10 23:29:05 elad Exp $ */ +/* $NetBSD: at.h,v 1.8 2014/12/02 19:33:44 christos Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -59,19 +59,19 @@ typedef __sa_family_t sa_family_t; * AppleTalk address. */ struct at_addr { - u_int16_t s_net; - u_int8_t s_node; + uint16_t s_net; + uint8_t s_node; }; -#define ATADDR_ANYNET (u_int16_t)0x -#define ATADDR_ANYNODE (u_int8_t)0x00 -#define ATADDR_ANYPORT (u_int8_t)0x00 -#define ATADDR_BCAST (u_int8_t)0xff /* There is no BCAST for NET */ +#define ATADDR_ANYNET (uint16_t)0x +#define ATADDR_ANYNODE (uint8_t)0x00 +#define ATADDR_ANYPORT (uint8_t)0x00 +#define ATADDR_BCAST (uint8_t)0xff /* There is no BCAST for NET */ struct netrange { - u_int8_t nr_phase; - u_int16_t nr_firstnet; - u_int16_t nr_lastnet; + uint8_t nr_phase; + uint16_t nr_firstnet; + uint16_t nr_lastnet; }; /* @@ -82,9 +82,9 @@ struct netrange { * by the kernel. */ struct sockaddr_at { - u_int8_t sat_len; + uint8_t sat_len; sa_family_t sat_family; - u_int8_tsat_port; + uint8_t sat_port; struct at_addr sat_addr; union { struct netrange r_netrange; @@ -102,4 +102,12 @@ extern struct domain atalkdomain; extern const struct protosw atalksw[]; #endif +#if defined(_KERNEL) || defined(_TEST) +#define ATALK_ADDRSTRLEN 10 + +extern struct domain atalkdomain; +int at_print(char *, size_t, const struct at_addr *); +int sat_print(char *, size_t, const void *); +#endif + #endif /* !_NETATALK_AT_H_ */ Index: src/sys/netatalk/files.netatalk diff -u src/sys/netatalk/files.netatalk:1.1 src/sys/netatalk/files.netatalk:1.2 --- src/sys/netatalk/files.netatalk:1.1 Thu Oct 10 18:10:53 2002 +++ src/sys/netatalk/files.netatalk Tue Dec 2 14:33:44 2014 @@ -1,9 +1,10 @@ -# $NetBSD: files.netatalk,v 1.1 2002/10/10 22:10:53 thorpej Exp $ +# $NetBSD: files.netatalk,v 1.2 2014/12/02 19:33:44 christos Exp $ defflag opt_atalk.h NETATALK file netatalk/aarp.c netatalk file netatalk/at_control.c netatalk +file netatalk/at_print.c file netatalk/at_proto.c netatalk file netatalk/at_rmx.c netatalkdebug file netatalk/ddp_input.c netatalk Added files: Index: src/sys/netatalk/at_print.c diff -u /dev/null src/sys/netatalk/at_print.c:1.1 --- /dev/null Tue Dec 2 14:33:44 2014 +++ src/sys/netatalk/at_print.c Tue Dec 2 14:33:44 2014 @@ -0,0 +1,59 @@ +/* $NetBSD: at_print.c,v 1.1 2014/12/02 19:33:44 christos Exp $ */ + +/*- + * Copyright (c) 2014 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include sys/cdefs.h + +#include sys/types.h +#ifdef _KERNEL +__KERNEL_RCSID(0, $NetBSD: at_print.c,v 1.1 2014/12/02 19:33:44 christos Exp $); +#include sys/systm.h +#else +__RCSID($NetBSD: at_print.c,v 1.1 2014/12/02 19:33:44 christos Exp $); +#include stdio.h +#endif
CVS commit: src/sys/netatalk
Module Name:src Committed By: rtr Date: Thu Aug 7 07:51:28 UTC 2014 Modified Files: src/sys/netatalk: ddp_usrreq.c Log Message: suppress possibly used uninitialized warning on sgimips from martin@ To generate a diff of this commit: cvs rdiff -u -r1.60 -r1.61 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.60 src/sys/netatalk/ddp_usrreq.c:1.61 --- src/sys/netatalk/ddp_usrreq.c:1.60 Thu Aug 7 01:02:30 2014 +++ src/sys/netatalk/ddp_usrreq.c Thu Aug 7 07:51:28 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_usrreq.c,v 1.60 2014/08/07 01:02:30 rtr Exp $ */ +/* $NetBSD: ddp_usrreq.c,v 1.61 2014/08/07 07:51:28 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.60 2014/08/07 01:02:30 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c,v 1.61 2014/08/07 07:51:28 rtr Exp $); #include opt_mbuftrace.h @@ -541,7 +541,7 @@ ddp_send(struct socket *so, struct mbuf { struct ddpcb *ddp = sotoddpcb(so); int error = 0; - int s; + int s = 0; /* XXX gcc 4.8 warns on sgimips */ KASSERT(solocked(so)); KASSERT(ddp != NULL);
CVS commit: src/sys/netatalk
Module Name:src Committed By: rtr Date: Thu Aug 7 01:02:30 UTC 2014 Modified Files: src/sys/netatalk: ddp_usrreq.c Log Message: remove KASSERT(nam != NULL) from ddp_send() the following code makes the validity of it questionable. we'll investigate later whether it can be put back and the code simplified. To generate a diff of this commit: cvs rdiff -u -r1.59 -r1.60 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.59 src/sys/netatalk/ddp_usrreq.c:1.60 --- src/sys/netatalk/ddp_usrreq.c:1.59 Tue Aug 5 07:55:31 2014 +++ src/sys/netatalk/ddp_usrreq.c Thu Aug 7 01:02:30 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_usrreq.c,v 1.59 2014/08/05 07:55:31 rtr Exp $ */ +/* $NetBSD: ddp_usrreq.c,v 1.60 2014/08/07 01:02:30 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.59 2014/08/05 07:55:31 rtr Exp $); +__KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c,v 1.60 2014/08/07 01:02:30 rtr Exp $); #include opt_mbuftrace.h @@ -545,7 +545,6 @@ ddp_send(struct socket *so, struct mbuf KASSERT(solocked(so)); KASSERT(ddp != NULL); - KASSERT(nam != NULL); if (nam) { if (ddp-ddp_fsat.sat_port != ATADDR_ANYPORT)
CVS commit: src/sys/netatalk
Module Name:src Committed By: martin Date: Thu Sep 12 19:47:58 UTC 2013 Modified Files: src/sys/netatalk: ddp_output.c Log Message: Remove unused variable To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/netatalk/ddp_output.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_output.c diff -u src/sys/netatalk/ddp_output.c:1.16 src/sys/netatalk/ddp_output.c:1.17 --- src/sys/netatalk/ddp_output.c:1.16 Tue Jan 31 09:53:44 2012 +++ src/sys/netatalk/ddp_output.c Thu Sep 12 19:47:58 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_output.c,v 1.16 2012/01/31 09:53:44 hauke Exp $ */ +/* $NetBSD: ddp_output.c,v 1.17 2013/09/12 19:47:58 martin Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ddp_output.c,v 1.16 2012/01/31 09:53:44 hauke Exp $); +__KERNEL_RCSID(0, $NetBSD: ddp_output.c,v 1.17 2013/09/12 19:47:58 martin Exp $); #include sys/param.h #include sys/systm.h @@ -127,7 +127,6 @@ ddp_route(struct mbuf *m, struct route * struct at_ifaddr *aa = NULL; struct ifnet *ifp = NULL; uint16_tnet; - uint8_t node; uint8_t loopback = 0; if ((rt = rtcache_validate(ro)) != NULL (ifp = rt-rt_ifp) != NULL) { @@ -135,7 +134,6 @@ ddp_route(struct mbuf *m, struct route * uint16_t dnet = dst-sat_addr.s_net; uint8_t dnode = dst-sat_addr.s_node; net = satosat(rt-rt_gateway)-sat_addr.s_net; - node = satosat(rt-rt_gateway)-sat_addr.s_node; TAILQ_FOREACH(aa, at_ifaddr, aa_list) { if (ntohs(net) = ntohs(aa-aa_firstnet)
CVS commit: src/sys/netatalk
Module Name:src Committed By: hauke Date: Tue Jan 31 09:53:44 UTC 2012 Modified Files: src/sys/netatalk: aarp.c ddp_output.c Log Message: Fix AppleTalk name registration, as discussed on the port-macppc list http://mail-index.netbsd.org/port-macppc/2010/07/09/msg001119.html and in PR kern/44412, by looping back ddp broadcasts. Patch submitted by David Riley against netbsd-5, adaptation for -current and minor KNF touchup by me. Needs to be pulled up to netbsd-5. To generate a diff of this commit: cvs rdiff -u -r1.35 -r1.36 src/sys/netatalk/aarp.c cvs rdiff -u -r1.15 -r1.16 src/sys/netatalk/ddp_output.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/aarp.c diff -u src/sys/netatalk/aarp.c:1.35 src/sys/netatalk/aarp.c:1.36 --- src/sys/netatalk/aarp.c:1.35 Sun May 8 13:51:31 2011 +++ src/sys/netatalk/aarp.c Tue Jan 31 09:53:44 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: aarp.c,v 1.35 2011/05/08 13:51:31 bouyer Exp $ */ +/* $NetBSD: aarp.c,v 1.36 2012/01/31 09:53:44 hauke Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: aarp.c,v 1.35 2011/05/08 13:51:31 bouyer Exp $); +__KERNEL_RCSID(0, $NetBSD: aarp.c,v 1.36 2012/01/31 09:53:44 hauke Exp $); #include opt_mbuftrace.h @@ -222,11 +222,19 @@ aarpwhohas(struct ifnet *ifp, const stru ea-aarp_tpa = sat-sat_addr.s_node; } + /* If we are talking to ourselves, use the loopback interface. */ + if (AA_SAT(aa)-sat_addr.s_net == sat-sat_addr.s_net + AA_SAT(aa)-sat_addr.s_node == sat-sat_addr.s_node) + ifp = lo0ifp; + #ifdef NETATALKDEBUG - printf(aarp: sending request via %u.%u seaking %u.%u\n, - ntohs(AA_SAT(aa)-sat_addr.s_net), AA_SAT(aa)-sat_addr.s_node, - ntohs(sat-sat_addr.s_net), sat-sat_addr.s_node); -#endif /* NETATALKDEBUG */ + printf(aarp: sending request via %u.%u through %s seeking %u.%u\n, + ntohs(AA_SAT(aa)-sat_addr.s_net), + AA_SAT(aa)-sat_addr.s_node, + ifp-if_xname, + ntohs(sat-sat_addr.s_net), + sat-sat_addr.s_node); +#endif /* NETATALKDEBUG */ sa.sa_len = sizeof(struct sockaddr); sa.sa_family = AF_UNSPEC; Index: src/sys/netatalk/ddp_output.c diff -u src/sys/netatalk/ddp_output.c:1.15 src/sys/netatalk/ddp_output.c:1.16 --- src/sys/netatalk/ddp_output.c:1.15 Sun Jul 17 20:54:53 2011 +++ src/sys/netatalk/ddp_output.c Tue Jan 31 09:53:44 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_output.c,v 1.15 2011/07/17 20:54:53 joerg Exp $ */ +/* $NetBSD: ddp_output.c,v 1.16 2012/01/31 09:53:44 hauke Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ddp_output.c,v 1.15 2011/07/17 20:54:53 joerg Exp $); +__KERNEL_RCSID(0, $NetBSD: ddp_output.c,v 1.16 2012/01/31 09:53:44 hauke Exp $); #include sys/param.h #include sys/systm.h @@ -126,20 +126,40 @@ ddp_route(struct mbuf *m, struct route * struct elaphdr *elh; struct at_ifaddr *aa = NULL; struct ifnet *ifp = NULL; - u_short net; + uint16_tnet; + uint8_t node; + uint8_t loopback = 0; if ((rt = rtcache_validate(ro)) != NULL (ifp = rt-rt_ifp) != NULL) { + const struct sockaddr_at *dst = satocsat(rtcache_getdst(ro)); + uint16_t dnet = dst-sat_addr.s_net; + uint8_t dnode = dst-sat_addr.s_node; net = satosat(rt-rt_gateway)-sat_addr.s_net; + node = satosat(rt-rt_gateway)-sat_addr.s_node; + TAILQ_FOREACH(aa, at_ifaddr, aa_list) { - if (aa-aa_ifp == ifp - ntohs(net) = ntohs(aa-aa_firstnet) + if (ntohs(net) = ntohs(aa-aa_firstnet) ntohs(net) = ntohs(aa-aa_lastnet)) { +/* Are we talking to ourselves? */ +if (dnet == aa-aa_addr.sat_addr.s_net +dnode == aa-aa_addr.sat_addr.s_node) { + /* If to us, redirect to lo0. */ + ifp = lo0ifp; +} +/* Or is it a broadcast? */ +else if (dnet == aa-aa_addr.sat_addr.s_net + dnode == 255) { + /* If broadcast, loop back a copy. */ + loopback = 1; +} break; } } } if (aa == NULL) { +#ifdef NETATALKDEBUG printf(%s: no address found\n, __func__); +#endif m_freem(m); return EINVAL; } @@ -161,7 +181,8 @@ ddp_route(struct mbuf *m, struct route * ntohs(aa-aa_firstnet) ntohs(satocsat(rtcache_getdst(ro))-sat_addr.s_net) = ntohs(aa-aa_lastnet)) { - elh-el_dnode = satocsat(rtcache_getdst(ro))-sat_addr.s_node; + elh-el_dnode = + satocsat(rtcache_getdst(ro))-sat_addr.s_node; } else { elh-el_dnode = satosat(rt-rt_gateway)-sat_addr.s_node; @@ -182,5 +203,13 @@ ddp_route(struct mbuf *m, struct route * #endif /* XXX */ + if (loopback rtcache_getdst(ro)-sa_family == AF_APPLETALK) { + struct mbuf *copym = m_copypacket(m, M_DONTWAIT); + +#ifdef NETATALKDEBUG + printf(Looping back (not AARP).\n); +#endif + looutput(lo0ifp,
CVS commit: src/sys/netatalk
Module Name:src Committed By: dyoung Date: Wed Oct 19 01:50:27 UTC 2011 Modified Files: src/sys/netatalk: at_control.c Log Message: Use if_addr_init() instead of ifp-if_ioctl(). To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/sys/netatalk/at_control.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/at_control.c diff -u src/sys/netatalk/at_control.c:1.33 src/sys/netatalk/at_control.c:1.34 --- src/sys/netatalk/at_control.c:1.33 Sat Jan 30 21:48:30 2010 +++ src/sys/netatalk/at_control.c Wed Oct 19 01:50:27 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: at_control.c,v 1.33 2010/01/30 21:48:30 is Exp $ */ +/* $NetBSD: at_control.c,v 1.34 2011/10/19 01:50:27 dyoung Exp $ */ /* * Copyright (c) 1990,1994 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: at_control.c,v 1.33 2010/01/30 21:48:30 is Exp $); +__KERNEL_RCSID(0, $NetBSD: at_control.c,v 1.34 2011/10/19 01:50:27 dyoung Exp $); #include sys/param.h #include sys/systm.h @@ -575,7 +575,7 @@ at_ifinit(struct ifnet *ifp, struct at_i * Now that we have selected an address, we need to tell the * interface about it, just in case it needs to adjust something. */ - if ((error = (*ifp-if_ioctl)(ifp, SIOCINITIFADDR, aa)) != 0) { + if ((error = if_addr_init(ifp, aa-aa_ifa, true)) != 0) { /* * of course this could mean that it objects violently * so if it does, we back out again..
CVS commit: src/sys/netatalk
Module Name:src Committed By: bouyer Date: Sun May 8 13:51:31 UTC 2011 Modified Files: src/sys/netatalk: aarp.c aarp.h ddp_usrreq.c Log Message: aarpprobe() is called before MOWNER_ATTACH(aarp_mowner), leading to a DIAGNOSTIC panic when MBUFTRACE is defined and atalkd is started. Fix by moving MOWNER_ATTACH(aarp_mowner) to ddp_init(). Should fix PR kern/44734 To generate a diff of this commit: cvs rdiff -u -r1.34 -r1.35 src/sys/netatalk/aarp.c cvs rdiff -u -r1.2 -r1.3 src/sys/netatalk/aarp.h cvs rdiff -u -r1.39 -r1.40 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/aarp.c diff -u src/sys/netatalk/aarp.c:1.34 src/sys/netatalk/aarp.c:1.35 --- src/sys/netatalk/aarp.c:1.34 Sat Sep 12 20:43:18 2009 +++ src/sys/netatalk/aarp.c Sun May 8 13:51:31 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: aarp.c,v 1.34 2009/09/12 20:43:18 tsutsui Exp $ */ +/* $NetBSD: aarp.c,v 1.35 2011/05/08 13:51:31 bouyer Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: aarp.c,v 1.34 2009/09/12 20:43:18 tsutsui Exp $); +__KERNEL_RCSID(0, $NetBSD: aarp.c,v 1.35 2011/05/08 13:51:31 bouyer Exp $); #include opt_mbuftrace.h @@ -508,7 +508,6 @@ first = 0; callout_init(aarptimer_callout, 0); callout_reset(aarptimer_callout, hz, aarptimer, NULL); - MOWNER_ATTACH(aarp_mowner); } aat = aarptab[AARPTAB_HASH(*addr) * AARPTAB_BSIZ]; for (n = 0; n AARPTAB_BSIZ; n++, aat++) { Index: src/sys/netatalk/aarp.h diff -u src/sys/netatalk/aarp.h:1.2 src/sys/netatalk/aarp.h:1.3 --- src/sys/netatalk/aarp.h:1.2 Sat Dec 10 23:29:05 2005 +++ src/sys/netatalk/aarp.h Sun May 8 13:51:31 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: aarp.h,v 1.2 2005/12/10 23:29:05 elad Exp $ */ +/* $NetBSD: aarp.h,v 1.3 2011/05/08 13:51:31 bouyer Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -76,4 +76,6 @@ #define AARPOP_RESPONSE 0x02 #define AARPOP_PROBE 0x03 +extern struct mowner aarp_mowner; + #endif /* !_NETATALK_AARP_H_ */ Index: src/sys/netatalk/ddp_usrreq.c diff -u src/sys/netatalk/ddp_usrreq.c:1.39 src/sys/netatalk/ddp_usrreq.c:1.40 --- src/sys/netatalk/ddp_usrreq.c:1.39 Thu Apr 16 21:37:17 2009 +++ src/sys/netatalk/ddp_usrreq.c Sun May 8 13:51:31 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: ddp_usrreq.c,v 1.39 2009/04/16 21:37:17 elad Exp $ */ +/* $NetBSD: ddp_usrreq.c,v 1.40 2011/05/08 13:51:31 bouyer 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.39 2009/04/16 21:37:17 elad Exp $); +__KERNEL_RCSID(0, $NetBSD: ddp_usrreq.c,v 1.40 2011/05/08 13:51:31 bouyer Exp $); #include opt_mbuftrace.h @@ -554,6 +554,7 @@ MOWNER_ATTACH(atalk_tx_mowner); MOWNER_ATTACH(atalk_rx_mowner); + MOWNER_ATTACH(aarp_mowner); } #if 0
CVS commit: src/sys/netatalk
Module Name:src Committed By: is Date: Sat Jan 30 21:48:30 UTC 2010 Modified Files: src/sys/netatalk: at_control.c Log Message: Use the symbolic names. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/netatalk/at_control.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/at_control.c diff -u src/sys/netatalk/at_control.c:1.32 src/sys/netatalk/at_control.c:1.33 --- src/sys/netatalk/at_control.c:1.32 Sat Apr 18 14:58:05 2009 +++ src/sys/netatalk/at_control.c Sat Jan 30 21:48:30 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: at_control.c,v 1.32 2009/04/18 14:58:05 tsutsui Exp $ */ +/* $NetBSD: at_control.c,v 1.33 2010/01/30 21:48:30 is Exp $ */ /* * Copyright (c) 1990,1994 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: at_control.c,v 1.32 2009/04/18 14:58:05 tsutsui Exp $); +__KERNEL_RCSID(0, $NetBSD: at_control.c,v 1.33 2010/01/30 21:48:30 is Exp $); #include sys/param.h #include sys/systm.h @@ -609,8 +609,8 @@ aa-aa_ifa.ifa_metric = ifp-if_metric; if (ifp-if_flags IFF_BROADCAST) { - aa-aa_broadaddr.sat_addr.s_net = htons(0); - aa-aa_broadaddr.sat_addr.s_node = 0xff; + aa-aa_broadaddr.sat_addr.s_net = htons(ATADDR_ANYNET); + aa-aa_broadaddr.sat_addr.s_node = ATADDR_BCAST; aa-aa_ifa.ifa_broadaddr = (struct sockaddr *) aa-aa_broadaddr; /* add the range of routes needed */
CVS commit: src/sys/netatalk
Module Name:src Committed By: tsutsui Date: Sat Sep 12 20:43:18 UTC 2009 Modified Files: src/sys/netatalk: aarp.c Log Message: Make sure to set length in AARP-response packets. PR kern/41124 To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/sys/netatalk/aarp.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/aarp.c diff -u src/sys/netatalk/aarp.c:1.33 src/sys/netatalk/aarp.c:1.34 --- src/sys/netatalk/aarp.c:1.33 Sat Apr 18 14:58:05 2009 +++ src/sys/netatalk/aarp.c Sat Sep 12 20:43:18 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: aarp.c,v 1.33 2009/04/18 14:58:05 tsutsui Exp $ */ +/* $NetBSD: aarp.c,v 1.34 2009/09/12 20:43:18 tsutsui Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -27,7 +27,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: aarp.c,v 1.33 2009/04/18 14:58:05 tsutsui Exp $); +__KERNEL_RCSID(0, $NetBSD: aarp.c,v 1.34 2009/09/12 20:43:18 tsutsui Exp $); #include opt_mbuftrace.h @@ -443,6 +443,12 @@ m_freem(m); return; } + + /* + * Prepare and send AARP-response. + */ + m-m_len = sizeof(*ea); + m-m_pkthdr.len = sizeof(*ea); memcpy(ea-aarp_tha, ea-aarp_sha, sizeof(ea-aarp_sha)); memcpy(ea-aarp_sha, CLLADDR(ifp-if_sadl), sizeof(ea-aarp_sha));