librpc/rpc: add dcerpc_binding_copy_string_option()
authorStefan Metzmacher <metze@samba.org>
Thu, 23 Jan 2014 13:59:48 +0000 (14:59 +0100)
committerGünther Deschner <gd@samba.org>
Thu, 13 Feb 2014 10:54:14 +0000 (11:54 +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 2866dda56645a1457b020ea9e5aea9f58790c8b3..e81cd4d2b145d3c8fbd625028cd0745f01674603 100644 (file)
@@ -457,6 +457,27 @@ _PUBLIC_ const char *dcerpc_binding_get_string_option(const struct dcerpc_bindin
        return NULL;
 }
 
+_PUBLIC_ char *dcerpc_binding_copy_string_option(TALLOC_CTX *mem_ctx,
+                                                const struct dcerpc_binding *b,
+                                                const char *name)
+{
+       const char *c = dcerpc_binding_get_string_option(b, name);
+       char *v;
+
+       if (c == NULL) {
+               errno = ENOENT;
+               return NULL;
+       }
+
+       v = talloc_strdup(mem_ctx, c);
+       if (v == NULL) {
+               errno = ENOMEM;
+               return NULL;
+       }
+
+       return v;
+}
+
 _PUBLIC_ NTSTATUS dcerpc_binding_set_string_option(struct dcerpc_binding *b,
                                                   const char *name,
                                                   const char *value)
index 136f9a90a773fa7e2052b306a2aef9e9737a4b59..98be80eb22637585c8411b349358902ac0cc7b33 100644 (file)
@@ -138,6 +138,9 @@ 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);
 const char *dcerpc_binding_get_string_option(const struct dcerpc_binding *b,
                                             const char *name);
+char *dcerpc_binding_copy_string_option(TALLOC_CTX *mem_ctx,
+                                       const struct dcerpc_binding *b,
+                                       const char *name);
 NTSTATUS dcerpc_binding_set_string_option(struct dcerpc_binding *b,
                                          const char *name,
                                          const char *value);