1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-25 17:57:42 +03:00

use the auto-generated UUID, version and name rather than listing them

in the dcerpc core code
This commit is contained in:
Andrew Tridgell -
parent 8d9d620e10
commit 16ffeb7c80
19 changed files with 348 additions and 308 deletions

View File

@ -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,

View File

@ -5,7 +5,7 @@
[ uuid(12345778-1234-abcd-ef00-0123456789ac),
version(1.0),
pointer_default(unique)
] interface lsarpc
] interface samr
{
/******************/
/* Function: 0x00 */

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,5 +1,7 @@
/* header auto-generated by pidl */
struct dom_sid {
uint8 sid_rev_num;
uint8 num_auths;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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}

View File

@ -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;

View File

@ -172,7 +172,10 @@ BOOL torture_rpc_dfs(int dummy)
mem_ctx = talloc_init("torture_rpc_dfs");
status = torture_rpc_connection(&p, "netdfs");
status = torture_rpc_connection(&p,
DCERPC_NETDFS_NAME,
DCERPC_NETDFS_UUID,
DCERPC_NETDFS_VERSION);
if (!NT_STATUS_IS_OK(status)) {
return False;
}

View File

@ -193,7 +193,10 @@ BOOL torture_rpc_echo(int dummy)
mem_ctx = talloc_init("torture_rpc_echo");
status = torture_rpc_connection(&p, "rpcecho");
status = torture_rpc_connection(&p,
DCERPC_RPCECHO_NAME,
DCERPC_RPCECHO_UUID,
DCERPC_RPCECHO_VERSION);
if (!NT_STATUS_IS_OK(status)) {
return False;
}

View File

@ -511,7 +511,10 @@ BOOL torture_rpc_lsa(int dummy)
mem_ctx = talloc_init("torture_rpc_lsa");
status = torture_rpc_connection(&p, "lsarpc");
status = torture_rpc_connection(&p,
DCERPC_LSARPC_NAME,
DCERPC_LSARPC_UUID,
DCERPC_LSARPC_VERSION);
if (!NT_STATUS_IS_OK(status)) {
return False;
}

View File

@ -497,7 +497,10 @@ BOOL torture_rpc_samr(int dummy)
mem_ctx = talloc_init("torture_rpc_samr");
status = torture_rpc_connection(&p, "samr");
status = torture_rpc_connection(&p,
DCERPC_SAMR_NAME,
DCERPC_SAMR_UUID,
DCERPC_SAMR_VERSION);
if (!NT_STATUS_IS_OK(status)) {
return False;
}

View File

@ -261,7 +261,10 @@ BOOL torture_rpc_spoolss(int dummy)
mem_ctx = talloc_init("torture_rpc_spoolss");
status = torture_rpc_connection(&p, "spoolss");
status = torture_rpc_connection(&p,
DCERPC_SPOOLSS_NAME,
DCERPC_SPOOLSS_UUID,
DCERPC_SPOOLSS_VERSION);
if (!NT_STATUS_IS_OK(status)) {
return False;
}

View File

@ -90,7 +90,10 @@ BOOL torture_rpc_wkssvc(int dummy)
mem_ctx = talloc_init("torture_rpc_wkssvc");
status = torture_rpc_connection(&p, "wkssvc");
status = torture_rpc_connection(&p,
DCERPC_WKSSVC_NAME,
DCERPC_WKSSVC_UUID,
DCERPC_WKSSVC_VERSION);
if (!NT_STATUS_IS_OK(status)) {
return False;
}

View File

@ -132,7 +132,10 @@ BOOL torture_close_connection(struct cli_state *c)
}
/* open a rpc connection to a named pipe */
NTSTATUS torture_rpc_connection(struct dcerpc_pipe **p, const char *pipe_name)
NTSTATUS torture_rpc_connection(struct dcerpc_pipe **p,
const char *pipe_name,
const char *pipe_uuid,
uint32 pipe_version)
{
struct cli_state *cli;
NTSTATUS status;
@ -145,9 +148,9 @@ NTSTATUS torture_rpc_connection(struct dcerpc_pipe **p, const char *pipe_name)
return NT_STATUS_NO_MEMORY;
}
status = dcerpc_pipe_open_smb(*p, pipe_name);
status = dcerpc_pipe_open_smb(*p, pipe_name, pipe_uuid, pipe_version);
if (!NT_STATUS_IS_OK(status)) {
printf("Open of pipe %s failed with error (%s)\n",
printf("Open of pipe '%s' failed with error (%s)\n",
pipe_name, nt_errstr(status));
return status;
}
@ -2817,7 +2820,7 @@ static BOOL run_rename(int dummy)
static BOOL run_pipe_number(int dummy)
{
struct cli_state *cli1;
const char *pipe_name = "\\SPOOLSS";
const char *pipe_name = "\\WKSSVC";
int fnum;
int num_pipes = 0;