xref: /illumos-gate/usr/src/lib/smbsrv/libsmbns/common/smbns_browser.h (revision 8d7e41661dc4633488e93b13363137523ce59977)
1da6c28aaSamw /*
2da6c28aaSamw  * CDDL HEADER START
3da6c28aaSamw  *
4da6c28aaSamw  * The contents of this file are subject to the terms of the
5da6c28aaSamw  * Common Development and Distribution License (the "License").
6da6c28aaSamw  * You may not use this file except in compliance with the License.
7da6c28aaSamw  *
8da6c28aaSamw  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9da6c28aaSamw  * or http://www.opensolaris.org/os/licensing.
10da6c28aaSamw  * See the License for the specific language governing permissions
11da6c28aaSamw  * and limitations under the License.
12da6c28aaSamw  *
13da6c28aaSamw  * When distributing Covered Code, include this CDDL HEADER in each
14da6c28aaSamw  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15da6c28aaSamw  * If applicable, add the following below this CDDL HEADER, with the
16da6c28aaSamw  * fields enclosed by brackets "[]" replaced with your own identifying
17da6c28aaSamw  * information: Portions Copyright [yyyy] [name of copyright owner]
18da6c28aaSamw  *
19da6c28aaSamw  * CDDL HEADER END
20da6c28aaSamw  */
21da6c28aaSamw /*
22*8d7e4166Sjose borrego  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
23da6c28aaSamw  * Use is subject to license terms.
24da6c28aaSamw  */
25da6c28aaSamw 
26da6c28aaSamw #ifndef	_BROWSER_H_
27da6c28aaSamw #define	_BROWSER_H_
28da6c28aaSamw 
29da6c28aaSamw /*
30da6c28aaSamw  * NetBIOS name types describe the functionality of the registration.
31da6c28aaSamw  * A following list of NetBIOS suffixes (16th Character of the NetBIOS
32da6c28aaSamw  * Name) is detailed in Microsoft knowledge base article Q163409.
33da6c28aaSamw  *
34da6c28aaSamw  * Name                Number(h)  Type  Usage
35da6c28aaSamw  * --------------------------------------------------------------------------
36da6c28aaSamw  * <computername>         00       U    Workstation Service
37da6c28aaSamw  * <computername>         01       U    Messenger Service
38da6c28aaSamw  * <\\--__MSBROWSE__>     01       G    Master Browser
39da6c28aaSamw  * <computername>         03       U    Messenger Service
40da6c28aaSamw  * <computername>         06       U    RAS Server Service
41da6c28aaSamw  * <computername>         1F       U    NetDDE Service
42da6c28aaSamw  * <computername>         20       U    File Server Service
43da6c28aaSamw  * <computername>         21       U    RAS Client Service
44da6c28aaSamw  * <computername>         22       U    Microsoft Exchange Interchange(MSMail
45da6c28aaSamw  *                                      Connector)
46da6c28aaSamw  * <computername>         23       U    Microsoft Exchange Store
47da6c28aaSamw  * <computername>         24       U    Microsoft Exchange Directory
48da6c28aaSamw  * <computername>         30       U    Modem Sharing Server Service
49da6c28aaSamw  * <computername>         31       U    Modem Sharing Client Service
50da6c28aaSamw  * <computername>         43       U    SMS Clients Remote Control
51da6c28aaSamw  * <computername>         44       U    SMS Administrators Remote Control
52da6c28aaSamw  *                                      Tool
53da6c28aaSamw  * <computername>         45       U    SMS Clients Remote Chat
54da6c28aaSamw  * <computername>         46       U    SMS Clients Remote Transfer
55da6c28aaSamw  * <computername>         4C       U    DEC Pathworks TCPIP service on
56da6c28aaSamw  *                                      Windows NT
57da6c28aaSamw  * <computername>         52       U    DEC Pathworks TCPIP service on
58da6c28aaSamw  *                                      Windows NT
59da6c28aaSamw  * <computername>         87       U    Microsoft Exchange Message Transfer
60da6c28aaSamw  *                                      Agent
61da6c28aaSamw  * <computername>         6A       U    Microsoft Exchange IMC
62da6c28aaSamw  * <computername>         BE       U    Network Monitor Agent
63da6c28aaSamw  * <computername>         BF       U    Network Monitor Application
64da6c28aaSamw  * <username>             03       U    Messenger Service
65da6c28aaSamw  * <domain>               00       G    Domain Name
66da6c28aaSamw  * <domain>               1B       U    Domain Master Browser
67da6c28aaSamw  * <domain>               1C       G    Domain Controllers
68da6c28aaSamw  * <domain>               1D       U    Master Browser
69da6c28aaSamw  * <domain>               1E       G    Browser Service Elections
70da6c28aaSamw  * <INet~Services>        1C       G    IIS
71da6c28aaSamw  * <IS~computer name>     00       U    IIS
72da6c28aaSamw  * <computername>         [2B]     U    Lotus Notes Server Service
73da6c28aaSamw  * IRISMULTICAST          [2F]     G    Lotus Notes
74da6c28aaSamw  * IRISNAMESERVER         [33]     G    Lotus Notes
75da6c28aaSamw  * Forte_$ND800ZA         [20]     U    DCA IrmaLan Gateway Server Service
76da6c28aaSamw  *
77da6c28aaSamw  * Unique (U): The name may have only one IP address assigned to it. On
78da6c28aaSamw  * a network device multiple occurrences of a single name may appear to
79da6c28aaSamw  * be registered. The suffix may be the only unique character in the name.
80da6c28aaSamw  *
81da6c28aaSamw  * Group (G): A normal group; the single name may exist with many IP
82da6c28aaSamw  * addresses. WINS responds to a name query on a group name with the
83da6c28aaSamw  * limited broadcast address (255.255.255.255). Because routers block
84da6c28aaSamw  * the transmission of these addresses, the Internet Group was designed
85da6c28aaSamw  * to service communications between subnets.
86da6c28aaSamw  *
87da6c28aaSamw  * Multihomed (M): The name is unique, but due to multiple network
88da6c28aaSamw  * interfaces on the same computer this configuration is necessary to
89da6c28aaSamw  * permit the registration. The maximum number of addresses is 25.
90da6c28aaSamw  *
91da6c28aaSamw  * Internet Group (I): This is a special configuration of the group name
92da6c28aaSamw  * used to manage Windows NT Domain names.
93da6c28aaSamw  *
94da6c28aaSamw  * Domain Name (D): New in Windows NT 4.0.
95da6c28aaSamw  */
96da6c28aaSamw 
97da6c28aaSamw 
98da6c28aaSamw #ifdef __cplusplus
99da6c28aaSamw extern "C" {
100da6c28aaSamw #endif
101da6c28aaSamw 
102da6c28aaSamw 
103da6c28aaSamw /*
104da6c28aaSamw  * Message flags used when building the SMB transact headers.
105da6c28aaSamw  */
106da6c28aaSamw #define	TWO_WAY_TRANSACTION			0x00
107da6c28aaSamw #define	END_SESSION_TRANSACTION			0x01
108da6c28aaSamw #define	ONE_WAY_TRANSACTION				0x02
109da6c28aaSamw 
110da6c28aaSamw 
111da6c28aaSamw /*
112da6c28aaSamw  * Browser commands associated with the BROWSE and MSBROWSE mailslots.
113da6c28aaSamw  */
114da6c28aaSamw #define	HOST_ANNOUNCEMENT			0x01
115da6c28aaSamw #define	ANNOUNCEMENT_REQUEST			0x02
116da6c28aaSamw #define	REQUEST_ELECTION			0x08
117da6c28aaSamw #define	GET_BACKUP_LIST_REQ			0x09
118da6c28aaSamw #define	GET_BACKUP_LIST_RESP			0x0A
119da6c28aaSamw #define	BECOME_BACKUP				0x0B
120da6c28aaSamw #define	DOMAIN_ANNOUNCEMENT			0x0C
121da6c28aaSamw #define	MASTER_ANNOUNCEMENT			0x0D
122da6c28aaSamw #define	LOCAL_MASTER_ANNOUNCEMENT		0x0F
123da6c28aaSamw 
124da6c28aaSamw 
125da6c28aaSamw /*
126da6c28aaSamw  * Opcodes associated with NETLOGON or NTLOGON mailslots (KB 109626).
127da6c28aaSamw  *	LOGON_REQUEST			LM1.0/2.0 LOGON Request from client
128da6c28aaSamw  *	LOGON_RESPONSE			LM1.0 Response to LOGON_REQUEST
129da6c28aaSamw  *	LOGON_CENTRAL_QUERY		LM1.0 QUERY for centralized init
130da6c28aaSamw  *	LOGON_DISTRIB_QUERY		LM1.0 QUERY for non-centralized init
131da6c28aaSamw  *	LOGON_CENTRAL_RESPONSE		LM1.0 response to LOGON_CENTRAL_QUERY
132da6c28aaSamw  *	LOGON_DISTRIB_RESPONSE		LM1.0 resp to LOGON_DISTRIB_QUERY
133da6c28aaSamw  *	LOGON_RESPONSE2			LM2.0 Response to LOGON_REQUEST
134da6c28aaSamw  *	LOGON_PRIMARY_QUERY		QUERY for Primary DC
135da6c28aaSamw  *	LOGON_START_PRIMARY		announce startup of Primary DC
136da6c28aaSamw  *	LOGON_FAIL_PRIMARY		announce failed  Primary DC
137da6c28aaSamw  *	LOGON_UAS_CHANGE		announce change to UAS or SAM
138da6c28aaSamw  *	LOGON_NO_USER			announce no user on machine
139da6c28aaSamw  *	LOGON_PRIMARY_RESPONSE		response to LOGON_PRIMARY_QUERY
140da6c28aaSamw  *	LOGON_RELOGON_RESPONSE		LM1.0/2.0 resp to relogon request
141da6c28aaSamw  *	LOGON_WKSTINFO_RESPONSE		LM1.0/2.0 resp to interrogate request
142da6c28aaSamw  *	LOGON_PAUSE_RESPONSE		LM2.0 resp when NETLOGON is paused
143da6c28aaSamw  *	LOGON_USER_UNKNOWN		LM2.0 response when user is unknown
144da6c28aaSamw  *	LOGON_UPDATE_ACCOUNT		LM2.1 announce account updates
145da6c28aaSamw  *	LOGON_SAM_LOGON_REQUEST		SAM LOGON request from client
146da6c28aaSamw  *	LOGON_SAM_LOGON_RESPONSE	SAM Response to SAM logon request
147da6c28aaSamw  *	LOGON_SAM_PAUSE_RESPONSE	SAM response when NETLOGON is paused
148da6c28aaSamw  *	LOGON_SAM_USER_UNKNOWN		SAM response when user is unknown
149da6c28aaSamw  *	LOGON_SAM_WKSTINFO_RESPONSE	SAM response to interrogate request
150da6c28aaSamw  */
151da6c28aaSamw #define	LOGON_REQUEST			0
152da6c28aaSamw #define	LOGON_RESPONSE			1
153da6c28aaSamw #define	LOGON_CENTRAL_QUERY		2
154da6c28aaSamw #define	LOGON_DISTRIB_QUERY		3
155da6c28aaSamw #define	LOGON_CENTRAL_RESPONSE		4
156da6c28aaSamw #define	LOGON_DISTRIB_RESPONSE		5
157da6c28aaSamw #define	LOGON_RESPONSE2			6
158da6c28aaSamw #define	LOGON_PRIMARY_QUERY		7
159da6c28aaSamw #define	LOGON_START_PRIMARY		8
160da6c28aaSamw #define	LOGON_FAIL_PRIMARY		9
161da6c28aaSamw #define	LOGON_UAS_CHANGE		10
162da6c28aaSamw #define	LOGON_NO_USER			11
163da6c28aaSamw #define	LOGON_PRIMARY_RESPONSE		12
164da6c28aaSamw #define	LOGON_RELOGON_RESPONSE		13
165da6c28aaSamw #define	LOGON_WKSTINFO_RESPONSE		14
166da6c28aaSamw #define	LOGON_PAUSE_RESPONSE		15
167da6c28aaSamw #define	LOGON_USER_UNKNOWN		16
168da6c28aaSamw #define	LOGON_UPDATE_ACCOUNT		17
169da6c28aaSamw #define	LOGON_SAM_LOGON_REQUEST		18
170da6c28aaSamw #define	LOGON_SAM_LOGON_RESPONSE	19
171da6c28aaSamw #define	LOGON_SAM_PAUSE_RESPONSE	20
172da6c28aaSamw #define	LOGON_SAM_USER_UNKNOWN		21
173da6c28aaSamw #define	LOGON_SAM_WKSTINFO_RESPONSE	22
174da6c28aaSamw 
175da6c28aaSamw 
176da6c28aaSamw /*
177da6c28aaSamw  * Local protocol flags used to indicate which version of the
178da6c28aaSamw  * netlogon protocol to use when attempting to find the PDC.
179da6c28aaSamw  */
180da6c28aaSamw #define	NETLOGON_PROTO_NETLOGON			0x01
181da6c28aaSamw #define	NETLOGON_PROTO_SAMLOGON			0x02
182da6c28aaSamw 
183*8d7e4166Sjose borrego typedef struct smb_ntdomain_t {
184*8d7e4166Sjose borrego 	char 		n_domain[SMB_PI_MAX_DOMAIN];
185*8d7e4166Sjose borrego 	char 		n_name[SMB_PI_MAX_DOMAIN];
186*8d7e4166Sjose borrego 	uint32_t	n_ipaddr;
187*8d7e4166Sjose borrego } smb_ntdomain_t;
188*8d7e4166Sjose borrego 
189da6c28aaSamw #ifdef __cplusplus
190da6c28aaSamw }
191da6c28aaSamw #endif
192da6c28aaSamw 
193da6c28aaSamw 
194da6c28aaSamw #endif /* _BROWSER_H_ */
195