summaryrefslogtreecommitdiffstats
path: root/sys/net/if_tun.c
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2013-04-26 12:50:32 +0000
committerglebius <glebius@FreeBSD.org>2013-04-26 12:50:32 +0000
commitb4bc270e8f6757fa385861750ab22ba0ca4978ed (patch)
tree073e97431b8851637e702226bc02446cb01b0f4b /sys/net/if_tun.c
parent7eab2144525c38723764e418181b36c7e9cbafad (diff)
downloadFreeBSD-src-b4bc270e8f6757fa385861750ab22ba0ca4978ed.zip
FreeBSD-src-b4bc270e8f6757fa385861750ab22ba0ca4978ed.tar.gz
Add const qualifier to the dst parameter of the ifnet if_output method.
Diffstat (limited to 'sys/net/if_tun.c')
-rw-r--r--sys/net/if_tun.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/sys/net/if_tun.c b/sys/net/if_tun.c
index 3630732..d885024 100644
--- a/sys/net/if_tun.c
+++ b/sys/net/if_tun.c
@@ -128,8 +128,8 @@ static void tuncreate(const char *name, struct cdev *dev);
static int tunifioctl(struct ifnet *, u_long, caddr_t);
static void tuninit(struct ifnet *);
static int tunmodevent(module_t, int, void *);
-static int tunoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
- struct route *ro);
+static int tunoutput(struct ifnet *, struct mbuf *,
+ const struct sockaddr *, struct route *ro);
static void tunstart(struct ifnet *);
static int tun_clone_create(struct if_clone *, int, caddr_t);
@@ -575,7 +575,7 @@ tunifioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
* tunoutput - queue packets from higher level ready to put out.
*/
static int
-tunoutput(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst,
+tunoutput(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst,
struct route *ro)
{
struct tun_softc *tp = ifp->if_softc;
@@ -609,15 +609,13 @@ tunoutput(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst,
}
/* BPF writes need to be handled specially. */
- if (dst->sa_family == AF_UNSPEC) {
+ if (dst->sa_family == AF_UNSPEC)
bcopy(dst->sa_data, &af, sizeof(af));
- dst->sa_family = af;
- }
-
- if (bpf_peers_present(ifp->if_bpf)) {
+ else
af = dst->sa_family;
+
+ if (bpf_peers_present(ifp->if_bpf))
bpf_mtap2(ifp->if_bpf, &af, sizeof(af), m0);
- }
/* prepend sockaddr? this may abort if the mbuf allocation fails */
if (cached_tun_flags & TUN_LMODE) {
@@ -644,10 +642,10 @@ tunoutput(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst,
ifp->if_oerrors++;
return (ENOBUFS);
} else
- *(u_int32_t *)m0->m_data = htonl(dst->sa_family);
+ *(u_int32_t *)m0->m_data = htonl(af);
} else {
#ifdef INET
- if (dst->sa_family != AF_INET)
+ if (af != AF_INET)
#endif
{
m_freem(m0);
OpenPOWER on IntegriCloud