librpc/rpc: add dcerpc_transport_by_name()
authorStefan Metzmacher <metze@samba.org>
Thu, 23 Jan 2014 11:03:46 +0000 (12:03 +0100)
committerGünther Deschner <gd@samba.org>
Tue, 11 Feb 2014 15:20:31 +0000 (16:20 +0100)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
librpc/rpc/binding.c
librpc/rpc/rpc_common.h

index cd896b0d71aa1b666e8cbd4355a551aea7067a57..53309163a40b1352ec8d404d10f56e26d81cfbfe 100644 (file)
@@ -7,6 +7,7 @@
    Copyright (C) Jelmer Vernooij 2004
    Copyright (C) Andrew Bartlett <abartlet@samba.org> 2005
    Copyright (C) Rafal Szczesniak 2006
+   Copyright (C) Stefan Metzmacher 2014
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -675,6 +676,23 @@ _PUBLIC_ const char *derpc_transport_string_by_transport(enum dcerpc_transport_t
        return NULL;
 }
 
+_PUBLIC_ enum dcerpc_transport_t dcerpc_transport_by_name(const char *name)
+{
+       size_t i;
+
+       if (name == NULL) {
+               return NCA_UNKNOWN;
+       }
+
+       for (i=0; i<ARRAY_SIZE(transports);i++) {
+               if (strcasecmp(name, transports[i].name) == 0) {
+                       return transports[i].transport;
+               }
+       }
+
+       return NCA_UNKNOWN;
+}
+
 _PUBLIC_ NTSTATUS dcerpc_binding_from_tower(TALLOC_CTX *mem_ctx,
                                            struct epm_tower *tower,
                                            struct dcerpc_binding **b_out)
index dd47323dd31d008a3d76526e9291c603c24f21bc..6d23cebc2c05c131bfd0be4b96acabd602d00701 100644 (file)
@@ -138,6 +138,7 @@ NTSTATUS dcerpc_parse_binding(TALLOC_CTX *mem_ctx, const char *s, struct dcerpc_
 char *dcerpc_binding_string(TALLOC_CTX *mem_ctx, const struct dcerpc_binding *b);
 NTSTATUS dcerpc_floor_get_lhs_data(const struct epm_floor *epm_floor, struct ndr_syntax_id *syntax);
 const char *derpc_transport_string_by_transport(enum dcerpc_transport_t t);
+enum dcerpc_transport_t dcerpc_transport_by_name(const char *name);
 enum dcerpc_transport_t dcerpc_transport_by_tower(const struct epm_tower *tower);
 
 /* The following definitions come from ../librpc/rpc/dcerpc_util.c  */