diff options
-rw-r--r-- | source3/Makefile.in | 3 | ||||
-rw-r--r-- | source3/lib/netapi/netapi.h | 15 | ||||
-rw-r--r-- | source3/lib/netapi/sid.c | 50 |
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; +} |