netapi: add ConvertSidToStringSid() for convenience of the callers.
authorGünther Deschner <gd@samba.org>
Wed, 16 Jul 2008 13:22:04 +0000 (15:22 +0200)
committerGünther Deschner <gd@samba.org>
Thu, 17 Jul 2008 08:33:27 +0000 (10:33 +0200)
Guenther
(This used to be commit b7633998ed76c7bb2faa803841fafe9126a39847)

source3/Makefile.in
source3/lib/netapi/netapi.h
source3/lib/netapi/sid.c [new file with mode: 0644]

index 85837a89434c4e729c2dc9afb7e705606912c9a5..72aa9a5149aed76f73a389521e2013c64bc88f66 100644 (file)
@@ -1829,7 +1829,8 @@ LIBNETAPI_OBJ1 = lib/netapi/netapi.o \
                 lib/netapi/user.o \
                 lib/netapi/group.o \
                 lib/netapi/localgroup.o \
-                lib/netapi/samr.o
+                lib/netapi/samr.o \
+                lib/netapi/sid.o
 
 LIBNETAPI_OBJ  = $(LIBNETAPI_OBJ1) $(LIBNET_OBJ) \
                 $(LIBSMBCONF_OBJ) \
index 323b0c87546248f5c54c4bfb2645100e6f6a437f..e7f3527d1af262f0193b6b28c76d07e726ad680c 100644 (file)
@@ -255,6 +255,21 @@ const char *libnetapi_get_error_string(struct libnetapi_ctx *ctx,
 
 NET_API_STATUS NetApiBufferFree(void *buffer);
 
+/************************************************************//**
+ *
+ * ConvertSidToStringSid
+ *
+ * @brief Convert a domain sid into a string
+ *
+ * @param[in] sid A pointer to a sid structure
+ * @param[in] sid_string A pointer that holds a pointer to a sid string. Caller
+ * needs to free with free(3)
+ * @return bool
+ ***************************************************************/
+
+int  ConvertSidToStringSid(const struct domsid *sid,
+                          char **sid_string);
+
 /************************************************************//**
  *
  * NetJoinDomain
diff --git a/source3/lib/netapi/sid.c b/source3/lib/netapi/sid.c
new file mode 100644 (file)
index 0000000..869bd0f
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ *  Unix SMB/CIFS implementation.
+ *  NetApi Support
+ *  Copyright (C) Guenther Deschner 2008
+ *
+ *  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
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "includes.h"
+
+#include "librpc/gen_ndr/libnetapi.h"
+
+/****************************************************************
+****************************************************************/
+
+bool ConvertSidToStringSid(const struct domsid *sid,
+                          char **sid_string)
+{
+       char *ret;
+
+       if (!sid || !sid_string) {
+               return false;
+       }
+
+       ret = sid_string_talloc(NULL, (const struct dom_sid *)sid);
+       if (!ret) {
+               return false;
+       }
+
+       *sid_string = SMB_STRDUP(ret);
+
+       TALLOC_FREE(ret);
+
+       if (!*sid_string) {
+               return false;
+       }
+
+       return true;
+}