Print this page
    
NEX-19665 Several door servers don't properly handle exiting threads
Review by: Gordon Ross <gordon.ross@nexenta.com>
Review by: Evan Layton <evan.layton@nexenta.com>
NEX-2302 Need a way to control the idmap rediscovery interval
NEX-1638 Updated DC Locator
 Includes work by: matt.barden@nexenta.com, kevin.crowe@nexenta.com
SMB-56 extended security NTLMSSP, inbound
re #13190 rb4312 idmapd error -9961 (No AD servers)
    
      
        | Split | 
	Close | 
      
      | Expand all | 
      | Collapse all | 
    
    
          --- old/usr/src/cmd/idmap/idmapd/idmap_config.h
          +++ new/usr/src/cmd/idmap/idmapd/idmap_config.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.
  12   12   *
  
    | 
      ↓ open down ↓ | 
    12 lines elided | 
    
      ↑ open up ↑ | 
  
  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   22   * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  23      - * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
       23 + * Copyright 2018 Nexenta Systems, Inc.  All rights reserved.
  24   24   */
  25   25  
  26   26  #ifndef _IDMAP_CONFIG_H
  27   27  #define _IDMAP_CONFIG_H
  28   28  
  29   29  
  30   30  #include "idmap.h"
  31   31  #include "addisc.h"
  32   32  #include <libscf.h>
  33   33  #include <synch.h>
  34   34  #include <sys/uuid.h>
  35   35  
  36   36  #ifdef __cplusplus
  37   37  extern "C" {
  38   38  #endif
  39   39  
  40   40  #define MAX_POLICY_SIZE 1023
  41   41  
  42   42  #define DIRECTORY_MAPPING_NONE  0
  43   43  #define DIRECTORY_MAPPING_NAME  1
  44   44  #define DIRECTORY_MAPPING_IDMU  2
  45   45  
  46   46  struct enum_lookup_map {
  47   47          int value;
  48   48          char *string;
  49   49  };
  50   50  
  51   51  extern struct enum_lookup_map directory_mapping_map[];
  52   52  extern const char *enum_lookup(int value, struct enum_lookup_map *map);
  53   53  
  54   54  /* SMF and auto-discovery context handles */
  55   55  typedef struct idmap_cfg_handles {
  56   56          pthread_mutex_t         mutex;
  57   57          scf_handle_t            *main;
  58   58          scf_instance_t          *instance;
  59   59          scf_service_t           *service;
  60   60          scf_propertygroup_t     *config_pg;
  61   61          scf_propertygroup_t     *debug_pg;
  62   62          ad_disc_t               ad_ctx;
  63   63  } idmap_cfg_handles_t;
  64   64  
  65   65  /*
  66   66   * This structure stores AD and AD-related configuration
  67   67   */
  
    | 
      ↓ open down ↓ | 
    34 lines elided | 
    
      ↑ open up ↑ | 
  
  68   68  typedef struct idmap_trustedforest {
  69   69          char            *forest_name;
  70   70          ad_disc_ds_t    *global_catalog;        /* global catalog hosts */
  71   71          ad_disc_domainsinforest_t
  72   72                          *domains_in_forest;
  73   73  } idmap_trustedforest_t;
  74   74  
  75   75  
  76   76  typedef struct idmap_pg_config {
  77   77          uint64_t        list_size_limit;
       78 +        uint64_t        max_threads;
  78   79          uint64_t        id_cache_timeout;
  79   80          uint64_t        name_cache_timeout;
  80   81          uint64_t        rediscovery_interval;
  81   82          char            *machine_uuid;          /* machine uuid */
  82   83          char            *machine_sid;           /* machine sid */
  83   84          char            *default_domain;        /* default domain name */
  84   85          char            *domain_name;           /* AD domain name */
  85   86          boolean_t       domain_name_auto_disc;
  86   87          char            *domain_guid;           /* GUID (string) */
  87   88          boolean_t       domain_guid_auto_disc;
  88   89          ad_disc_ds_t    *domain_controller;     /* domain controller hosts */
  89   90          boolean_t       domain_controller_auto_disc;
  90   91          char            *forest_name;           /* forest name */
  91   92          boolean_t       forest_name_auto_disc;
  92   93          char            *site_name;             /* site name */
  93   94          boolean_t       site_name_auto_disc;
  94   95          ad_disc_ds_t    *global_catalog;        /* global catalog hosts */
  95   96          boolean_t       global_catalog_auto_disc;
  96   97          ad_disc_domainsinforest_t
  97   98                          *domains_in_forest;
  98   99          ad_disc_trusteddomains_t
  99  100                          *trusted_domains;       /* Trusted Domains */
 100  101          int             num_trusted_forests;
 101  102          idmap_trustedforest_t
 102  103                          *trusted_forests;       /* Array of trusted forests */
 103  104  
 104  105          ad_disc_ds_t    *preferred_dc;
 105  106          boolean_t       preferred_dc_auto_disc;
 106  107  
 107  108          /*
 108  109           * Following properties are associated with directory-based
 109  110           * name-mappings.
 110  111           */
 111  112          char            *ad_unixuser_attr;
 112  113          char            *ad_unixgroup_attr;
 113  114          char            *nldap_winname_attr;
 114  115          int             directory_based_mapping;        /* enum */
 115  116          boolean_t       eph_map_unres_sids;
 116  117          boolean_t       use_ads;
 117  118          boolean_t       use_lsa;
 118  119          boolean_t       disable_cross_forest_trusts;
 119  120  } idmap_pg_config_t;
 120  121  
 121  122  typedef struct idmap_cfg {
 122  123          idmap_pg_config_t       pgcfg;      /* live AD/ID mapping config */
 123  124          idmap_cfg_handles_t     handles;
 124  125          int                     initialized;
 125  126  } idmap_cfg_t;
 126  127  
 127  128  
 128  129  extern void             idmap_cfg_unload(idmap_pg_config_t *);
 129  130  extern int              idmap_cfg_load(idmap_cfg_t *, int);
 130  131  extern idmap_cfg_t      *idmap_cfg_init(void);
 131  132  extern int              idmap_cfg_fini(idmap_cfg_t *);
 132  133  extern int              idmap_cfg_upgrade(idmap_cfg_t *);
 133  134  extern int              idmap_cfg_start_updates(void);
 134  135  extern void             idmap_cfg_poke_updates(void);
 135  136  extern void             idmap_cfg_force_rediscovery(void);
 136  137  extern void             idmap_cfg_hup_handler(int);
 137  138  
 138  139  #define CFG_DISCOVER            0x1     /* Run discovery */
 139  140  #define CFG_FORGET_DC           0x2     /* Forget current DC. */
 140  141  #define CFG_LOG                 0x4
 141  142  
 142  143  #ifdef __cplusplus
 143  144  }
 144  145  #endif
 145  146  
 146  147  #endif /* _IDMAP_CONFIG_H */
  
    | 
      ↓ open down ↓ | 
    59 lines elided | 
    
      ↑ open up ↑ | 
  
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX