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 /* 22*13082SJoyce.McIntosh@Sun.COM * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. 235331Samw */ 245331Samw 255331Samw #ifndef _LIBSMBNS_H 265331Samw #define _LIBSMBNS_H 275331Samw 285331Samw #include <ldap.h> 295331Samw #include <smbsrv/libsmb.h> 305331Samw 315331Samw #ifdef __cplusplus 325331Samw extern "C" { 335331Samw #endif 345331Samw 355331Samw /* ADS typedef/data structures and functions */ 369832Samw@Sun.COM 375331Samw 387052Samw typedef struct smb_ads_handle { 3911963SAfshin.Ardakani@Sun.COM char *domain; /* ADS domain (in lower case) */ 405331Samw char *domain_dn; /* domain in Distinquish Name format */ 415331Samw char *ip_addr; /* ip addr in string format */ 425331Samw char *hostname; /* fully qualified hostname */ 435331Samw char *site; /* local ADS site */ 445331Samw LDAP *ld; /* LDAP handle */ 457052Samw } smb_ads_handle_t; 465331Samw 479832Samw@Sun.COM typedef struct smb_ads_host_info { 489832Samw@Sun.COM char name[MAXHOSTNAMELEN]; /* fully qualified hostname */ 499832Samw@Sun.COM int port; /* ldap port */ 509832Samw@Sun.COM int priority; /* DNS SRV record priority */ 519832Samw@Sun.COM int weight; /* DNS SRV record weight */ 529832Samw@Sun.COM smb_inaddr_t ipaddr; /* network byte order */ 539832Samw@Sun.COM } smb_ads_host_info_t; 549832Samw@Sun.COM 555331Samw /* 565331Samw * The possible return status of the adjoin routine. 575331Samw */ 587052Samw typedef enum smb_adjoin_status { 597052Samw SMB_ADJOIN_SUCCESS = 0, 607052Samw SMB_ADJOIN_ERR_GET_HANDLE, 6111571SShawn.Emery@Sun.COM SMB_ADJOIN_ERR_GEN_PWD, 627052Samw SMB_ADJOIN_ERR_GET_DCLEVEL, 637052Samw SMB_ADJOIN_ERR_ADD_TRUST_ACCT, 647052Samw SMB_ADJOIN_ERR_MOD_TRUST_ACCT, 657961SNatalie.Li@Sun.COM SMB_ADJOIN_ERR_DUP_TRUST_ACCT, 667961SNatalie.Li@Sun.COM SMB_ADJOIN_ERR_TRUST_ACCT, 677052Samw SMB_ADJOIN_ERR_INIT_KRB_CTX, 687052Samw SMB_ADJOIN_ERR_GET_SPNS, 697052Samw SMB_ADJOIN_ERR_KSETPWD, 707052Samw SMB_ADJOIN_ERR_UPDATE_CNTRL_ATTR, 717052Samw SMB_ADJOIN_ERR_WRITE_KEYTAB, 727052Samw SMB_ADJOIN_ERR_IDMAP_SET_DOMAIN, 737052Samw SMB_ADJOIN_ERR_IDMAP_REFRESH, 749021Samw@Sun.COM SMB_ADJOIN_ERR_COMMIT_KEYTAB 757052Samw } smb_adjoin_status_t; 765331Samw 775331Samw /* ADS functions */ 787052Samw extern void smb_ads_init(void); 799832Samw@Sun.COM extern void smb_ads_fini(void); 807052Samw extern void smb_ads_refresh(void); 817052Samw extern smb_ads_handle_t *smb_ads_open(void); 827052Samw extern void smb_ads_close(smb_ads_handle_t *); 837052Samw extern int smb_ads_publish_share(smb_ads_handle_t *, const char *, const char *, 845331Samw const char *, const char *); 857052Samw extern int smb_ads_remove_share(smb_ads_handle_t *, const char *, const char *, 865331Samw const char *, const char *); 877052Samw extern int smb_ads_build_unc_name(char *, int, const char *, const char *); 887052Samw extern int smb_ads_lookup_share(smb_ads_handle_t *, const char *, const char *, 897052Samw char *); 907052Samw extern int smb_ads_add_share(smb_ads_handle_t *, const char *, const char *, 915331Samw const char *); 9211571SShawn.Emery@Sun.COM extern smb_adjoin_status_t smb_ads_join(char *, char *, char *, char *, size_t); 939021Samw@Sun.COM extern void smb_ads_join_errmsg(smb_adjoin_status_t); 948334SJose.Borrego@Sun.COM extern boolean_t smb_ads_lookup_msdcs(char *, char *, char *, uint32_t); 959832Samw@Sun.COM extern smb_ads_host_info_t *smb_ads_find_host(char *, char *); 965331Samw 975331Samw /* DYNDNS functions */ 98*13082SJoyce.McIntosh@Sun.COM extern void *dyndns_publisher(void *); 99*13082SJoyce.McIntosh@Sun.COM extern void dyndns_start(void); 1008334SJose.Borrego@Sun.COM extern void dyndns_stop(void); 1016600Sas200622 extern int dyndns_update(char *); 1028334SJose.Borrego@Sun.COM extern void dyndns_update_zones(void); 1038334SJose.Borrego@Sun.COM extern void dyndns_clear_zones(void); 1045331Samw 10510717Samw@Sun.COM /* Kerberos cache management function */ 1066139Sjb150015 extern int smb_ccache_init(char *, char *); 1076139Sjb150015 extern void smb_ccache_remove(char *); 1085331Samw 1095331Samw /* NETBIOS Functions */ 1105772Sas200622 extern int smb_netbios_start(void); 11110717Samw@Sun.COM extern void smb_netbios_stop(void); 1125331Samw extern void smb_netbios_name_reconfig(void); 1135331Samw 1146030Sjb150015 /* Browser Functions */ 1156030Sjb150015 extern void smb_browser_reconfig(void); 1168334SJose.Borrego@Sun.COM extern boolean_t smb_browser_netlogon(char *, char *, uint32_t); 1175331Samw 1185331Samw 1195331Samw #ifdef __cplusplus 1205331Samw } 1215331Samw #endif 1225331Samw 1235331Samw #endif /* _LIBSMBNS_H */ 124