diff options
Diffstat (limited to 'source4/librpc')
-rw-r--r-- | source4/librpc/idl/misc.idl | 6 | ||||
-rw-r--r-- | source4/librpc/idl/samr.idl | 2 | ||||
-rw-r--r-- | source4/librpc/ndr/ndr_dfs.h | 18 | ||||
-rw-r--r-- | source4/librpc/ndr/ndr_echo.h | 16 | ||||
-rw-r--r-- | source4/librpc/ndr/ndr_lsa.h | 100 | ||||
-rw-r--r-- | source4/librpc/ndr/ndr_misc.h | 2 | ||||
-rw-r--r-- | source4/librpc/ndr/ndr_samr.h | 142 | ||||
-rw-r--r-- | source4/librpc/ndr/ndr_spoolss.h | 198 | ||||
-rw-r--r-- | source4/librpc/ndr/ndr_wkssvc.h | 68 | ||||
-rw-r--r-- | source4/librpc/rpc/dcerpc.c | 53 | ||||
-rw-r--r-- | source4/librpc/rpc/dcerpc.h | 3 | ||||
-rw-r--r-- | source4/librpc/rpc/dcerpc_smb.c | 7 |
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; |