File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / dhcp / includes / inet.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Oct 9 09:06:54 2012 UTC (12 years ago) by misho
Branches: dhcp, MAIN
CVS tags: v4_1_R7p0, v4_1_R7, v4_1_R4, HEAD
dhcp 4.1 r7

    1: /* inet.h
    2: 
    3:    Portable definitions for internet addresses */
    4: 
    5: /*
    6:  * Copyright (c) 2004,2007,2009 by Internet Systems Consortium, Inc. ("ISC")
    7:  * Copyright (c) 1996-2003 by Internet Software Consortium
    8:  *
    9:  * Permission to use, copy, modify, and distribute this software for any
   10:  * purpose with or without fee is hereby granted, provided that the above
   11:  * copyright notice and this permission notice appear in all copies.
   12:  *
   13:  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
   14:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
   15:  * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
   16:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
   17:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
   18:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
   19:  * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
   20:  *
   21:  *   Internet Systems Consortium, Inc.
   22:  *   950 Charter Street
   23:  *   Redwood City, CA 94063
   24:  *   <info@isc.org>
   25:  *   https://www.isc.org/
   26:  *
   27:  * This software has been written for Internet Systems Consortium
   28:  * by Ted Lemon in cooperation with Vixie Enterprises and Nominum, Inc.
   29:  * To learn more about Internet Systems Consortium, see
   30:  * ``https://www.isc.org/''.  To learn more about Vixie Enterprises,
   31:  * see ``http://www.vix.com''.   To learn more about Nominum, Inc., see
   32:  * ``http://www.nominum.com''.
   33:  */
   34: 
   35: /* An internet address of up to 128 bits. */
   36: 
   37: struct iaddr {
   38: 	unsigned len;
   39: 	unsigned char iabuf [16];
   40: };
   41: 
   42: struct iaddrlist {
   43: 	struct iaddrlist *next;
   44: 	struct iaddr addr;
   45: };
   46: 
   47: 
   48: /* struct iaddrmatch - used to compare a host IP against a subnet spec
   49:  *
   50:  * There is a space/speed tradeoff here implied by the use of a second
   51:  * struct iaddr to hold the mask; while using an unsigned (byte!) to
   52:  * represent the subnet prefix length would be more memory efficient,
   53:  * it makes run-time mask comparisons more expensive.  Since such
   54:  * entries are used currently only in restricted circumstances
   55:  * (wanting to reject a subnet), the decision is in favour of run-time
   56:  * efficiency.
   57:  */
   58: 
   59: struct iaddrmatch {
   60: 	struct iaddr addr;
   61: 	struct iaddr mask;
   62: };
   63: 
   64: /* its list ... */
   65:  
   66: struct iaddrmatchlist {
   67: 	struct iaddrmatchlist *next;
   68: 	struct iaddrmatch match;
   69: };
   70: 
   71: 
   72: /*
   73:  * Structure to store information about a CIDR network.
   74:  */
   75: 
   76: struct iaddrcidrnet {
   77: 	struct iaddr lo_addr;
   78: 	int bits;
   79: };
   80: 
   81: struct iaddrcidrnetlist {
   82: 	struct iaddrcidrnetlist *next;
   83: 	struct iaddrcidrnet cidrnet;
   84: };
   85: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>