Print this page
    
4174 Torch the old and unmaintained Sun-dhcp
Reviewed by: Josef Sipek <jeffpc@josefsipek.net>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Approved by: Dan McDonald <danmcd@omniti.com>
    
      
        | Split | 
	Close | 
      
      | Expand all | 
      | Collapse all | 
    
    
          --- old/usr/src/lib/libdhcputil/common/dhcp_symbol.h
          +++ new/usr/src/lib/libdhcputil/common/dhcp_symbol.h
   1    1  /*
   2    2   * CDDL HEADER START
   3    3   *
   4    4   * The contents of this file are subject to the terms of the
   5    5   * Common Development and Distribution License (the "License").
   6    6   * You may not use this file except in compliance with the License.
   7    7   *
   8    8   * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9    9   * or http://www.opensolaris.org/os/licensing.
  10   10   * See the License for the specific language governing permissions
  11   11   * and limitations under the License.
  
    | 
      ↓ open down ↓ | 
    11 lines elided | 
    
      ↑ open up ↑ | 
  
  12   12   *
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
       22 + * Copyright 2014 Garrett D'Amore <garrett@damore.org>
       23 + *
  22   24   * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  23   25   * Use is subject to license terms.
  24   26   */
  25   27  
  26   28  #ifndef _DHCP_SYMBOL_H
  27   29  #define _DHCP_SYMBOL_H
  28   30  
  29      -#pragma ident   "%Z%%M% %I%     %E% SMI"
  30      -
  31   31  /*
  32   32   * This file, along with <dhcp_symbol_common.h>, contains the DHCP symbol
  33   33   * constants and the definitions for the external interfaces to the parsing
  34   34   * logic (contained in dhcp_symbol.c) for symbol definitions. These
  35   35   * definitions can and should be used by all consumers of DHCP symbols.
  36   36   */
  37   37  
  38   38  #include <sys/types.h>
  39      -#include <dhcp_svc_private.h>
  40   39  #include <dhcp_symbol_common.h>
  41   40  
  42   41  #ifdef  __cplusplus
  43   42  extern "C" {
  44   43  #endif
  45   44  
  46   45  /*
  47   46   * Vendor class length (and implicitly, the number of classes)
  48   47   */
  49      -#define DSYM_CLASS_SIZE         DSVC_MAX_MACSYM_LEN     /* Single class max */
       48 +#define DSYM_CLASS_SIZE         128                     /* Single class max */
  50   49  #define DSYM_MAX_CLASS_SIZE     (DSYM_CLASS_SIZE * 10)  /* At least 10 */
  51   50  
  52   51  /*
  53      - * Maximum symbol length is defined by the libdhcpsvc.
       52 + * Maximum symbol length
  54   53   */
  55      -#define DSYM_MAX_SYM_LEN        DSVC_MAX_MACSYM_LEN
       54 +#define DSYM_MAX_SYM_LEN        128
  56   55  
  57   56  /*
  58   57   * symbol parsing error codes
  59   58   */
  60   59  typedef enum {
  61   60          DSYM_SUCCESS,
  62   61          DSYM_SYNTAX_ERROR,
  63   62          DSYM_NULL_FIELD,
  64   63          DSYM_TOO_MANY_FIELDS,
  65   64          DSYM_CODE_OUT_OF_RANGE,
  66   65          DSYM_VALUE_OUT_OF_RANGE,
  67   66          DSYM_INVALID_CAT,
  68   67          DSYM_INVALID_TYPE,
  69   68          DSYM_EXCEEDS_CLASS_SIZE,
  70   69          DSYM_EXCEEDS_MAX_CLASS_SIZE,
  71   70          DSYM_NO_MEMORY,
  72   71          DSYM_INVALID_FIELD_NUM
  73   72  } dsym_errcode_t;
  74   73  
  75   74  /*
  76   75   * symbol fields
  77   76   */
  78   77  #define DSYM_CAT_FIELD          0
  79   78  #define DSYM_CODE_FIELD         1
  80   79  #define DSYM_TYPE_FIELD         2
  81   80  #define DSYM_GRAN_FIELD         3
  82   81  #define DSYM_MAX_FIELD          4
  83   82  #define DSYM_NUM_FIELDS         5
  84   83  #define DSYM_FIRST_FIELD        DSYM_CAT_FIELD
  85   84  
  86   85  /*
  87   86   * This structure is used by the dhcp_symbol_t structure below
  88   87   * when the option being defined is a vendor option. In which case,
  89   88   * this structure contains the client classes for which the option
  90   89   * applies.
  91   90   */
  92   91  typedef struct dhcp_classes {
  93   92          char            **dc_names;
  94   93          uint8_t         dc_cnt;
  95   94  } dhcp_classes_t;
  96   95  
  97   96  /*
  98   97   * This structure is used to define a DHCP symbol. The structure is
  99   98   * used by both the inittab parsing routines and by the dhcptab parsing
 100   99   * routines to define a symbol definition in either of those tables.
 101  100   * Note that ds_dhcpv6 is defined last so that it needn't be initialized
 102  101   * as part of the inittab_table[] definition.
 103  102   */
 104  103  typedef struct dhcp_symbol {
 105  104          dsym_category_t ds_category;                    /* category */
 106  105          ushort_t        ds_code;                        /* option code */
 107  106          char            ds_name[DSYM_MAX_SYM_LEN + 1];  /* option name */
 108  107          dsym_cdtype_t   ds_type;                        /* type of parm */
 109  108          uchar_t         ds_gran;                        /* granularity */
 110  109          uchar_t         ds_max;                         /* maximum number */
 111  110          dhcp_classes_t  ds_classes;                     /* client classes */
 112  111          uchar_t         ds_dhcpv6;                      /* dhcpv6 flag */
 113  112  } dhcp_symbol_t;
 114  113  
 115  114  extern void dsym_free_fields(char **);
 116  115  extern void dsym_free_classes(dhcp_classes_t *);
 117  116  extern void dsym_close_parser(char **, dhcp_symbol_t *);
 118  117  extern dsym_errcode_t dsym_init_parser(const char *, const char *, char ***,
 119  118      dhcp_symbol_t *);
 120  119  extern dsym_errcode_t dsym_parse_field(int, char **, dhcp_symbol_t *);
 121  120  extern dsym_errcode_t dsym_parser(char **, dhcp_symbol_t *, int *, boolean_t);
 122  121  extern dsym_errcode_t dsym_get_cat_id(const char *, dsym_category_t *,
 123  122      boolean_t);
 124  123  extern dsym_errcode_t dsym_get_code_ranges(const char *cat, ushort_t *,
 125  124      ushort_t *, boolean_t);
 126  125  extern dsym_errcode_t dsym_get_type_id(const char *, dsym_cdtype_t *,
 127  126      boolean_t);
 128  127  
 129  128  #ifdef  __cplusplus
 130  129  }
 131  130  #endif
 132  131  
 133  132  #endif  /* _DHCP_SYMBOL_H */
  
    | 
      ↓ open down ↓ | 
    68 lines elided | 
    
      ↑ open up ↑ | 
  
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX