summaryrefslogtreecommitdiff
path: root/source3/lib
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2006-02-22 10:28:02 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:10:19 -0500
commitcab298856ab1179cdaec2ef89121f7c66c6b6d76 (patch)
tree07a123f24e5644341dbf115712995ef0e4352f71 /source3/lib
parent0d7f6d650dd3d2c77711d00ffb41e829bb49905f (diff)
downloadsamba-cab298856ab1179cdaec2ef89121f7c66c6b6d76.tar.gz
samba-cab298856ab1179cdaec2ef89121f7c66c6b6d76.tar.bz2
samba-cab298856ab1179cdaec2ef89121f7c66c6b6d76.zip
r13622: Allow to rename machine accounts in a Samba Domain. This still uses the
"rename user script" to do the rename of the posix machine account (this might be changed later). Fixes #2331. Guenther (This used to be commit b2eac2e6eb6ddd1bcb4ed5172e7cd64144c18d16)
Diffstat (limited to 'source3/lib')
-rw-r--r--source3/lib/util_str.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/source3/lib/util_str.c b/source3/lib/util_str.c
index e4aa5dbd51..e799556cd1 100644
--- a/source3/lib/util_str.c
+++ b/source3/lib/util_str.c
@@ -923,7 +923,7 @@ BOOL string_set(char **dest,const char *src)
**/
void string_sub2(char *s,const char *pattern, const char *insert, size_t len,
- BOOL remove_unsafe_characters, BOOL replace_once)
+ BOOL remove_unsafe_characters, BOOL replace_once, BOOL allow_trailing_dollar)
{
char *p;
ssize_t ls,lp,li, i;
@@ -955,6 +955,11 @@ void string_sub2(char *s,const char *pattern, const char *insert, size_t len,
case '\'':
case ';':
case '$':
+ /* allow a trailing $ (as in machine accounts) */
+ if (allow_trailing_dollar && (i == li - 1 )) {
+ p[i] = insert[i];
+ break;
+ }
case '%':
case '\r':
case '\n':
@@ -978,12 +983,12 @@ void string_sub2(char *s,const char *pattern, const char *insert, size_t len,
void string_sub_once(char *s, const char *pattern, const char *insert, size_t len)
{
- string_sub2( s, pattern, insert, len, True, True );
+ string_sub2( s, pattern, insert, len, True, True, False );
}
void string_sub(char *s,const char *pattern, const char *insert, size_t len)
{
- string_sub2( s, pattern, insert, len, True, False );
+ string_sub2( s, pattern, insert, len, True, False, False );
}
void fstring_sub(char *s,const char *pattern,const char *insert)