diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2004-10-11 20:12:51 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:59:48 -0500 |
commit | e2d27b9d238bd2cbf104237934db11e980977a0e (patch) | |
tree | 74887afea0e056c11fd7d6c14d2c978e631b0488 /source4/librpc | |
parent | 8e1ffff226e3016a38301a773ed8aa55bad5b710 (diff) | |
download | samba-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.idl | 1 | ||||
-rw-r--r-- | source4/librpc/idl/epmapper.idl | 43 | ||||
-rw-r--r-- | source4/librpc/rpc/dcerpc_util.c | 6 |
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); |