diff options
author | Andrew Tridgell <tridge@samba.org> | 2001-12-10 00:39:01 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2001-12-10 00:39:01 +0000 |
commit | e051c2c430f706835f250b10cc63e5621054b5ec (patch) | |
tree | e35e8844027bdacd71b926cf448e25ea5d21e28c /source3/lib | |
parent | 4ad81e7714bac620ae8c5a3a341548523c7ceada (diff) | |
download | samba-e051c2c430f706835f250b10cc63e5621054b5ec.tar.gz samba-e051c2c430f706835f250b10cc63e5621054b5ec.tar.bz2 samba-e051c2c430f706835f250b10cc63e5621054b5ec.zip |
make sid_binstring available without HAVE_ADS
(This used to be commit 4a6d29768665f71b72cf48ee34ee9a9c451232f6)
Diffstat (limited to 'source3/lib')
-rw-r--r-- | source3/lib/util_sid.c | 17 | ||||
-rw-r--r-- | source3/lib/util_str.c | 23 |
2 files changed, 40 insertions, 0 deletions
diff --git a/source3/lib/util_sid.c b/source3/lib/util_sid.c index 923037f479..72365f5e46 100644 --- a/source3/lib/util_sid.c +++ b/source3/lib/util_sid.c @@ -663,3 +663,20 @@ BOOL non_mappable_sid(DOM_SID *sid) return False; } + +/* + return the binary string representation of a DOM_SID + caller must free +*/ +char *sid_binstring(DOM_SID *sid) +{ + char *buf, *s; + int len = sid_size(sid); + buf = malloc(len); + if (!buf) return NULL; + sid_linearize(buf, len, sid); + s = binary_string(buf, len); + free(buf); + return s; +} + diff --git a/source3/lib/util_str.c b/source3/lib/util_str.c index d7e6fa0781..2205f5cf0d 100644 --- a/source3/lib/util_str.c +++ b/source3/lib/util_str.c @@ -914,3 +914,26 @@ void strupper_m(char *s) * as source string even in multibyte encoding. (VIV) */ unix_strupper(s,strlen(s)+1,s,strlen(s)+1); } + +/* + return a RFC2254 binary string representation of a buffer + used in LDAP filters + caller must free +*/ +char *binary_string(char *buf, int len) +{ + char *s; + int i, j; + const char *hex = "0123456789ABCDEF"; + s = malloc(len * 3 + 1); + if (!s) return NULL; + for (j=i=0;i<len;i++) { + s[j] = '\\'; + s[j+1] = hex[((unsigned char)buf[i]) >> 4]; + s[j+2] = hex[((unsigned char)buf[i]) & 0xF]; + j += 3; + } + s[j] = 0; + return s; +} + |