From a6aeb73e4afcdcfbddbc8f9f2983e252d75975c8 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Wed, 16 Jul 2008 15:22:04 +0200 Subject: netapi: add ConvertSidToStringSid() for convenience of the callers. Guenther (This used to be commit b7633998ed76c7bb2faa803841fafe9126a39847) --- source3/Makefile.in | 3 ++- source3/lib/netapi/netapi.h | 15 ++++++++++++++ source3/lib/netapi/sid.c | 50 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 source3/lib/netapi/sid.c 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 @@ -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 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 . + */ + +#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; +} -- cgit