15331Samw /* 25331Samw * CDDL HEADER START 35331Samw * 45331Samw * The contents of this file are subject to the terms of the 55331Samw * Common Development and Distribution License (the "License"). 65331Samw * You may not use this file except in compliance with the License. 75331Samw * 85331Samw * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 95331Samw * or http://www.opensolaris.org/os/licensing. 105331Samw * See the License for the specific language governing permissions 115331Samw * and limitations under the License. 125331Samw * 135331Samw * When distributing Covered Code, include this CDDL HEADER in each 145331Samw * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 155331Samw * If applicable, add the following below this CDDL HEADER, with the 165331Samw * fields enclosed by brackets "[]" replaced with your own identifying 175331Samw * information: Portions Copyright [yyyy] [name of copyright owner] 185331Samw * 195331Samw * CDDL HEADER END 205331Samw */ 215331Samw /* 225772Sas200622 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 235331Samw * Use is subject to license terms. 245331Samw */ 255331Samw 265331Samw #ifndef _LIBSMBNS_H 275331Samw #define _LIBSMBNS_H 285331Samw 295331Samw #pragma ident "%Z%%M% %I% %E% SMI" 305331Samw 315331Samw #include <ldap.h> 325331Samw #include <smbsrv/libsmb.h> 335331Samw 345331Samw #ifdef __cplusplus 355331Samw extern "C" { 365331Samw #endif 375331Samw 385331Samw /* ADS typedef/data structures and functions */ 39*7052Samw #define SMB_ADS_MAXBUFLEN 100 405331Samw 41*7052Samw typedef struct smb_ads_handle { 425331Samw char *user; /* admin user to create share in ADS */ 435331Samw char *pwd; /* user password */ 445331Samw char *domain; /* ADS domain */ 455331Samw char *domain_dn; /* domain in Distinquish Name format */ 465331Samw char *ip_addr; /* ip addr in string format */ 475331Samw char *hostname; /* fully qualified hostname */ 485331Samw char *site; /* local ADS site */ 495331Samw LDAP *ld; /* LDAP handle */ 50*7052Samw } smb_ads_handle_t; 515331Samw 525331Samw /* 535331Samw * The possible return status of the adjoin routine. 545331Samw */ 55*7052Samw typedef enum smb_adjoin_status { 56*7052Samw SMB_ADJOIN_SUCCESS = 0, 57*7052Samw SMB_ADJOIN_ERR_GET_HANDLE, 58*7052Samw SMB_ADJOIN_ERR_GEN_PASSWD, 59*7052Samw SMB_ADJOIN_ERR_GET_DCLEVEL, 60*7052Samw SMB_ADJOIN_ERR_ADD_TRUST_ACCT, 61*7052Samw SMB_ADJOIN_ERR_MOD_TRUST_ACCT, 62*7052Samw SMB_ADJOIN_ERR_GET_ENCTYPES, 63*7052Samw SMB_ADJOIN_ERR_INIT_KRB_CTX, 64*7052Samw SMB_ADJOIN_ERR_GET_SPNS, 65*7052Samw SMB_ADJOIN_ERR_KSETPWD, 66*7052Samw SMB_ADJOIN_ERR_UPDATE_CNTRL_ATTR, 67*7052Samw SMB_ADJOIN_ERR_WRITE_KEYTAB, 68*7052Samw SMB_ADJOIN_ERR_IDMAP_SET_DOMAIN, 69*7052Samw SMB_ADJOIN_ERR_IDMAP_REFRESH, 70*7052Samw SMB_ADJOIN_NUM_STATUS 71*7052Samw } smb_adjoin_status_t; 725331Samw 735331Samw /* ADS functions */ 74*7052Samw extern void smb_ads_init(void); 75*7052Samw extern void smb_ads_refresh(void); 76*7052Samw extern smb_ads_handle_t *smb_ads_open(void); 77*7052Samw extern void smb_ads_close(smb_ads_handle_t *); 78*7052Samw extern int smb_ads_publish_share(smb_ads_handle_t *, const char *, const char *, 795331Samw const char *, const char *); 80*7052Samw extern int smb_ads_remove_share(smb_ads_handle_t *, const char *, const char *, 815331Samw const char *, const char *); 82*7052Samw extern int smb_ads_build_unc_name(char *, int, const char *, const char *); 83*7052Samw extern int smb_ads_lookup_share(smb_ads_handle_t *, const char *, const char *, 84*7052Samw char *); 85*7052Samw extern int smb_ads_add_share(smb_ads_handle_t *, const char *, const char *, 865331Samw const char *); 87*7052Samw extern smb_adjoin_status_t smb_ads_join(char *, char *, char *, char *, int); 88*7052Samw extern char *smb_adjoin_report_err(smb_adjoin_status_t); 89*7052Samw extern int smb_ads_domain_change_cleanup(char *); 90*7052Samw extern int smb_ads_update_attrs(void); 915331Samw 925331Samw /* DYNDNS functions */ 935772Sas200622 extern int dns_msgid_init(void); 946600Sas200622 extern int dyndns_update(char *); 956600Sas200622 extern int dyndns_update_core(char *); 966139Sjb150015 extern int dyndns_clear_rev_zone(char *); 975331Samw 985331Samw /* Kerberos initialization function */ 996139Sjb150015 extern int smb_kinit(char *, char *); 1006139Sjb150015 extern int smb_ccache_init(char *, char *); 1016139Sjb150015 extern void smb_ccache_remove(char *); 1025331Samw 1035331Samw /* NETBIOS Functions */ 104*7052Samw extern int smb_msdcs_lookup_ads(char *, char *); 1055772Sas200622 extern int smb_netbios_start(void); 1065331Samw extern void smb_netbios_shutdown(void); 1075331Samw extern void smb_netbios_name_reconfig(void); 1085331Samw 1096030Sjb150015 /* Browser Functions */ 1106030Sjb150015 extern void smb_browser_reconfig(void); 1116030Sjb150015 extern void smb_browser_netlogon(char *); 1125331Samw 1135331Samw 1145331Samw #ifdef __cplusplus 1155331Samw } 1165331Samw #endif 1175331Samw 1185331Samw #endif /* _LIBSMBNS_H */ 119