X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/1c79356b52d46aa6b508fb032f5ae709b1f2897b..ca66cea69e6e866fd781ae2260d9474bdd48f2ca:/bsd/net/bsd_comp.c diff --git a/bsd/net/bsd_comp.c b/bsd/net/bsd_comp.c index d81e66f93..14fb57111 100644 --- a/bsd/net/bsd_comp.c +++ b/bsd/net/bsd_comp.c @@ -1,23 +1,29 @@ /* - * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2007 Apple Inc. All rights reserved. * - * @APPLE_LICENSE_HEADER_START@ + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * - * The contents of this file constitute Original Code as defined in and - * are subject to the Apple Public Source License Version 1.1 (the - * "License"). You may not use this file except in compliance with the - * License. Please obtain a copy of the License at - * http://www.apple.com/publicsource and read it before using this file. + * 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. 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. * - * This Original Code and all software distributed under the License are - * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * 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 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the - * License for the specific language governing rights and limitations - * under the License. + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. * - * @APPLE_LICENSE_HEADER_END@ + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ /* Because this code is derived from the 4.3BSD compress source: * @@ -57,6 +63,12 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ +/* + * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce + * support for mandatory and extensible security protections. This notice + * is included in support of clause 2.2 (b) of the Apple Public License, + * Version 2.0. + */ /* * This version is for use with mbufs on BSD-derived systems. @@ -72,6 +84,10 @@ #define PACKETPTR struct mbuf * #include +#if CONFIG_MACF_NET +#include +#endif /* MAC_NET */ + #if DO_BSD_COMPRESS /* * PPP "BSD compress" compression @@ -146,26 +162,27 @@ struct bsd_db { #define BSD_OVHD 2 /* BSD compress overhead/packet */ #define BSD_INIT_BITS BSD_MIN_BITS -static void bsd_clear __P((struct bsd_db *db)); -static int bsd_check __P((struct bsd_db *db)); -static void *bsd_alloc __P((u_char *options, int opt_len, int decomp)); -static int bsd_init_comp_db __P((struct bsd_db *db, u_char *options, int opt_len, +static void bsd_clear(struct bsd_db *db); +static int bsd_check(struct bsd_db *db); +static void *bsd_alloc(u_char *options, int opt_len, int decomp); +static int bsd_init_comp_db(struct bsd_db *db, u_char *options, + int opt_len, int unit, int hdrlen, int mru, int debug, - int decomp)); -static void *bsd_comp_alloc __P((u_char *options, int opt_len)); -static void *bsd_decomp_alloc __P((u_char *options, int opt_len)); -static void bsd_free __P((void *state)); -static int bsd_comp_init __P((void *state, u_char *options, int opt_len, - int unit, int hdrlen, int debug)); -static int bsd_decomp_init __P((void *state, u_char *options, int opt_len, - int unit, int hdrlen, int mru, int debug)); -static int bsd_compress __P((void *state, struct mbuf **mret, - struct mbuf *mp, int slen, int maxolen)); -static void bsd_incomp __P((void *state, struct mbuf *dmsg)); -static int bsd_decompress __P((void *state, struct mbuf *cmp, - struct mbuf **dmpp)); -static void bsd_reset __P((void *state)); -static void bsd_comp_stats __P((void *state, struct compstat *stats)); + int decomp); +static void *bsd_comp_alloc(u_char *options, int opt_len); +static void *bsd_decomp_alloc(u_char *options, int opt_len); +static void bsd_free(void *state); +static int bsd_comp_init(void *state, u_char *options, int opt_len, + int unit, int hdrlen, int debug); +static int bsd_decomp_init(void *state, u_char *options, int opt_len, + int unit, int hdrlen, int mru, int debug); +static int bsd_compress(void *state, struct mbuf **mret, + struct mbuf *mp, int slen, int maxolen); +static void bsd_incomp(void *state, struct mbuf *dmsg); +static int bsd_decompress(void *state, struct mbuf *cmp, + struct mbuf **dmpp); +static void bsd_reset(void *state); +static void bsd_comp_stats(void *state, struct compstat *stats); /* * Procedures exported to if_ppp.c. @@ -898,6 +915,9 @@ bsd_decompress(state, cmp, dmpp) dmp->m_data += db->hdrlen; wptr = mtod(dmp, u_char *); space = M_TRAILINGSPACE(dmp) - PPP_HDRLEN + 1; +#if CONFIG_MACF_NET + mac_mbuf_label_copy(cmp, dmp); +#endif /* * Fill in the ppp header, but not the last byte of the protocol