summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2008-07-16 15:22:04 +0200
committerGünther Deschner <gd@samba.org>2008-07-17 10:33:27 +0200
commita6aeb73e4afcdcfbddbc8f9f2983e252d75975c8 (patch)
tree0b50fafea3a3412bf0261960f108dfe5606cea70
parent6a3b742db7fba057b5dd0534bee6fa1385010311 (diff)
downloadsamba-a6aeb73e4afcdcfbddbc8f9f2983e252d75975c8.tar.gz
samba-a6aeb73e4afcdcfbddbc8f9f2983e252d75975c8.tar.bz2
samba-a6aeb73e4afcdcfbddbc8f9f2983e252d75975c8.zip
netapi: add ConvertSidToStringSid() for convenience of the callers.
Guenther (This used to be commit b7633998ed76c7bb2faa803841fafe9126a39847)
-rw-r--r--source3/Makefile.in3
-rw-r--r--source3/lib/netapi/netapi.h15
-rw-r--r--source3/lib/netapi/sid.c50
3 files changed, 67 insertions, 1 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 85837a8943..72aa9a5149 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -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) \
diff --git a/source3/lib/netapi/netapi.h b/source3/lib/netapi/netapi.h
index 323b0c8754..e7f3527d1a 100644
--- a/source3/lib/netapi/netapi.h
+++ b/source3/lib/netapi/netapi.h
@@ -257,6 +257,21 @@ 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
*
* @brief Join a computer to a domain or workgroup
diff --git a/source3/lib/netapi/sid.c b/source3/lib/netapi/sid.c
new file mode 100644
index 0000000000..869bd0f763
--- /dev/null
+++ b/source3/lib/netapi/sid.c
@@ -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;
+}