mirror of
https://github.com/sheumann/hush.git
synced 2024-12-21 23:29:34 +00:00
start_stop_daemon: optimization - do not pass paramenter, use
existing globals instead function old new delta start_stop_daemon_main 792 976 +184 check 1618 1620 +2 do_procinit 196 - -196 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 2/0 up/down: 186/-196) Total: -10 bytes
This commit is contained in:
parent
daeddee442
commit
85d788e491
@ -65,7 +65,7 @@ static int pid_is_exec(pid_t pid)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int pid_is_user(int pid, int uid)
|
||||
static int pid_is_user(int pid)
|
||||
{
|
||||
struct stat sb;
|
||||
char buf[sizeof("/proc/") + sizeof(int)*3];
|
||||
@ -73,10 +73,10 @@ static int pid_is_user(int pid, int uid)
|
||||
sprintf(buf, "/proc/%u", pid);
|
||||
if (stat(buf, &sb) != 0)
|
||||
return 0;
|
||||
return (sb.st_uid == uid);
|
||||
return (sb.st_uid == user_id);
|
||||
}
|
||||
|
||||
static int pid_is_cmd(pid_t pid, const char *name)
|
||||
static int pid_is_cmd(pid_t pid)
|
||||
{
|
||||
char fname[sizeof("/proc//stat") + sizeof(int)*3];
|
||||
char *buf;
|
||||
@ -90,7 +90,7 @@ static int pid_is_cmd(pid_t pid, const char *name)
|
||||
char *pe = strrchr(++p, ')');
|
||||
if (pe) {
|
||||
*pe = '\0';
|
||||
r = !strcmp(p, name);
|
||||
r = !strcmp(p, cmdname);
|
||||
}
|
||||
}
|
||||
free(buf);
|
||||
@ -105,10 +105,10 @@ static void check(int pid)
|
||||
if (execname && !pid_is_exec(pid)) {
|
||||
return;
|
||||
}
|
||||
if (userspec && !pid_is_user(pid, user_id)) {
|
||||
if (userspec && !pid_is_user(pid)) {
|
||||
return;
|
||||
}
|
||||
if (cmdname && !pid_is_cmd(pid, cmdname)) {
|
||||
if (cmdname && !pid_is_cmd(pid)) {
|
||||
return;
|
||||
}
|
||||
p = xmalloc(sizeof(*p));
|
||||
@ -169,8 +169,6 @@ static int do_stop(void)
|
||||
struct pid_list *p;
|
||||
int killed = 0;
|
||||
|
||||
do_procinit();
|
||||
|
||||
if (cmdname) {
|
||||
if (ENABLE_FEATURE_CLEAN_UP) what = xstrdup(cmdname);
|
||||
if (!ENABLE_FEATURE_CLEAN_UP) what = cmdname;
|
||||
@ -308,13 +306,13 @@ int start_stop_daemon_main(int argc ATTRIBUTE_UNUSED, char **argv)
|
||||
if (execname)
|
||||
xstat(execname, &execstat);
|
||||
|
||||
do_procinit(); /* Both start and stop needs to know current processes */
|
||||
|
||||
if (opt & CTX_STOP) {
|
||||
int i = do_stop();
|
||||
return (opt & OPT_OKNODO) ? 0 : (i <= 0);
|
||||
}
|
||||
|
||||
do_procinit();
|
||||
|
||||
if (found) {
|
||||
if (!quiet)
|
||||
printf("%s already running\n%d\n", execname, found->pid);
|
||||
|
Loading…
Reference in New Issue
Block a user