Module Name: src Committed By: maxv Date: Sat Oct 27 06:46:43 UTC 2018
Modified Files: src/sys/net: if_pppoe.c Log Message: Remove printfs that are too easily reachable, switch to M_REGION_GET, and simplify the initialization. No real functional change. To generate a diff of this commit: cvs rdiff -u -r1.145 -r1.146 src/sys/net/if_pppoe.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/net/if_pppoe.c diff -u src/sys/net/if_pppoe.c:1.145 src/sys/net/if_pppoe.c:1.146 --- src/sys/net/if_pppoe.c:1.145 Sat Oct 27 05:56:10 2018 +++ src/sys/net/if_pppoe.c Sat Oct 27 06:46:43 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: if_pppoe.c,v 1.145 2018/10/27 05:56:10 maxv Exp $ */ +/* $NetBSD: if_pppoe.c,v 1.146 2018/10/27 06:46:43 maxv Exp $ */ /* * Copyright (c) 2002, 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_pppoe.c,v 1.145 2018/10/27 05:56:10 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_pppoe.c,v 1.146 2018/10/27 06:46:43 maxv Exp $"); #ifdef _KERNEL_OPT #include "pppoe.h" @@ -572,11 +572,6 @@ pppoe_dispatch_disc_pkt(struct mbuf *m, struct ifnet *rcvif; struct psref psref; - /* as long as we don't know which instance */ - strlcpy(devname, "pppoe", sizeof(devname)); - - err_msg = NULL; - errortag = 0; if (m->m_len < sizeof(*eh)) { m = m_pullup(m, sizeof(*eh)); if (m == NULL) @@ -585,37 +580,30 @@ pppoe_dispatch_disc_pkt(struct mbuf *m, eh = mtod(m, struct ether_header *); off += sizeof(*eh); - ac_cookie = NULL; - ac_cookie_len = 0; - relay_sid = NULL; - relay_sid_len = 0; - hunique = NULL; - hunique_len = 0; - session = 0; if (m->m_pkthdr.len - off <= PPPOE_HEADERLEN) { - printf("pppoe: packet too short: %d\n", m->m_pkthdr.len); goto done; } - n = m_pulldown(m, off, sizeof(*ph), &noff); - if (!n) { - printf("pppoe: could not get PPPoE header\n"); - m = NULL; + M_REGION_GET(ph, struct pppoehdr *, m, off, sizeof(*ph)); + if (ph == NULL) { goto done; } - ph = (struct pppoehdr *)(mtod(n, char *) + noff); if (ph->vertype != PPPOE_VERTYPE) { - printf("pppoe: unknown version/type packet: 0x%x\n", - ph->vertype); goto done; } + + ac_cookie = NULL; + ac_cookie_len = 0; + relay_sid = NULL; + relay_sid_len = 0; + hunique = NULL; + hunique_len = 0; + session = ntohs(ph->session); plen = ntohs(ph->plen); off += sizeof(*ph); if (plen + off > m->m_pkthdr.len) { - printf("pppoe: packet content does not fit: data available = %d, packet size = %u\n", - m->m_pkthdr.len - off, plen); goto done; } m_adj(m, off + plen - m->m_pkthdr.len); /* ignore trailing garbage */ @@ -623,19 +611,17 @@ pppoe_dispatch_disc_pkt(struct mbuf *m, tag = 0; len = 0; sc = NULL; + err_msg = NULL; + errortag = 0; while (off + sizeof(*pt) <= m->m_pkthdr.len) { - n = m_pulldown(m, off, sizeof(*pt), &noff); - if (!n) { - printf("%s: parse error\n", devname); - m = NULL; + M_REGION_GET(pt, struct pppoetag *, m, off, sizeof(*pt)); + if (pt == NULL) { goto done; } - pt = (struct pppoetag *)(mtod(n, char *) + noff); + tag = ntohs(pt->tag); len = ntohs(pt->len); if (off + len + sizeof(*pt) > m->m_pkthdr.len) { - printf("pppoe: tag 0x%x len 0x%x is too long\n", - tag, len); goto done; } switch (tag) { @@ -730,11 +716,10 @@ pppoe_dispatch_disc_pkt(struct mbuf *m, } } if (error) { - printf("%s: %s: %s\n", devname, - err_msg, error); + printf("pppoe: %s: %s\n", err_msg, error); free(error, M_TEMP); } else - printf("%s: %s\n", devname, err_msg); + printf("pppoe: %s\n", err_msg); if (errortag || m == NULL) goto done; } @@ -802,8 +787,6 @@ breakbreak:; * get sc from ac_cookie if IFF_PASSIVE */ if (ac_cookie == NULL) { - /* be quiet if there is not a single pppoe instance */ - printf("pppoe: received PADR but not includes ac_cookie\n"); goto done; } @@ -1064,27 +1047,23 @@ pppoe_data_input(struct mbuf *m) } m_adj(m, sizeof(struct ether_header)); if (m->m_pkthdr.len <= PPPOE_HEADERLEN) { - printf("pppoe (data): dropping too short packet: %d bytes\n", - m->m_pkthdr.len); goto drop; } if (m->m_len < sizeof(*ph)) { m = m_pullup(m, sizeof(*ph)); if (m == NULL) { - printf("pppoe: could not get PPPoE header\n"); return; } } ph = mtod(m, struct pppoehdr *); if (ph->vertype != PPPOE_VERTYPE) { - printf("pppoe (data): unknown version/type packet: 0x%x\n", - ph->vertype); goto drop; } - if (ph->code != 0) + if (ph->code != 0) { goto drop; + } session = ntohs(ph->session); rcvif = m_get_rcvif_psref(m, &psref);