Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix attropen() flags for writing an xattr on solaris.
[rsync/rsync.git]
/
util.c
diff --git
a/util.c
b/util.c
index
bad2fae
..
4d58dc4
100644
(file)
--- a/
util.c
+++ b/
util.c
@@
-34,7
+34,7
@@
extern char *module_dir;
extern unsigned int module_dirlen;
extern mode_t orig_umask;
extern char *partial_dir;
extern unsigned int module_dirlen;
extern mode_t orig_umask;
extern char *partial_dir;
-extern
struct filter_list_struc
t daemon_filter_list;
+extern
filter_rule_lis
t daemon_filter_list;
int sanitize_paths = 0;
int sanitize_paths = 0;
@@
-534,24
+534,32
@@
void kill_all(int sig)
}
}
}
}
-/*
* Turn a user name
into a uid */
-int
name_to_uid(const char *name, uid_t *uid_p
)
+/*
Parse a user name or (optionally) a number
into a uid */
+int
user_to_uid(const char *name, uid_t *uid_p, BOOL num_ok
)
{
struct passwd *pass;
if (!name || !*name)
return 0;
{
struct passwd *pass;
if (!name || !*name)
return 0;
+ if (num_ok && name[strspn(name, "0123456789")] == '\0') {
+ *uid_p = atol(name);
+ return 1;
+ }
if (!(pass = getpwnam(name)))
return 0;
*uid_p = pass->pw_uid;
return 1;
}
if (!(pass = getpwnam(name)))
return 0;
*uid_p = pass->pw_uid;
return 1;
}
-/*
* Turn a group name
into a gid */
-int
name_to_gid(const char *name, gid_t *gid_p
)
+/*
Parse a group name or (optionally) a number
into a gid */
+int
group_to_gid(const char *name, gid_t *gid_p, BOOL num_ok
)
{
struct group *grp;
if (!name || !*name)
return 0;
{
struct group *grp;
if (!name || !*name)
return 0;
+ if (num_ok && name[strspn(name, "0123456789")] == '\0') {
+ *gid_p = atol(name);
+ return 1;
+ }
if (!(grp = getgrnam(name)))
return 0;
*gid_p = grp->gr_gid;
if (!(grp = getgrnam(name)))
return 0;
*gid_p = grp->gr_gid;