summaryrefslogtreecommitdiff
path: root/source4/librpc
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-10-11 20:12:51 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:59:48 -0500
commite2d27b9d238bd2cbf104237934db11e980977a0e (patch)
tree74887afea0e056c11fd7d6c14d2c978e631b0488 /source4/librpc
parent8e1ffff226e3016a38301a773ed8aa55bad5b710 (diff)
downloadsamba-e2d27b9d238bd2cbf104237934db11e980977a0e.tar.gz
samba-e2d27b9d238bd2cbf104237934db11e980977a0e.tar.bz2
samba-e2d27b9d238bd2cbf104237934db11e980977a0e.zip
r2921: Add a few more protocols and fix the numbers associated with some of
the current ones. It took me three hours to realise that the DCOM standard contains false protocol numbers (apparently someone converted the protocol numbers to hex twice, i.e. 13 -> 0c and 14 to 0d). There are no longer duplicates in the list with protocol numbers now. (This used to be commit f355cd426462a72575ef3c3b769f676334976986)
Diffstat (limited to 'source4/librpc')
-rw-r--r--source4/librpc/idl/dcerpc.idl1
-rw-r--r--source4/librpc/idl/epmapper.idl43
-rw-r--r--source4/librpc/rpc/dcerpc_util.c6
3 files changed, 30 insertions, 20 deletions
diff --git a/source4/librpc/idl/dcerpc.idl b/source4/librpc/idl/dcerpc.idl
index 191e10a17a..81571541ea 100644
--- a/source4/librpc/idl/dcerpc.idl
+++ b/source4/librpc/idl/dcerpc.idl
@@ -110,6 +110,7 @@ interface dcerpc
*/
const uint8 DCERPC_AUTH_TYPE_KRB5_16 = 16;
const uint8 DCERPC_AUTH_TYPE_SCHANNEL = 68;
+ const uint8 DCERPC_AUTH_TYPE_MSMQ = 100;
const uint8 DCERPC_AUTH_LEVEL_NONE = 1;
const uint8 DCERPC_AUTH_LEVEL_CONNECT = 2;
diff --git a/source4/librpc/idl/epmapper.idl b/source4/librpc/idl/epmapper.idl
index 6a58dcfd7a..80c2fe5ee0 100644
--- a/source4/librpc/idl/epmapper.idl
+++ b/source4/librpc/idl/epmapper.idl
@@ -42,26 +42,35 @@ interface epmapper
} epm_prot_uuid;
typedef enum {
- EPM_PROTOCOL_NCACN_DNET_NSP = 0x04,
- EPM_PROTOCOL_NCACN_OSI_TP4 = 0x05,
- EPM_PROTOCOL_NCACN_OSI_CLNS = 0x06,
- EPM_PROTOCOL_NCACN_TCP = 0x07,
- EPM_PROTOCOL_NCADG_UDP = 0x08,
- EPM_PROTOCOL_NCACN_IP = 0x09,
- EPM_PROTOCOL_NCADG_RPC = 0x0a, /* Connectionless RPC */
- EPM_PROTOCOL_NCACN_RPC_C = 0x0b,
- EPM_PROTOCOL_NCACN_SPX = 0x0c,
- EPM_PROTOCOL_UUID = 0x0d,
- EPM_PROTOCOL_NCADG_IPX = 0x0e,
- EPM_PROTOCOL_NCACN_SMB = 0x0f,
- EPM_PROTOCOL_NCACN_PIPE = 0x10,
- EPM_PROTOCOL_NCACN_NETBIOS = 0x11,
- EPM_PROTOCOL_NCACN_NB_NB = 0x12, /* NetBIOS over NetBEUI */
- EPM_PROTOCOL_NCACN_HTTP = 0x1f
+
+ /* Level 4 and higher */
+ EPM_PROTOCOL_DNET_NSP = 0x04,
+ EPM_PROTOCOL_OSI_TP4 = 0x05,
+ EPM_PROTOCOL_OSI_CLNS = 0x06,
+ EPM_PROTOCOL_TCP = 0x07,
+ EPM_PROTOCOL_UDP = 0x08,
+ EPM_PROTOCOL_IP = 0x09,
+
+ /* These 4 are protocol identifiers, always at level 3 or lower */
+ EPM_PROTOCOL_NCADG = 0x0a, /* Connectionless RPC */
+ EPM_PROTOCOL_NCACN = 0x0b,
+ EPM_PROTOCOL_NCALRPC = 0x0c, /* Local RPC */
+ EPM_PROTOCOL_UUID = 0x0d,
+
+ EPM_PROTOCOL_IPX = 0x0e,
+ EPM_PROTOCOL_SMB = 0x0f,
+ EPM_PROTOCOL_PIPE = 0x10,
+ EPM_PROTOCOL_NETBIOS = 0x11,
+ EPM_PROTOCOL_NB_NB = 0x12, /* NetBIOS over NetBEUI */
+ EPM_PROTOCOL_SPX = 0x13,
+ EPM_PROTOCOL_NB_IPX = 0x14, /* NetBIOS over IPX */
+ EPM_PROTOCOL_HTTP = 0x1f,
+ EPM_PROTOCOL_UNIX_DS = 0x20, /* Unix domain socket */
+ EPM_PROTOCOL_NULL = 0x21
} epm_protocols;
typedef [nodiscriminant] union {
- [case(13)] epm_prot_uuid uuid;
+ [case(EPM_PROTOCOL_UUID)] epm_prot_uuid uuid;
[default] [flag(NDR_REMAINING)] DATA_BLOB lhs_data;
} epm_protocol_info;
diff --git a/source4/librpc/rpc/dcerpc_util.c b/source4/librpc/rpc/dcerpc_util.c
index f2ba573369..d3c461a2f4 100644
--- a/source4/librpc/rpc/dcerpc_util.c
+++ b/source4/librpc/rpc/dcerpc_util.c
@@ -105,17 +105,17 @@ NTSTATUS dcerpc_epm_map_tcp_port(const char *server,
twr.towers.floors[1].rhs.rhs_data = data_blob_talloc_zero(p, 2);
/* on an RPC connection ... */
- twr.towers.floors[2].lhs.protocol = EPM_PROTOCOL_NCACN_RPC_C;
+ twr.towers.floors[2].lhs.protocol = EPM_PROTOCOL_NCACN;
twr.towers.floors[2].lhs.info.lhs_data = data_blob(NULL, 0);
twr.towers.floors[2].rhs.rhs_data = data_blob_talloc_zero(p, 2);
/* on a TCP port ... */
- twr.towers.floors[3].lhs.protocol = EPM_PROTOCOL_NCACN_TCP;
+ twr.towers.floors[3].lhs.protocol = EPM_PROTOCOL_TCP;
twr.towers.floors[3].lhs.info.lhs_data = data_blob(NULL, 0);
twr.towers.floors[3].rhs.rhs_data = data_blob_talloc_zero(p, 2);
/* on an IP link ... */
- twr.towers.floors[4].lhs.protocol = EPM_PROTOCOL_NCACN_IP;
+ twr.towers.floors[4].lhs.protocol = EPM_PROTOCOL_IP;
twr.towers.floors[4].lhs.info.lhs_data = data_blob(NULL, 0);
twr.towers.floors[4].rhs.rhs_data = data_blob_talloc_zero(p, 4);