summaryrefslogtreecommitdiff
path: root/source4/librpc
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc')
-rw-r--r--source4/librpc/idl/misc.idl6
-rw-r--r--source4/librpc/idl/samr.idl2
-rw-r--r--source4/librpc/ndr/ndr_dfs.h18
-rw-r--r--source4/librpc/ndr/ndr_echo.h16
-rw-r--r--source4/librpc/ndr/ndr_lsa.h100
-rw-r--r--source4/librpc/ndr/ndr_misc.h2
-rw-r--r--source4/librpc/ndr/ndr_samr.h142
-rw-r--r--source4/librpc/ndr/ndr_spoolss.h198
-rw-r--r--source4/librpc/ndr/ndr_wkssvc.h68
-rw-r--r--source4/librpc/rpc/dcerpc.c53
-rw-r--r--source4/librpc/rpc/dcerpc.h3
-rw-r--r--source4/librpc/rpc/dcerpc_smb.c7
12 files changed, 317 insertions, 298 deletions
diff --git a/source4/librpc/idl/misc.idl b/source4/librpc/idl/misc.idl
index c170beceae..925896fbe1 100644
--- a/source4/librpc/idl/misc.idl
+++ b/source4/librpc/idl/misc.idl
@@ -2,10 +2,8 @@
miscellaneous IDL structures
*/
-[ uuid(0-0-0-0-0),
- version(0.0),
- pointer_default(unique)
-] interface misc
+[]
+interface misc
{
/* a domain SID. Note that unlike Samba3 this contains a pointer,
diff --git a/source4/librpc/idl/samr.idl b/source4/librpc/idl/samr.idl
index e9aea5dbfe..82794a28e1 100644
--- a/source4/librpc/idl/samr.idl
+++ b/source4/librpc/idl/samr.idl
@@ -5,7 +5,7 @@
[ uuid(12345778-1234-abcd-ef00-0123456789ac),
version(1.0),
pointer_default(unique)
-] interface lsarpc
+] interface samr
{
/******************/
/* Function: 0x00 */
diff --git a/source4/librpc/ndr/ndr_dfs.h b/source4/librpc/ndr/ndr_dfs.h
index af46b3dabf..9a27c7040a 100644
--- a/source4/librpc/ndr/ndr_dfs.h
+++ b/source4/librpc/ndr/ndr_dfs.h
@@ -1,5 +1,17 @@
/* header auto-generated by pidl */
+#define DCERPC_NETDFS_UUID "4fc742e0-4a10-11cf-8273-00aa004ae673"
+#define DCERPC_NETDFS_VERSION 3.0
+#define DCERPC_NETDFS_NAME "netdfs"
+
+#define DCERPC_DFS_EXIST 0
+#define DCERPC_DFS_ADD 1
+#define DCERPC_DFS_REMOVE 2
+#define DCERPC_DFS_SETINFO 3
+#define DCERPC_DFS_GETINFO 4
+#define DCERPC_DFS_ENUM 5
+
+
struct dfs_Exist {
struct {
} in;
@@ -192,9 +204,3 @@ struct dfs_Enum {
};
-#define DCERPC_DFS_EXIST 0
-#define DCERPC_DFS_ADD 1
-#define DCERPC_DFS_REMOVE 2
-#define DCERPC_DFS_SETINFO 3
-#define DCERPC_DFS_GETINFO 4
-#define DCERPC_DFS_ENUM 5
diff --git a/source4/librpc/ndr/ndr_echo.h b/source4/librpc/ndr/ndr_echo.h
index d6b6f0eb96..ba82a6ad67 100644
--- a/source4/librpc/ndr/ndr_echo.h
+++ b/source4/librpc/ndr/ndr_echo.h
@@ -1,5 +1,16 @@
/* header auto-generated by pidl */
+#define DCERPC_RPCECHO_UUID "60a15ec5-4de8-11d7-a637-005056a20182"
+#define DCERPC_RPCECHO_VERSION 1.0
+#define DCERPC_RPCECHO_NAME "rpcecho"
+
+#define DCERPC_ECHO_ADDONE 0
+#define DCERPC_ECHO_ECHODATA 1
+#define DCERPC_ECHO_SINKDATA 2
+#define DCERPC_ECHO_SOURCEDATA 3
+#define DCERPC_TESTCALL 4
+
+
struct echo_AddOne {
struct {
uint32 *v;
@@ -55,8 +66,3 @@ struct TestCall {
};
-#define DCERPC_ECHO_ADDONE 0
-#define DCERPC_ECHO_ECHODATA 1
-#define DCERPC_ECHO_SINKDATA 2
-#define DCERPC_ECHO_SOURCEDATA 3
-#define DCERPC_TESTCALL 4
diff --git a/source4/librpc/ndr/ndr_lsa.h b/source4/librpc/ndr/ndr_lsa.h
index 68d8d4c473..151e5b9585 100644
--- a/source4/librpc/ndr/ndr_lsa.h
+++ b/source4/librpc/ndr/ndr_lsa.h
@@ -1,5 +1,58 @@
/* header auto-generated by pidl */
+#define DCERPC_LSARPC_UUID "12345778-1234-abcd-ef00-0123456789ab"
+#define DCERPC_LSARPC_VERSION 0.0
+#define DCERPC_LSARPC_NAME "lsarpc"
+
+#define DCERPC_LSA_CLOSE 0
+#define DCERPC_LSA_DELETE 1
+#define DCERPC_LSA_ENUMPRIVS 2
+#define DCERPC_LSA_QUERYSECOBJ 3
+#define DCERPC_LSA_SETSECOBJ 4
+#define DCERPC_LSA_CHANGEPASSWORD 5
+#define DCERPC_LSA_OPENPOLICY 6
+#define DCERPC_LSA_QUERYINFOPOLICY 7
+#define DCERPC_LSA_SETINFOPOLICY 8
+#define DCERPC_LSA_CLEARAUDITLOG 9
+#define DCERPC_LSA_CREATEACCOUNT 10
+#define DCERPC_LSA_ENUMACCOUNTS 11
+#define DCERPC_LSA_CREATETRUSTDOM 12
+#define DCERPC_LSA_ENUMTRUSTDOM 13
+#define DCERPC_LSA_LOOKUPNAMES 14
+#define DCERPC_LSA_LOOKUPSIDS 15
+#define DCERPC_CREATESECRET 16
+#define DCERPC_LSA_OPENACCOUNT 17
+#define DCERPC_LSA_ENUMPRIVSACCOUNT 18
+#define DCERPC_ADDPRIVS 19
+#define DCERPC_REMOVEPRIVS 20
+#define DCERPC_GETQUOTAS 21
+#define DCERPC_SETQUOTAS 22
+#define DCERPC_GETSYSTEMACCOUNT 23
+#define DCERPC_SETSYSTEMACCOUNT 24
+#define DCERPC_OPENTRUSTDOM 25
+#define DCERPC_QUERYTRUSTDOM 26
+#define DCERPC_SETINFOTRUSTDOM 27
+#define DCERPC_OPENSECRET 28
+#define DCERPC_SETSECRET 29
+#define DCERPC_QUERYSECRET 30
+#define DCERPC_LOOKUPPRIVVALUE 31
+#define DCERPC_LSA_LOOKUPPRIVNAME 32
+#define DCERPC_PRIV_GET_DISPNAME 33
+#define DCERPC_DELETEOBJECT 34
+#define DCERPC_ENUMACCTWITHRIGHT 35
+#define DCERPC_LSA_ENUMACCOUNTRIGHTS 36
+#define DCERPC_ADDACCTRIGHTS 37
+#define DCERPC_REMOVEACCTRIGHTS 38
+#define DCERPC_QUERYTRUSTDOMINFO 39
+#define DCERPC_SETTRUSTDOMINFO 40
+#define DCERPC_DELETETRUSTDOM 41
+#define DCERPC_STOREPRIVDATA 42
+#define DCERPC_RETRPRIVDATA 43
+#define DCERPC_LSA_OPENPOLICY2 44
+#define DCERPC_UNK_GET_CONNUSER 45
+#define DCERPC_QUERYINFO2 46
+
+
struct lsa_Close {
struct {
struct policy_handle *handle;
@@ -730,50 +783,3 @@ struct QUERYINFO2 {
};
-#define DCERPC_LSA_CLOSE 0
-#define DCERPC_LSA_DELETE 1
-#define DCERPC_LSA_ENUMPRIVS 2
-#define DCERPC_LSA_QUERYSECOBJ 3
-#define DCERPC_LSA_SETSECOBJ 4
-#define DCERPC_LSA_CHANGEPASSWORD 5
-#define DCERPC_LSA_OPENPOLICY 6
-#define DCERPC_LSA_QUERYINFOPOLICY 7
-#define DCERPC_LSA_SETINFOPOLICY 8
-#define DCERPC_LSA_CLEARAUDITLOG 9
-#define DCERPC_LSA_CREATEACCOUNT 10
-#define DCERPC_LSA_ENUMACCOUNTS 11
-#define DCERPC_LSA_CREATETRUSTDOM 12
-#define DCERPC_LSA_ENUMTRUSTDOM 13
-#define DCERPC_LSA_LOOKUPNAMES 14
-#define DCERPC_LSA_LOOKUPSIDS 15
-#define DCERPC_CREATESECRET 16
-#define DCERPC_LSA_OPENACCOUNT 17
-#define DCERPC_LSA_ENUMPRIVSACCOUNT 18
-#define DCERPC_ADDPRIVS 19
-#define DCERPC_REMOVEPRIVS 20
-#define DCERPC_GETQUOTAS 21
-#define DCERPC_SETQUOTAS 22
-#define DCERPC_GETSYSTEMACCOUNT 23
-#define DCERPC_SETSYSTEMACCOUNT 24
-#define DCERPC_OPENTRUSTDOM 25
-#define DCERPC_QUERYTRUSTDOM 26
-#define DCERPC_SETINFOTRUSTDOM 27
-#define DCERPC_OPENSECRET 28
-#define DCERPC_SETSECRET 29
-#define DCERPC_QUERYSECRET 30
-#define DCERPC_LOOKUPPRIVVALUE 31
-#define DCERPC_LSA_LOOKUPPRIVNAME 32
-#define DCERPC_PRIV_GET_DISPNAME 33
-#define DCERPC_DELETEOBJECT 34
-#define DCERPC_ENUMACCTWITHRIGHT 35
-#define DCERPC_LSA_ENUMACCOUNTRIGHTS 36
-#define DCERPC_ADDACCTRIGHTS 37
-#define DCERPC_REMOVEACCTRIGHTS 38
-#define DCERPC_QUERYTRUSTDOMINFO 39
-#define DCERPC_SETTRUSTDOMINFO 40
-#define DCERPC_DELETETRUSTDOM 41
-#define DCERPC_STOREPRIVDATA 42
-#define DCERPC_RETRPRIVDATA 43
-#define DCERPC_LSA_OPENPOLICY2 44
-#define DCERPC_UNK_GET_CONNUSER 45
-#define DCERPC_QUERYINFO2 46
diff --git a/source4/librpc/ndr/ndr_misc.h b/source4/librpc/ndr/ndr_misc.h
index 8869b535ec..86c898eff2 100644
--- a/source4/librpc/ndr/ndr_misc.h
+++ b/source4/librpc/ndr/ndr_misc.h
@@ -1,5 +1,7 @@
/* header auto-generated by pidl */
+
+
struct dom_sid {
uint8 sid_rev_num;
uint8 num_auths;
diff --git a/source4/librpc/ndr/ndr_samr.h b/source4/librpc/ndr/ndr_samr.h
index 28a7bc16cc..ed32d3d9f4 100644
--- a/source4/librpc/ndr/ndr_samr.h
+++ b/source4/librpc/ndr/ndr_samr.h
@@ -1,5 +1,79 @@
/* header auto-generated by pidl */
+#define DCERPC_SAMR_UUID "12345778-1234-abcd-ef00-0123456789ac"
+#define DCERPC_SAMR_VERSION 1.0
+#define DCERPC_SAMR_NAME "samr"
+
+#define DCERPC_SAMR_CONNECT 0
+#define DCERPC_SAMR_CLOSE 1
+#define DCERPC_SAMR_SETSECURITY 2
+#define DCERPC_SAMR_QUERYSECURITY 3
+#define DCERPC_SAMR_SHUTDOWN 4
+#define DCERPC_SAMR_LOOKUPDOMAIN 5
+#define DCERPC_SAMR_ENUMDOMAINS 6
+#define DCERPC_SAMR_OPENDOMAIN 7
+#define DCERPC_SAMR_QUERYDOMAININFO 8
+#define DCERPC_SAMR_SET_DOMAIN_INFO 9
+#define DCERPC_SAMR_CREATE_DOM_GROUP 10
+#define DCERPC_SAMR_ENUMDOMAINGROUPS 11
+#define DCERPC_SAMR_CREATE_USER_IN_DOMAIN 12
+#define DCERPC_SAMR_ENUMDOMAINUSERS 13
+#define DCERPC_SAMR_CREATE_DOM_ALIAS 14
+#define DCERPC_SAMR_ENUMDOMAINALIASES 15
+#define DCERPC_SAMR_GET_ALIAS_MEMBERSHIP 16
+#define DCERPC_SAMR_LOOKUP_NAMES 17
+#define DCERPC_SAMR_LOOKUP_RIDS 18
+#define DCERPC_SAMR_OPENGROUP 19
+#define DCERPC_SAMR_QUERYGROUPINFO 20
+#define DCERPC_SAMR_SET_GROUPINFO 21
+#define DCERPC_SAMR_ADD_GROUPMEM 22
+#define DCERPC_SAMR_DELETE_DOM_GROUP 23
+#define DCERPC_SAMR_DEL_GROUPMEM 24
+#define DCERPC_SAMR_QUERY_GROUPMEM 25
+#define DCERPC_SAMR_SET_MEMBER_ATTRIBUTES_OF_GROUP 26
+#define DCERPC_SAMR_OPENALIAS 27
+#define DCERPC_SAMR_QUERYALIASINFO 28
+#define DCERPC_SAMR_SET_ALIASINFO 29
+#define DCERPC_SAMR_DELETE_DOM_ALIAS 30
+#define DCERPC_SAMR_ADD_ALIASMEM 31
+#define DCERPC_SAMR_DEL_ALIASMEM 32
+#define DCERPC_SAMR_GET_MEMBERS_IN_ALIAS 33
+#define DCERPC_SAMR_OPENUSER 34
+#define DCERPC_SAMR_DELETE_DOM_USER 35
+#define DCERPC_SAMR_QUERYUSERINFO 36
+#define DCERPC_SAMR_SET_USERINFO 37
+#define DCERPC_SAMR_CHANGE_PASSWORD_USER 38
+#define DCERPC_SAMR_GET_GROUPS_FOR_USER 39
+#define DCERPC_SAMR_QUERY_DISPINFO 40
+#define DCERPC_SAMR_GET_DISPLAY_ENUMERATION_INDEX 41
+#define DCERPC_SAMR_TEST_PRIVATE_FUNCTIONS_DOMAIN 42
+#define DCERPC_SAMR_TEST_PRIVATE_FUNCTIONS_USER 43
+#define DCERPC_SAMR_GET_USRDOM_PWINFO 44
+#define DCERPC_SAMR_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN 45
+#define DCERPC_SAMR_QUERY_INFORMATION_DOMAIN2 46
+#define DCERPC_SAMR_QUERY_INFORMATION_USER2 47
+#define DCERPC_SAMR_QUERY_DISPINFO2 48
+#define DCERPC_SAMR_GET_DISPLAY_ENUMERATION_INDEX2 49
+#define DCERPC_SAMR_CREATE_USER2_IN_DOMAIN 50
+#define DCERPC_SAMR_QUERY_DISPINFO3 51
+#define DCERPC_SAMR_ADD_MULTIPLE_MEMBERS_TO_ALIAS 52
+#define DCERPC_SAMR_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS 53
+#define DCERPC_SAMR_OEM_CHANGE_PASSWORD_USER2 54
+#define DCERPC_SAMR_UNICODE_CHANGE_PASSWORD_USER2 55
+#define DCERPC_SAMR_GET_DOM_PWINFO 56
+#define DCERPC_SAMR_CONNECT2 57
+#define DCERPC_SAMR_SET_USERINFO2 58
+#define DCERPC_SAMR_SET_BOOT_KEY_INFORMATION 59
+#define DCERPC_SAMR_GET_BOOT_KEY_INFORMATION 60
+#define DCERPC_SAMR_CONNECT3 61
+#define DCERPC_SAMR_CONNECT4 62
+#define DCERPC_SAMR_UNICODE_CHANGE_PASSWORD_USER3 63
+#define DCERPC_SAMR_CONNECT5 64
+#define DCERPC_SAMR_RID_TO_SID 65
+#define DCERPC_SAMR_SET_DSRM_PASSWORD 66
+#define DCERPC_SAMR_VALIDATE_PASSWORD 67
+
+
struct samr_Connect {
struct {
uint16 *system_name;
@@ -1076,71 +1150,3 @@ struct samr_VALIDATE_PASSWORD {
};
-#define DCERPC_SAMR_CONNECT 0
-#define DCERPC_SAMR_CLOSE 1
-#define DCERPC_SAMR_SETSECURITY 2
-#define DCERPC_SAMR_QUERYSECURITY 3
-#define DCERPC_SAMR_SHUTDOWN 4
-#define DCERPC_SAMR_LOOKUPDOMAIN 5
-#define DCERPC_SAMR_ENUMDOMAINS 6
-#define DCERPC_SAMR_OPENDOMAIN 7
-#define DCERPC_SAMR_QUERYDOMAININFO 8
-#define DCERPC_SAMR_SET_DOMAIN_INFO 9
-#define DCERPC_SAMR_CREATE_DOM_GROUP 10
-#define DCERPC_SAMR_ENUMDOMAINGROUPS 11
-#define DCERPC_SAMR_CREATE_USER_IN_DOMAIN 12
-#define DCERPC_SAMR_ENUMDOMAINUSERS 13
-#define DCERPC_SAMR_CREATE_DOM_ALIAS 14
-#define DCERPC_SAMR_ENUMDOMAINALIASES 15
-#define DCERPC_SAMR_GET_ALIAS_MEMBERSHIP 16
-#define DCERPC_SAMR_LOOKUP_NAMES 17
-#define DCERPC_SAMR_LOOKUP_RIDS 18
-#define DCERPC_SAMR_OPENGROUP 19
-#define DCERPC_SAMR_QUERYGROUPINFO 20
-#define DCERPC_SAMR_SET_GROUPINFO 21
-#define DCERPC_SAMR_ADD_GROUPMEM 22
-#define DCERPC_SAMR_DELETE_DOM_GROUP 23
-#define DCERPC_SAMR_DEL_GROUPMEM 24
-#define DCERPC_SAMR_QUERY_GROUPMEM 25
-#define DCERPC_SAMR_SET_MEMBER_ATTRIBUTES_OF_GROUP 26
-#define DCERPC_SAMR_OPENALIAS 27
-#define DCERPC_SAMR_QUERYALIASINFO 28
-#define DCERPC_SAMR_SET_ALIASINFO 29
-#define DCERPC_SAMR_DELETE_DOM_ALIAS 30
-#define DCERPC_SAMR_ADD_ALIASMEM 31
-#define DCERPC_SAMR_DEL_ALIASMEM 32
-#define DCERPC_SAMR_GET_MEMBERS_IN_ALIAS 33
-#define DCERPC_SAMR_OPENUSER 34
-#define DCERPC_SAMR_DELETE_DOM_USER 35
-#define DCERPC_SAMR_QUERYUSERINFO 36
-#define DCERPC_SAMR_SET_USERINFO 37
-#define DCERPC_SAMR_CHANGE_PASSWORD_USER 38
-#define DCERPC_SAMR_GET_GROUPS_FOR_USER 39
-#define DCERPC_SAMR_QUERY_DISPINFO 40
-#define DCERPC_SAMR_GET_DISPLAY_ENUMERATION_INDEX 41
-#define DCERPC_SAMR_TEST_PRIVATE_FUNCTIONS_DOMAIN 42
-#define DCERPC_SAMR_TEST_PRIVATE_FUNCTIONS_USER 43
-#define DCERPC_SAMR_GET_USRDOM_PWINFO 44
-#define DCERPC_SAMR_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN 45
-#define DCERPC_SAMR_QUERY_INFORMATION_DOMAIN2 46
-#define DCERPC_SAMR_QUERY_INFORMATION_USER2 47
-#define DCERPC_SAMR_QUERY_DISPINFO2 48
-#define DCERPC_SAMR_GET_DISPLAY_ENUMERATION_INDEX2 49
-#define DCERPC_SAMR_CREATE_USER2_IN_DOMAIN 50
-#define DCERPC_SAMR_QUERY_DISPINFO3 51
-#define DCERPC_SAMR_ADD_MULTIPLE_MEMBERS_TO_ALIAS 52
-#define DCERPC_SAMR_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS 53
-#define DCERPC_SAMR_OEM_CHANGE_PASSWORD_USER2 54
-#define DCERPC_SAMR_UNICODE_CHANGE_PASSWORD_USER2 55
-#define DCERPC_SAMR_GET_DOM_PWINFO 56
-#define DCERPC_SAMR_CONNECT2 57
-#define DCERPC_SAMR_SET_USERINFO2 58
-#define DCERPC_SAMR_SET_BOOT_KEY_INFORMATION 59
-#define DCERPC_SAMR_GET_BOOT_KEY_INFORMATION 60
-#define DCERPC_SAMR_CONNECT3 61
-#define DCERPC_SAMR_CONNECT4 62
-#define DCERPC_SAMR_UNICODE_CHANGE_PASSWORD_USER3 63
-#define DCERPC_SAMR_CONNECT5 64
-#define DCERPC_SAMR_RID_TO_SID 65
-#define DCERPC_SAMR_SET_DSRM_PASSWORD 66
-#define DCERPC_SAMR_VALIDATE_PASSWORD 67
diff --git a/source4/librpc/ndr/ndr_spoolss.h b/source4/librpc/ndr/ndr_spoolss.h
index c8d97dff45..264ad3d442 100644
--- a/source4/librpc/ndr/ndr_spoolss.h
+++ b/source4/librpc/ndr/ndr_spoolss.h
@@ -1,5 +1,107 @@
/* header auto-generated by pidl */
+#define DCERPC_SPOOLSS_UUID "12345678-1234-abcd-ef00-0123456789ab"
+#define DCERPC_SPOOLSS_VERSION 1.0
+#define DCERPC_SPOOLSS_NAME "spoolss"
+
+#define DCERPC_SPOOLSS_ENUMPRINTERS 0
+#define DCERPC_SPOOLSS_OPENPRINTER 1
+#define DCERPC_SPOOLSS_02 2
+#define DCERPC_SPOOLSS_03 3
+#define DCERPC_SPOOLSS_ENUMJOBS 4
+#define DCERPC_SPOOLSS_05 5
+#define DCERPC_SPOOLSS_06 6
+#define DCERPC_SPOOLSS_07 7
+#define DCERPC_SPOOLSS_GETPRINTER 8
+#define DCERPC_SPOOLSS_09 9
+#define DCERPC_SPOOLSS_0A 10
+#define DCERPC_SPOOLSS_0B 11
+#define DCERPC_SPOOLSS_0C 12
+#define DCERPC_SPOOLSS_0D 13
+#define DCERPC_SPOOLSS_0E 14
+#define DCERPC_SPOOLSS_0F 15
+#define DCERPC_SPOOLSS_10 16
+#define DCERPC_SPOOLSS_11 17
+#define DCERPC_SPOOLSS_STARTPAGEPRINTER 18
+#define DCERPC_SPOOLSS_13 19
+#define DCERPC_SPOOLSS_ENDPAGEPRINTER 20
+#define DCERPC_SPOOLSS_15 21
+#define DCERPC_SPOOLSS_16 22
+#define DCERPC_SPOOLSS_ENDDOCPRINTER 23
+#define DCERPC_SPOOLSS_18 24
+#define DCERPC_SPOOLSS_19 25
+#define DCERPC_SPOOLSS_1A 26
+#define DCERPC_SPOOLSS_1B 27
+#define DCERPC_SPOOLSS_1C 28
+#define DCERPC_SPOOLSS_CLOSEPRINTER 29
+#define DCERPC_SPOOLSS_1E 30
+#define DCERPC_SPOOLSS_1F 31
+#define DCERPC_SPOOLSS_20 32
+#define DCERPC_SPOOLSS_21 33
+#define DCERPC_SPOOLSS_22 34
+#define DCERPC_SPOOLSS_23 35
+#define DCERPC_SPOOLSS_24 36
+#define DCERPC_SPOOLSS_25 37
+#define DCERPC_SPOOLSS_26 38
+#define DCERPC_SPOOLSS_27 39
+#define DCERPC_SPOOLSS_28 40
+#define DCERPC_SPOOLSS_29 41
+#define DCERPC_SPOOLSS_2A 42
+#define DCERPC_SPOOLSS_2B 43
+#define DCERPC_SPOOLSS_2C 44
+#define DCERPC_SPOOLSS_2D 45
+#define DCERPC_SPOOLSS_2E 46
+#define DCERPC_SPOOLSS_2F 47
+#define DCERPC_SPOOLSS_30 48
+#define DCERPC_SPOOLSS_31 49
+#define DCERPC_SPOOLSS_32 50
+#define DCERPC_SPOOLSS_33 51
+#define DCERPC_SPOOLSS_34 52
+#define DCERPC_SPOOLSS_35 53
+#define DCERPC_SPOOLSS_36 54
+#define DCERPC_SPOOLSS_37 55
+#define DCERPC_SPOOLSS_38 56
+#define DCERPC_SPOOLSS_39 57
+#define DCERPC_SPOOLSS_3A 58
+#define DCERPC_SPOOLSS_3B 59
+#define DCERPC_SPOOLSS_3C 60
+#define DCERPC_SPOOLSS_3D 61
+#define DCERPC_SPOOLSS_3E 62
+#define DCERPC_SPOOLSS_3F 63
+#define DCERPC_SPOOLSS_40 64
+#define DCERPC_SPOOLSS_41 65
+#define DCERPC_SPOOLSS_42 66
+#define DCERPC_SPOOLSS_43 67
+#define DCERPC_SPOOLSS_44 68
+#define DCERPC_SPOOLSS_OPENPRINTEREX 69
+#define DCERPC_SPOOLSS_46 70
+#define DCERPC_SPOOLSS_47 71
+#define DCERPC_SPOOLSS_ENUMPRINTERDATA 72
+#define DCERPC_SPOOLSS_49 73
+#define DCERPC_SPOOLSS_4A 74
+#define DCERPC_SPOOLSS_4B 75
+#define DCERPC_SPOOLSS_4C 76
+#define DCERPC_SPOOLSS_4D 77
+#define DCERPC_SPOOLSS_4E 78
+#define DCERPC_SPOOLSS_4F 79
+#define DCERPC_SPOOLSS_50 80
+#define DCERPC_SPOOLSS_51 81
+#define DCERPC_SPOOLSS_52 82
+#define DCERPC_SPOOLSS_53 83
+#define DCERPC_SPOOLSS_54 84
+#define DCERPC_SPOOLSS_55 85
+#define DCERPC_SPOOLSS_56 86
+#define DCERPC_SPOOLSS_57 87
+#define DCERPC_SPOOLSS_58 88
+#define DCERPC_SPOOLSS_59 89
+#define DCERPC_SPOOLSS_5A 90
+#define DCERPC_SPOOLSS_5B 91
+#define DCERPC_SPOOLSS_5C 92
+#define DCERPC_SPOOLSS_5D 93
+#define DCERPC_SPOOLSS_5E 94
+#define DCERPC_SPOOLSS_5F 95
+
+
struct spoolss_DeviceMode {
const char * devicename;
uint16 specversion;
@@ -1140,99 +1242,3 @@ struct spoolss_5f {
};
-#define DCERPC_SPOOLSS_ENUMPRINTERS 0
-#define DCERPC_SPOOLSS_OPENPRINTER 1
-#define DCERPC_SPOOLSS_02 2
-#define DCERPC_SPOOLSS_03 3
-#define DCERPC_SPOOLSS_ENUMJOBS 4
-#define DCERPC_SPOOLSS_05 5
-#define DCERPC_SPOOLSS_06 6
-#define DCERPC_SPOOLSS_07 7
-#define DCERPC_SPOOLSS_GETPRINTER 8
-#define DCERPC_SPOOLSS_09 9
-#define DCERPC_SPOOLSS_0A 10
-#define DCERPC_SPOOLSS_0B 11
-#define DCERPC_SPOOLSS_0C 12
-#define DCERPC_SPOOLSS_0D 13
-#define DCERPC_SPOOLSS_0E 14
-#define DCERPC_SPOOLSS_0F 15
-#define DCERPC_SPOOLSS_10 16
-#define DCERPC_SPOOLSS_11 17
-#define DCERPC_SPOOLSS_STARTPAGEPRINTER 18
-#define DCERPC_SPOOLSS_13 19
-#define DCERPC_SPOOLSS_ENDPAGEPRINTER 20
-#define DCERPC_SPOOLSS_15 21
-#define DCERPC_SPOOLSS_16 22
-#define DCERPC_SPOOLSS_ENDDOCPRINTER 23
-#define DCERPC_SPOOLSS_18 24
-#define DCERPC_SPOOLSS_19 25
-#define DCERPC_SPOOLSS_1A 26
-#define DCERPC_SPOOLSS_1B 27
-#define DCERPC_SPOOLSS_1C 28
-#define DCERPC_SPOOLSS_CLOSEPRINTER 29
-#define DCERPC_SPOOLSS_1E 30
-#define DCERPC_SPOOLSS_1F 31
-#define DCERPC_SPOOLSS_20 32
-#define DCERPC_SPOOLSS_21 33
-#define DCERPC_SPOOLSS_22 34
-#define DCERPC_SPOOLSS_23 35
-#define DCERPC_SPOOLSS_24 36
-#define DCERPC_SPOOLSS_25 37
-#define DCERPC_SPOOLSS_26 38
-#define DCERPC_SPOOLSS_27 39
-#define DCERPC_SPOOLSS_28 40
-#define DCERPC_SPOOLSS_29 41
-#define DCERPC_SPOOLSS_2A 42
-#define DCERPC_SPOOLSS_2B 43
-#define DCERPC_SPOOLSS_2C 44
-#define DCERPC_SPOOLSS_2D 45
-#define DCERPC_SPOOLSS_2E 46
-#define DCERPC_SPOOLSS_2F 47
-#define DCERPC_SPOOLSS_30 48
-#define DCERPC_SPOOLSS_31 49
-#define DCERPC_SPOOLSS_32 50
-#define DCERPC_SPOOLSS_33 51
-#define DCERPC_SPOOLSS_34 52
-#define DCERPC_SPOOLSS_35 53
-#define DCERPC_SPOOLSS_36 54
-#define DCERPC_SPOOLSS_37 55
-#define DCERPC_SPOOLSS_38 56
-#define DCERPC_SPOOLSS_39 57
-#define DCERPC_SPOOLSS_3A 58
-#define DCERPC_SPOOLSS_3B 59
-#define DCERPC_SPOOLSS_3C 60
-#define DCERPC_SPOOLSS_3D 61
-#define DCERPC_SPOOLSS_3E 62
-#define DCERPC_SPOOLSS_3F 63
-#define DCERPC_SPOOLSS_40 64
-#define DCERPC_SPOOLSS_41 65
-#define DCERPC_SPOOLSS_42 66
-#define DCERPC_SPOOLSS_43 67
-#define DCERPC_SPOOLSS_44 68
-#define DCERPC_SPOOLSS_OPENPRINTEREX 69
-#define DCERPC_SPOOLSS_46 70
-#define DCERPC_SPOOLSS_47 71
-#define DCERPC_SPOOLSS_ENUMPRINTERDATA 72
-#define DCERPC_SPOOLSS_49 73
-#define DCERPC_SPOOLSS_4A 74
-#define DCERPC_SPOOLSS_4B 75
-#define DCERPC_SPOOLSS_4C 76
-#define DCERPC_SPOOLSS_4D 77
-#define DCERPC_SPOOLSS_4E 78
-#define DCERPC_SPOOLSS_4F 79
-#define DCERPC_SPOOLSS_50 80
-#define DCERPC_SPOOLSS_51 81
-#define DCERPC_SPOOLSS_52 82
-#define DCERPC_SPOOLSS_53 83
-#define DCERPC_SPOOLSS_54 84
-#define DCERPC_SPOOLSS_55 85
-#define DCERPC_SPOOLSS_56 86
-#define DCERPC_SPOOLSS_57 87
-#define DCERPC_SPOOLSS_58 88
-#define DCERPC_SPOOLSS_59 89
-#define DCERPC_SPOOLSS_5A 90
-#define DCERPC_SPOOLSS_5B 91
-#define DCERPC_SPOOLSS_5C 92
-#define DCERPC_SPOOLSS_5D 93
-#define DCERPC_SPOOLSS_5E 94
-#define DCERPC_SPOOLSS_5F 95
diff --git a/source4/librpc/ndr/ndr_wkssvc.h b/source4/librpc/ndr/ndr_wkssvc.h
index 2337f84e7a..a9ebb34533 100644
--- a/source4/librpc/ndr/ndr_wkssvc.h
+++ b/source4/librpc/ndr/ndr_wkssvc.h
@@ -1,5 +1,42 @@
/* header auto-generated by pidl */
+#define DCERPC_WKSSVC_UUID "6bffd098-a112-3610-9833-46c3f87e345a"
+#define DCERPC_WKSSVC_VERSION 1.0
+#define DCERPC_WKSSVC_NAME "wkssvc"
+
+#define DCERPC_WKS_QUERYINFO 0
+#define DCERPC_WKS_SETINFO 1
+#define DCERPC_WKS_NETRWKSTAUSERENUM 2
+#define DCERPC_WKS_NETRWKSTAUSERGETINFO 3
+#define DCERPC_WKS_NETRWKSTAUSERSETINFO 4
+#define DCERPC_WKS_TRANSPORTENUM 5
+#define DCERPC_WKS_NETRWKSTATRANSPORTADD 6
+#define DCERPC_WKS_NETRWKSTATRANSPORTDEL 7
+#define DCERPC_WKS_NETRUSEADD 8
+#define DCERPC_WKS_NETRUSEGETINFO 9
+#define DCERPC_WKS_NETRUSEDEL 10
+#define DCERPC_WKS_NETRUSEENUM 11
+#define DCERPC_WKS_NETRMESSAGEBUFFERSEND 12
+#define DCERPC_WKS_NETRWORKSTATIONSTATISTICSGET 13
+#define DCERPC_WKS_NETRLOGONDOMAINNAMEADD 14
+#define DCERPC_WKS_NETRLOGONDOMAINNAMEDEL 15
+#define DCERPC_WKS_NETRJOINDOMAIN 16
+#define DCERPC_WKS_NETRUNJOINDOMAIN 17
+#define DCERPC_WKS_NETRRENAMEMACHINEINDOMAIN 18
+#define DCERPC_WKS_NETRVALIDATENAME 19
+#define DCERPC_WKS_NETRGETJOININFORMATION 20
+#define DCERPC_WKS_NETRGETJOINABLEOUS 21
+#define DCERPC_WKS_NETRJOINDOMAIN2 22
+#define DCERPC_WKS_NETRUNJOINDOMAIN2 23
+#define DCERPC_WKS_NETRRENAMEMACHINEINDOMAIN2 24
+#define DCERPC_WKS_NETRVALIDATENAME2 25
+#define DCERPC_WKS_NETRGETJOINABLEOUS2 26
+#define DCERPC_WKS_NETRADDALTERNATECOMPUTERNAME 27
+#define DCERPC_WKS_NETRREMOVEALTERNATECOMPUTERNAME 28
+#define DCERPC_WKS_NETRSETPRIMARYCOMPUTERNAME 29
+#define DCERPC_WKS_NETRENUMERATECOMPUTERNAMES 30
+
+
struct wks_Info100 {
uint32 platform_id;
const char *server;
@@ -375,34 +412,3 @@ struct WKS_NETRENUMERATECOMPUTERNAMES {
};
-#define DCERPC_WKS_QUERYINFO 0
-#define DCERPC_WKS_SETINFO 1
-#define DCERPC_WKS_NETRWKSTAUSERENUM 2
-#define DCERPC_WKS_NETRWKSTAUSERGETINFO 3
-#define DCERPC_WKS_NETRWKSTAUSERSETINFO 4
-#define DCERPC_WKS_TRANSPORTENUM 5
-#define DCERPC_WKS_NETRWKSTATRANSPORTADD 6
-#define DCERPC_WKS_NETRWKSTATRANSPORTDEL 7
-#define DCERPC_WKS_NETRUSEADD 8
-#define DCERPC_WKS_NETRUSEGETINFO 9
-#define DCERPC_WKS_NETRUSEDEL 10
-#define DCERPC_WKS_NETRUSEENUM 11
-#define DCERPC_WKS_NETRMESSAGEBUFFERSEND 12
-#define DCERPC_WKS_NETRWORKSTATIONSTATISTICSGET 13
-#define DCERPC_WKS_NETRLOGONDOMAINNAMEADD 14
-#define DCERPC_WKS_NETRLOGONDOMAINNAMEDEL 15
-#define DCERPC_WKS_NETRJOINDOMAIN 16
-#define DCERPC_WKS_NETRUNJOINDOMAIN 17
-#define DCERPC_WKS_NETRRENAMEMACHINEINDOMAIN 18
-#define DCERPC_WKS_NETRVALIDATENAME 19
-#define DCERPC_WKS_NETRGETJOININFORMATION 20
-#define DCERPC_WKS_NETRGETJOINABLEOUS 21
-#define DCERPC_WKS_NETRJOINDOMAIN2 22
-#define DCERPC_WKS_NETRUNJOINDOMAIN2 23
-#define DCERPC_WKS_NETRRENAMEMACHINEINDOMAIN2 24
-#define DCERPC_WKS_NETRVALIDATENAME2 25
-#define DCERPC_WKS_NETRGETJOINABLEOUS2 26
-#define DCERPC_WKS_NETRADDALTERNATECOMPUTERNAME 27
-#define DCERPC_WKS_NETRREMOVEALTERNATECOMPUTERNAME 28
-#define DCERPC_WKS_NETRSETPRIMARYCOMPUTERNAME 29
-#define DCERPC_WKS_NETRENUMERATECOMPUTERNAMES 30
diff --git a/source4/librpc/rpc/dcerpc.c b/source4/librpc/rpc/dcerpc.c
index aa8b8520f3..aeeee092ce 100644
--- a/source4/librpc/rpc/dcerpc.c
+++ b/source4/librpc/rpc/dcerpc.c
@@ -560,7 +560,9 @@ NTSTATUS dcerpc_bind(struct dcerpc_pipe *p,
return status;
}
- if (pkt.hdr.ptype != DCERPC_PKT_BIND_ACK) {
+ if (pkt.hdr.ptype != DCERPC_PKT_BIND_ACK ||
+ pkt.out.bind_ack.num_results == 0 ||
+ pkt.out.bind_ack.ctx_list[0].result != 0) {
status = NT_STATUS_UNSUCCESSFUL;
}
@@ -572,49 +574,30 @@ NTSTATUS dcerpc_bind(struct dcerpc_pipe *p,
return status;
}
-static const struct {
- const char *name;
- struct dcerpc_syntax_id syntax;
- const struct dcerpc_syntax_id transfer_syntax;
-} known_pipes[] = {
- { "lsarpc" , { "12345778-1234-abcd-ef00-0123456789ab", 0 }, DCERPC_TRANSFER_SYNTAX_V2 },
- { "samr" , { "12345778-1234-abcd-ef00-0123456789ac", 1 }, DCERPC_TRANSFER_SYNTAX_V2 },
- { "netlogon", { "12345778-1234-abcd-ef00-01234567cffb", 1 }, DCERPC_TRANSFER_SYNTAX_V2 },
- { "srvsvc" , { "4b324fc8-1670-01d3-1278-5a47bf6ee188", 3 }, DCERPC_TRANSFER_SYNTAX_V2 },
- { "wkssvc" , { "6bffd098-a112-3610-9833-46c3f87e345a", 1 }, DCERPC_TRANSFER_SYNTAX_V2 },
- { "winreg" , { "338cd001-2244-31f1-aaaa-900038001003", 1 }, DCERPC_TRANSFER_SYNTAX_V2 },
- { "spoolss" , { "12345678-1234-abcd-ef00-0123456789ab", 1 }, DCERPC_TRANSFER_SYNTAX_V2 },
- { "netdfs" , { "4fc742e0-4a10-11cf-8273-00aa004ae673", 3 }, DCERPC_TRANSFER_SYNTAX_V2 },
- { "rpcecho" , { "60a15ec5-4de8-11d7-a637-005056a20182", 1 }, DCERPC_TRANSFER_SYNTAX_V2 },
- { NULL , }
-};
-
-
-/* Perform a bind using the given well-known pipe name */
-NTSTATUS dcerpc_bind_byname(struct dcerpc_pipe *p, const char *pipe_name)
+/* Perform a bind using the given UUID and version */
+NTSTATUS dcerpc_bind_byuuid(struct dcerpc_pipe *p,
+ const char *uuid, unsigned version)
{
- int i;
+ struct dcerpc_syntax_id syntax;
+ struct dcerpc_syntax_id transfer_syntax;
- for (i=0; known_pipes[i].name; i++) {
- if (strcasecmp(known_pipes[i].name, pipe_name) == 0)
- break;
- }
-
- if (known_pipes[i].name == NULL) {
- return NT_STATUS_OBJECT_NAME_NOT_FOUND;
- }
+ syntax.uuid_str = uuid;
+ syntax.if_version = version;
- return dcerpc_bind(p, &known_pipes[i].syntax, &known_pipes[i].transfer_syntax);
+ transfer_syntax.uuid_str = "8a885d04-1ceb-11c9-9fe8-08002b104860";
+ transfer_syntax.if_version = 2;
+
+ return dcerpc_bind(p, &syntax, &transfer_syntax);
}
/*
perform a full request/response pair on a dcerpc pipe
*/
NTSTATUS dcerpc_request(struct dcerpc_pipe *p,
- uint16 opnum,
- TALLOC_CTX *mem_ctx,
- DATA_BLOB *stub_data_in,
- DATA_BLOB *stub_data_out)
+ uint16 opnum,
+ TALLOC_CTX *mem_ctx,
+ DATA_BLOB *stub_data_in,
+ DATA_BLOB *stub_data_out)
{
struct dcerpc_packet pkt;
diff --git a/source4/librpc/rpc/dcerpc.h b/source4/librpc/rpc/dcerpc.h
index d67969e76c..81cefa1678 100644
--- a/source4/librpc/rpc/dcerpc.h
+++ b/source4/librpc/rpc/dcerpc.h
@@ -130,6 +130,3 @@ struct dcerpc_packet {
} out;
};
-/* this seems to be the only transfer syntax used */
-#define DCERPC_TRANSFER_SYNTAX_V2 {"8a885d04-1ceb-11c9-9fe8-08002b104860", 2}
-
diff --git a/source4/librpc/rpc/dcerpc_smb.c b/source4/librpc/rpc/dcerpc_smb.c
index 0541200015..a5570a4ea9 100644
--- a/source4/librpc/rpc/dcerpc_smb.c
+++ b/source4/librpc/rpc/dcerpc_smb.c
@@ -26,7 +26,10 @@
/*
open a rpc connection to a named pipe
*/
-NTSTATUS dcerpc_pipe_open_smb(struct dcerpc_pipe *p, const char *pipe_name)
+NTSTATUS dcerpc_pipe_open_smb(struct dcerpc_pipe *p,
+ const char *pipe_name,
+ const char *pipe_uuid,
+ uint32 pipe_version)
{
NTSTATUS status;
char *name = NULL;
@@ -73,7 +76,7 @@ NTSTATUS dcerpc_pipe_open_smb(struct dcerpc_pipe *p, const char *pipe_name)
p->fnum = io.ntcreatex.out.fnum;
/* bind to the pipe, using the pipe_name as the key */
- status = dcerpc_bind_byname(p, pipe_name);
+ status = dcerpc_bind_byuuid(p, pipe_uuid, pipe_version);
if (!NT_STATUS_IS_OK(status)) {
union smb_close c;