projects
/
project
/
procd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
wait for kmod loader to complete on first boot
[project/procd.git]
/
inittab.c
diff --git
a/inittab.c
b/inittab.c
index
d73e0b8
..
677ec47
100644
(file)
--- a/
inittab.c
+++ b/
inittab.c
@@
-20,6
+20,7
@@
#include <stdlib.h>
#include <unistd.h>
#include <regex.h>
#include <stdlib.h>
#include <unistd.h>
#include <regex.h>
+#include <ctype.h>
#include <libubox/utils.h>
#include <libubox/list.h>
#include <libubox/utils.h>
#include <libubox/list.h>
@@
-72,7
+73,7
@@
static void fork_worker(struct init_action *a)
}
if (a->proc.pid > 0) {
}
if (a->proc.pid > 0) {
- DEBUG(
2
, "Launched new %s action, pid=%d\n",
+ DEBUG(
4
, "Launched new %s action, pid=%d\n",
a->handler->name,
(int) a->proc.pid);
uloop_process_add(&a->proc);
a->handler->name,
(int) a->proc.pid);
uloop_process_add(&a->proc);
@@
-83,7
+84,7
@@
static void child_exit(struct uloop_process *proc, int ret)
{
struct init_action *a = container_of(proc, struct init_action, proc);
{
struct init_action *a = container_of(proc, struct init_action, proc);
- DEBUG(
2
, "pid:%d\n", proc->pid);
+ DEBUG(
4
, "pid:%d\n", proc->pid);
uloop_timeout_set(&a->tout, a->respawn);
}
uloop_timeout_set(&a->tout, a->respawn);
}
@@
-116,7
+117,7
@@
static void askfirst(struct init_action *a)
i = stat(a->id, &s);
chdir("/");
if (i || (console && !strcmp(console, a->id))) {
i = stat(a->id, &s);
chdir("/");
if (i || (console && !strcmp(console, a->id))) {
- DEBUG(
2
, "Skipping %s\n", a->id);
+ DEBUG(
4
, "Skipping %s\n", a->id);
return;
}
return;
}
@@
-156,7
+157,7
@@
static void askconsole(struct init_action *a)
i = stat(tty, &s);
chdir("/");
if (i) {
i = stat(tty, &s);
chdir("/");
if (i) {
- DEBUG(
2
, "skipping %s\n", tty);
+ DEBUG(
4
, "skipping %s\n", tty);
goto err_out;
}
console = strdup(tty);
goto err_out;
}
console = strdup(tty);
@@
-249,7
+250,7
@@
void procd_inittab(void)
return;
}
return;
}
- regcomp(&pat_inittab, "([a-zA-Z0-9]*):([a-zA-Z0-9]*):([a-zA-Z0-9]*):(
[a-zA-Z0-9/[.-.]. ]
*)", REG_EXTENDED);
+ regcomp(&pat_inittab, "([a-zA-Z0-9]*):([a-zA-Z0-9]*):([a-zA-Z0-9]*):(
.
*)", REG_EXTENDED);
line = malloc(LINE_LEN);
a = malloc(sizeof(struct init_action));
memset(a, 0, sizeof(struct init_action));
line = malloc(LINE_LEN);
a = malloc(sizeof(struct init_action));
memset(a, 0, sizeof(struct init_action));
@@
-258,6
+259,11
@@
void procd_inittab(void)
char *tags[TAG_PROCESS + 1];
char *tok;
int i;
char *tags[TAG_PROCESS + 1];
char *tok;
int i;
+ int len = strlen(line);
+
+ while (isspace(line[len - 1]))
+ len--;
+ line[len] = 0;
if (*line == '#')
continue;
if (*line == '#')
continue;
@@
-265,7
+271,7
@@
void procd_inittab(void)
if (regexec(&pat_inittab, line, 5, matches, 0))
continue;
if (regexec(&pat_inittab, line, 5, matches, 0))
continue;
- DEBUG(
2
, "Parsing inittab - %s", line);
+ DEBUG(
4
, "Parsing inittab - %s", line);
for (i = TAG_ID; i <= TAG_PROCESS; i++) {
line[matches[i].rm_eo] = '\0';
for (i = TAG_ID; i <= TAG_PROCESS; i++) {
line[matches[i].rm_eo] = '\0';