]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/net/if_disc.c
xnu-1228.15.4.tar.gz
[apple/xnu.git] / bsd / net / if_disc.c
index b2cc2c0534e59cae5b5534d2993667e3e7ec7440..00531fdff7a960c51a9d922d0a2b15c4d36d8abb 100644 (file)
@@ -1,16 +1,19 @@
 /*
  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
  *
 /*
  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
  *
- * @APPLE_LICENSE_HEADER_START@
- * 
- * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
  * 
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
  * 
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * 
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
@@ -20,7 +23,7 @@
  * Please see the License for the specific language governing rights and
  * limitations under the License.
  * 
  * Please see the License for the specific language governing rights and
  * limitations under the License.
  * 
- * @APPLE_LICENSE_HEADER_END@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 /*
  * Copyright (c) 1982, 1986, 1993
  */
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -81,7 +84,7 @@
 #define DSMTU  65532
 #endif
 
 #define DSMTU  65532
 #endif
 
-static void discattach __P((void));
+static void discattach(void);
 
 static struct  ifnet discif;
 static int discoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
 
 static struct  ifnet discif;
 static int discoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
@@ -150,21 +153,10 @@ discoutput(ifp, m, dst, rt)
        }
 
        if (discif.if_bpf) {
        }
 
        if (discif.if_bpf) {
-               /*
-                * We need to prepend the address family as
-                * a four byte field.  Cons up a dummy header
-                * to pacify bpf.  This is safe because bpf
-                * will only read from the mbuf (i.e., it won't
-                * try to free it or keep a pointer a to it).
-                */
-               struct mbuf m0;
+               /* We need to prepend the address family as a four byte field. */
                u_int af = dst->sa_family;
 
                u_int af = dst->sa_family;
 
-               m0.m_next = m;
-               m0.m_len = 4;
-               m0.m_data = (char *)⁡
-
-               bpf_mtap(&discif, &m0);
+               bpf_tap_out(ifp, 0, m, &af, sizeof(af));
        }
        m->m_pkthdr.rcvif = ifp;
 
        }
        m->m_pkthdr.rcvif = ifp;
 
@@ -203,7 +195,7 @@ discioctl(ifp, cmd, data)
        switch (cmd) {
 
        case SIOCSIFADDR:
        switch (cmd) {
 
        case SIOCSIFADDR:
-               ifp->if_flags |= IFF_UP;
+               ifnet_set_flags(ifp, IFF_UP, IFF_UP);
                ifa = (struct ifaddr *)data;
                if (ifa != 0)
                        ifa->ifa_rtrequest = discrtrequest;
                ifa = (struct ifaddr *)data;
                if (ifa != 0)
                        ifa->ifa_rtrequest = discrtrequest;