1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 /* 22 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 23 * Use is subject to license terms. 24 */ 25 26 #ifndef _SMBSRV_SMBINFO_H 27 #define _SMBSRV_SMBINFO_H 28 29 #pragma ident "%Z%%M% %I% %E% SMI" 30 31 #include <sys/types.h> 32 33 #ifdef __cplusplus 34 extern "C" { 35 #endif 36 37 /* 38 * Native OS types used in SmbSessionSetupX. 39 */ 40 #ifndef NATIVE_OS_DEFINED 41 #define NATIVE_OS_DEFINED 42 43 #define NATIVE_OS_UNKNOWN 0x00000000 44 #define NATIVE_OS_NT4_0 0x00000001 45 #define NATIVE_OS_WIN95 0x00000002 46 #define NATIVE_OS_OTHER 0x00000003 47 #define NATIVE_OS_NT5_0 0x00000004 48 #define NATIVE_OS_NT5_1 0x00000005 49 #define NATIVE_OS_MACOS 0x00000006 50 51 /* 52 * Backward compatibility aliases. 53 */ 54 #define NATIVE_OS_WINNT NATIVE_OS_NT4_0 55 #define NATIVE_OS_WIN2000 NATIVE_OS_NT5_0 56 #define NATIVE_OS_WINXP NATIVE_OS_NT5_1 57 58 #endif /* NATIVE_OS_DEFINED */ 59 60 61 /* 62 * Native lanman types in SmbSessionSetupX. Note that these values 63 * are not directly related to the negotiated protocol dialect. 64 */ 65 #ifndef NATIVE_LANMAN_DEFINED 66 #define NATIVE_LANMAN_DEFINED 67 68 #define NATIVE_LM_NONE 0x00000000 69 #define NATIVE_LM_NT 0x00000001 70 #define NATIVE_LM_WIN2000 0x00000002 71 72 #endif /* NATIVE_LANMAN_DEFINED */ 73 74 75 /* PDC types to be used in user authentication process */ 76 77 #define PDC_UNKNOWN 0 78 #define PDC_WINNT 1 79 #define PDC_WIN2000 2 80 #define PDC_WINXP 3 81 #define PDC_SAMBA 4 82 83 /* 84 * Please replace the use of MAX_NETWORKS with SMB_PI_MAX_NETWORKS if 85 * you find it used in conjunction with smbparm_info and maybe one day 86 * there will be just a single definition (here) throughout the code. 87 */ 88 #ifndef MAX_NETWORKS 89 #define MAX_NETWORKS 36 90 #endif /* MAX_NETWORKS */ 91 92 #define SMB_PI_MAX_NETWORKS 36 93 #define SMB_PI_MAX_WINS 2 94 95 #define SMB_SECMODE_WORKGRP 1 96 #define SMB_SECMODE_DOMAIN 2 97 98 #define SMB_PI_MAX_HOST 48 99 #define SMB_PI_MAX_DOMAIN 48 100 #define SMB_PI_MAX_SCOPE 16 101 #define SMB_PI_MAX_COMMENT 58 102 #define SMB_PI_MAX_USERNAME 40 103 #define SMB_PI_MAX_PASSWD 40 104 #define SMB_PI_MAX_NATIVE_OS 32 105 #define SMB_PI_MAX_LANMAN 32 106 107 108 #define SMB_PI_UNKNOWN_DOMAIN 0 109 #define SMB_PI_RESOURCE_DOMAIN 1 110 111 /* 112 * K.L. The keep alive time out use to default to 900 113 * seconds. It is not long enough for some applications 114 * i.e. MS Access. We currently use 5400 seconds. 115 */ 116 #define SMB_PI_KEEP_ALIVE_MIN (90 * 60) 117 #define SMB_LM_COMPATIBILITY_DEFAULT_LEV 3 118 119 /* 120 * This is max networks multiply by canonical address for IPv4 121 * This needs a fix for IPv4 122 */ 123 #define MAX_EXCLUDE_LIST_LEN (SMB_PI_MAX_NETWORKS * INET_ADDRSTRLEN) 124 125 typedef struct smb_kmod_cfg { 126 uint32_t skc_maxbufsize; 127 uint32_t skc_maxworkers; 128 uint32_t skc_maxconnections; 129 uint32_t skc_keepalive; 130 uint32_t skc_restrict_anon; 131 uint32_t skc_signing_enable; 132 uint32_t skc_signing_required; 133 uint32_t skc_signing_check; 134 uint32_t skc_oplock_enable; 135 uint32_t skc_oplock_timeout; 136 uint32_t skc_flush_required; 137 uint32_t skc_sync_enable; 138 uint32_t skc_dirsymlink_enable; 139 uint32_t skc_announce_quota; 140 uint32_t skc_secmode; 141 uint32_t skc_lmlevel; 142 143 char skc_resource_domain[SMB_PI_MAX_DOMAIN]; 144 char skc_hostname[SMB_PI_MAX_HOST]; 145 char skc_system_comment[SMB_PI_MAX_COMMENT]; 146 } smb_kmod_cfg_t; 147 148 #define SMB_VERSION_MAJOR 4 149 #define SMB_VERSION_MINOR 0 150 151 int smbnative_os_value(char *native_os); 152 int smbnative_lm_value(char *native_lm); 153 int smbnative_pdc_value(char *native_lm); 154 155 /* 156 * Support for passthrough authentication. 157 */ 158 #define AUTH_USER_GRANT 0x00000000 159 #define AUTH_GUEST_GRANT 0x00000001 160 #define AUTH_IPC_ONLY_GRANT 0x00000002 161 #define AUTH_CONEXUS_GRANT 0x00000004 162 163 #define SMBD_DOOR_NAME "/var/run/smbd_door_old" 164 #define SMBD_DOOR_VERSION 1 165 166 #define SMBD_DOOR_COOKIE ((void*)(0xdeadbeef^SMBD_DOOR_VERSION)) 167 #define SMBD_DOOR_SIZE 256 168 169 #define SMBD_DOOR_SRV_SUCCESS 0 170 #define SMBD_DOOR_SRV_ERROR -1 171 172 #define SMBD_DOOR_JOIN 1 173 #define SMBD_DOOR_PARAM_GET 2 174 #define SMBD_DOOR_PARAM_SET 3 175 #define SMBD_DOOR_NETBIOS_RECONFIG 4 176 #define SMBD_DOOR_ADS_DOMAIN_CHANGED 5 177 178 #ifdef __cplusplus 179 } 180 #endif 181 182 #endif /* _SMBSRV_SMBINFO_H */ 183