summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2007-05-24 23:11:11 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:22:48 -0500
commit94e4a468f02bc243b72c7e1ddd5a15facf661ae5 (patch)
treed1cda85291107c5a14fd9b5535ca2c8c8baea811 /source3/include
parent08be930169c77221843cc8cda5b2bcdad91c71fa (diff)
downloadsamba-94e4a468f02bc243b72c7e1ddd5a15facf661ae5.tar.gz
samba-94e4a468f02bc243b72c7e1ddd5a15facf661ae5.tar.bz2
samba-94e4a468f02bc243b72c7e1ddd5a15facf661ae5.zip
r23127: Fill in some more netlogon dsgetdcname flavours (netr_DsRGetDCNameEx,
netr_DsRGetDCNameEx2) and add new ds request and reply flags, also add some more WERROR codes. Guenther (This used to be commit 37ae7f419702c563bcd0d9c27c02bde7efd34dd7)
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/doserr.h3
-rw-r--r--source3/include/rpc_netlogon.h97
2 files changed, 98 insertions, 2 deletions
diff --git a/source3/include/doserr.h b/source3/include/doserr.h
index 3c3978a5b9..5073cd005c 100644
--- a/source3/include/doserr.h
+++ b/source3/include/doserr.h
@@ -184,6 +184,7 @@
#define WERR_ALREADY_EXISTS W_ERROR(80)
#define WERR_BAD_PASSWORD W_ERROR(86)
#define WERR_INVALID_PARAM W_ERROR(87)
+#define WERR_SEM_TIMEOUT W_ERROR(121)
#define WERR_INSUFFICIENT_BUFFER W_ERROR(122)
#define WERR_INVALID_NAME W_ERROR(123)
#define WERR_UNKNOWN_LEVEL W_ERROR(124)
@@ -193,6 +194,7 @@
#define WERR_INVALID_OWNER W_ERROR(1307)
#define WERR_IO_PENDING W_ERROR(997)
#define WERR_CAN_NOT_COMPLETE W_ERROR(1003)
+#define WERR_INVALID_FLAGS W_ERROR(1004)
#define WERR_REG_CORRUPT W_ERROR(1015)
#define WERR_REG_IO_FAILURE W_ERROR(1016)
#define WERR_REG_FILE_INVALID W_ERROR(1017)
@@ -214,6 +216,7 @@
#define WERR_JOB_NOT_FOUND W_ERROR(2151)
#define WERR_DEST_NOT_FOUND W_ERROR(2152)
#define WERR_NOT_LOCAL_DOMAIN W_ERROR(2320)
+#define WERR_DOMAIN_CONTROLLER_NOT_FOUND W_ERROR(2453)
#define WERR_STATUS_MORE_ENTRIES W_ERROR(0x0105)
#define WERR_PRINTER_DRIVER_ALREADY_INSTALLED W_ERROR(ERRdriveralreadyinstalled)
diff --git a/source3/include/rpc_netlogon.h b/source3/include/rpc_netlogon.h
index 7bbd9cc1cb..2583a5bd40 100644
--- a/source3/include/rpc_netlogon.h
+++ b/source3/include/rpc_netlogon.h
@@ -41,7 +41,9 @@
#define NET_TRUST_DOM_LIST 0x13
#define NET_DSR_GETDCNAME 0x14
#define NET_AUTH3 0x1a
+#define NET_DSR_GETDCNAMEEX 0x1b
#define NET_DSR_GETSITENAME 0x1c
+#define NET_DSR_GETDCNAMEEX2 0x22
#define NET_SAMLOGON_EX 0x27
/* Returned delta types */
@@ -1043,7 +1045,63 @@ typedef struct net_r_sam_deltas_info {
NTSTATUS status;
} NET_R_SAM_DELTAS;
-/* NET_Q_DSR_GETDCNAME - Ask a DC for a trusted DC name and its address */
+#define DS_FORCE_REDISCOVERY 0x00000001
+#define DS_DIRECTORY_SERVICE_REQUIRED 0x00000010
+#define DS_DIRECTORY_SERVICE_PREFERRED 0x00000020
+#define DS_GC_SERVER_REQUIRED 0x00000040
+#define DS_PDC_REQUIRED 0x00000080
+#define DS_BACKGROUND_ONLY 0x00000100
+#define DS_IP_REQUIRED 0x00000200
+#define DS_KDC_REQUIRED 0x00000400
+#define DS_TIMESERV_REQUIRED 0x00000800
+#define DS_WRITABLE_REQUIRED 0x00001000
+#define DS_GOOD_TIMESERV_PREFERRED 0x00002000
+#define DS_AVOID_SELF 0x00004000
+#define DS_ONLY_LDAP_NEEDED 0x00008000
+
+#define DS_IS_FLAT_NAME 0x00010000
+#define DS_IS_DNS_NAME 0x00020000
+
+#define DS_RETURN_DNS_NAME 0x40000000
+#define DS_RETURN_FLAT_NAME 0x80000000
+
+#if 0 /* unknown yet */
+#define DS_IP_VERSION_AGNOSTIC
+#define DS_TRY_NEXTCLOSEST_SITE
+#endif
+
+#define DSGETDC_VALID_FLAGS ( \
+ DS_FORCE_REDISCOVERY | \
+ DS_DIRECTORY_SERVICE_REQUIRED | \
+ DS_DIRECTORY_SERVICE_PREFERRED | \
+ DS_GC_SERVER_REQUIRED | \
+ DS_PDC_REQUIRED | \
+ DS_BACKGROUND_ONLY | \
+ DS_IP_REQUIRED | \
+ DS_KDC_REQUIRED | \
+ DS_TIMESERV_REQUIRED | \
+ DS_WRITABLE_REQUIRED | \
+ DS_GOOD_TIMESERV_PREFERRED | \
+ DS_AVOID_SELF | \
+ DS_ONLY_LDAP_NEEDED | \
+ DS_IS_FLAT_NAME | \
+ DS_IS_DNS_NAME | \
+ DS_RETURN_FLAT_NAME | \
+ DS_RETURN_DNS_NAME )
+
+struct DS_DOMAIN_CONTROLLER_INFO {
+ const char *domain_controller_name;
+ const char *domain_controller_address;
+ int32 domain_controller_address_type;
+ struct GUID *domain_guid;
+ const char *domain_name;
+ const char *dns_forest_name;
+ uint32 flags;
+ const char *dc_site_name;
+ const char *client_site_name;
+};
+
+/* NET_Q_DSR_GETDCNAME */
typedef struct net_q_dsr_getdcname {
uint32 ptr_server_unc;
UNISTR2 uni_server_unc;
@@ -1056,7 +1114,7 @@ typedef struct net_q_dsr_getdcname {
uint32 flags;
} NET_Q_DSR_GETDCNAME;
-/* NET_R_DSR_GETDCNAME - Ask a DC for a trusted DC name and its address */
+/* NET_R_DSR_GETDCNAME */
typedef struct net_r_dsr_getdcname {
uint32 ptr_dc_unc;
UNISTR2 uni_dc_unc;
@@ -1076,6 +1134,41 @@ typedef struct net_r_dsr_getdcname {
WERROR result;
} NET_R_DSR_GETDCNAME;
+/* NET_Q_DSR_GETDCNAMEEX */
+typedef struct net_q_dsr_getdcnameex {
+ uint32 ptr_server_unc;
+ UNISTR2 uni_server_unc;
+ uint32 ptr_domain_name;
+ UNISTR2 uni_domain_name;
+ uint32 ptr_domain_guid;
+ struct GUID *domain_guid;
+ uint32 ptr_site_name;
+ UNISTR2 uni_site_name;
+ uint32 flags;
+} NET_Q_DSR_GETDCNAMEEX;
+
+/* NET_R_DSR_GETDCNAMEEX */
+typedef struct NET_R_DSR_GETDCNAME NET_R_DSR_GETDCNAMEEX;
+
+/* NET_Q_DSR_GETDCNAMEEX2 */
+typedef struct net_q_dsr_getdcnameex2 {
+ uint32 ptr_server_unc;
+ UNISTR2 uni_server_unc;
+ uint32 ptr_client_account;
+ UNISTR2 uni_client_account;
+ uint32 mask;
+ uint32 ptr_domain_name;
+ UNISTR2 uni_domain_name;
+ uint32 ptr_domain_guid;
+ struct GUID *domain_guid;
+ uint32 ptr_site_name;
+ UNISTR2 uni_site_name;
+ uint32 flags;
+} NET_Q_DSR_GETDCNAMEEX2;
+
+/* NET_R_DSR_GETDCNAMEEX */
+typedef struct NET_R_DSR_GETDCNAME NET_R_DSR_GETDCNAMEEX2;
+
/* NET_Q_DSR_GESITENAME */
typedef struct net_q_dsr_getsitename {
uint32 ptr_computer_name;