Mercurial > illumos > illumos-gate
diff usr/src/lib/smbsrv/libsmb/common/libsmb.h @ 10717:fe0545fc3cdd
6612607 CIFS ADS client should use ldap_sasl_interactive_bind_s API
6877755 smbd should not route stderr, stdout to /dev/null
6882701 Wrong error message for attempt to map local user to Windows group, or vice versa
6885105 Potential for deadlock in smb_node_set_delete_on_close()
6881928 smbd core generated when running a script to join domain, set abe properties
6885538 Reduce dependencies on libsmbrdr
6820325 cifs service can't start on multi vlan+ipmp configuration
author | Alan Wright <amw@Sun.COM> |
---|---|
date | Mon, 05 Oct 2009 11:03:34 -0700 |
parents | 96eda55bfd54 |
children | 37e5dcdf36d3 |
line wrap: on
line diff
--- a/usr/src/lib/smbsrv/libsmb/common/libsmb.h Mon Oct 05 13:48:48 2009 -0400 +++ b/usr/src/lib/smbsrv/libsmb/common/libsmb.h Mon Oct 05 11:03:34 2009 -0700 @@ -484,6 +484,16 @@ unsigned char *, int, char *, char *, uchar_t *); /* + * SMB authenticated IPC + */ +extern void smb_ipc_commit(void); +extern void smb_ipc_get_user(char *, size_t); +extern void smb_ipc_get_passwd(uint8_t *, size_t); +extern void smb_ipc_init(void); +extern void smb_ipc_rollback(void); +extern void smb_ipc_set(char *, uint8_t *); + +/* * SMB MAC Signing */ @@ -553,16 +563,16 @@ * that the system joined. All other domains are either * trusted or untrusted, as defined by the primary domain PDC. */ -typedef enum nt_domain_type { - NT_DOMAIN_NULL, - NT_DOMAIN_BUILTIN, - NT_DOMAIN_LOCAL, - NT_DOMAIN_PRIMARY, - NT_DOMAIN_ACCOUNT, - NT_DOMAIN_TRUSTED, - NT_DOMAIN_UNTRUSTED, - NT_DOMAIN_NUM_TYPES -} nt_domain_type_t; +typedef enum smb_domain_type { + SMB_DOMAIN_NULL, + SMB_DOMAIN_BUILTIN, + SMB_DOMAIN_LOCAL, + SMB_DOMAIN_PRIMARY, + SMB_DOMAIN_ACCOUNT, + SMB_DOMAIN_TRUSTED, + SMB_DOMAIN_UNTRUSTED, + SMB_DOMAIN_NUM_TYPES +} smb_domain_type_t; /* * Information specific to trusted domains @@ -586,9 +596,9 @@ /* * This is the information that is held about each domain. */ -typedef struct nt_domain { +typedef struct smb_domain { list_node_t di_lnd; - nt_domain_type_t di_type; + smb_domain_type_t di_type; char di_sid[SMB_SID_STRSZ]; char di_nbname[NETBIOS_NAME_SZ]; char di_fqname[MAXHOSTNAMELEN]; @@ -597,11 +607,11 @@ smb_domain_dns_t di_dns; smb_domain_trust_t di_trust; } di_u; -} nt_domain_t; +} smb_domain_t; typedef struct smb_trusted_domains { uint32_t td_num; - nt_domain_t *td_domains; + smb_domain_t *td_domains; } smb_trusted_domains_t; #define SMB_DOMAIN_SUCCESS 0 @@ -611,29 +621,38 @@ #define SMB_DOMAIN_INTERNAL_ERR 4 #define SMB_DOMAIN_INVALID_ARG 5 #define SMB_DOMAIN_NO_MEMORY 6 +#define SMB_DOMAIN_NO_CACHE 7 -typedef struct smb_domain { +/* + * This structure could contain information about + * the primary domain the name of selected domain controller + * for the primary domain and a list of trusted domains if + * any. The "ex" in the structure name stands for extended. + * This is to differentiate this structure from smb_domain_t + * which only contains information about a single domain. + */ +typedef struct smb_domainex { char d_dc[MAXHOSTNAMELEN]; - nt_domain_t d_info; + smb_domain_t d_primary; smb_trusted_domains_t d_trusted; -} smb_domain_t; +} smb_domainex_t; -int nt_domain_init(uint32_t); -void nt_domain_fini(void); -void nt_domain_show(void); -void nt_domain_save(void); -boolean_t nt_domain_lookup_name(char *, nt_domain_t *); -boolean_t nt_domain_lookup_sid(smb_sid_t *, nt_domain_t *); -boolean_t nt_domain_lookup_type(nt_domain_type_t, nt_domain_t *); -boolean_t nt_domain_get_primary(smb_domain_t *); -void nt_domain_update(smb_domain_t *); -void nt_domain_start_update(void); -void nt_domain_end_update(void); -void nt_domain_set_basic_info(char *, char *, char *, nt_domain_t *); -void nt_domain_set_dns_info(char *, char *, char *, char *, char *, - nt_domain_t *); -void nt_domain_set_trust_info(char *, char *, char *, - uint32_t, uint32_t, uint32_t, nt_domain_t *); +int smb_domain_init(uint32_t); +void smb_domain_fini(void); +void smb_domain_show(void); +void smb_domain_save(void); +boolean_t smb_domain_lookup_name(char *, smb_domain_t *); +boolean_t smb_domain_lookup_sid(smb_sid_t *, smb_domain_t *); +boolean_t smb_domain_lookup_type(smb_domain_type_t, smb_domain_t *); +boolean_t smb_domain_getinfo(smb_domainex_t *); +void smb_domain_update(smb_domainex_t *); +uint32_t smb_domain_start_update(void); +void smb_domain_end_update(void); +void smb_domain_set_basic_info(char *, char *, char *, smb_domain_t *); +void smb_domain_set_dns_info(char *, char *, char *, char *, char *, + smb_domain_t *); +void smb_domain_set_trust_info(char *, char *, char *, + uint32_t, uint32_t, uint32_t, smb_domain_t *); typedef enum { SMB_LGRP_BUILTIN = 1, @@ -823,7 +842,7 @@ uint32_t smb_sam_lookup_sid(smb_sid_t *, smb_account_t *); int smb_sam_usr_cnt(void); uint32_t smb_sam_usr_groups(smb_sid_t *, smb_ids_t *); -int smb_sam_grp_cnt(nt_domain_type_t); +int smb_sam_grp_cnt(smb_domain_type_t); void smb_account_free(smb_account_t *); boolean_t smb_account_validate(smb_account_t *);