Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c92ba19 authored by Jean-Baptiste Queru's avatar Jean-Baptiste Queru
Browse files

merge from open-source master

parents bdb9831c e86a2c7c
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -131,6 +131,18 @@ static void service_start_if_not_disabled(struct service *svc)
    }
}

int do_chdir(int nargs, char **args)
{
    chdir(args[1]);
    return 0;
}

int do_chroot(int nargs, char **args)
{
    chroot(args[1]);
    return 0;
}

int do_class_start(int nargs, char **args)
{
        /* Starting a class does not start services
@@ -206,7 +218,7 @@ int do_insmod(int nargs, char **args)

int do_import(int nargs, char **args)
{
    return -1;
    return parse_config_file(args[1]);
}

int do_mkdir(int nargs, char **args)
@@ -400,6 +412,8 @@ int do_restart(int nargs, char **args)

int do_trigger(int nargs, char **args)
{
    action_for_each_trigger(args[1], action_add_queue_tail);
    drain_action_queue();
    return 0;
}

+1 −1
Original line number Diff line number Diff line
@@ -307,7 +307,7 @@ static void make_device(const char *path, int block, int major, int minor)
    chown(path, uid, gid);
}

#ifdef LOG_UEVENTS
#if LOG_UEVENTS

static inline suseconds_t get_usecs(void)
{

init/init.c

100644 → 100755
+3 −4
Original line number Diff line number Diff line
@@ -65,8 +65,6 @@ static struct input_keychord *keychords = 0;
static int keychords_count = 0;
static int keychords_length = 0;

static void drain_action_queue(void);

static void notify_service_state(const char *name, const char *state)
{
    char pname[PROP_NAME_MAX];
@@ -391,12 +389,13 @@ static int wait_for_one_process(int block)
        }
    }

    svc->flags |= SVC_RESTARTING;

    /* Execute all onrestart commands for this service. */
    list_for_each(node, &svc->onrestart.commands) {
        cmd = node_to_item(node, struct command, clist);
        cmd->func(cmd->nargs, cmd->args);
    }
    svc->flags |= SVC_RESTARTING;
    notify_service_state(svc->name, "restarting");
    return 0;
}
@@ -667,7 +666,7 @@ static void get_hardware_name(void)
    }
}

static void drain_action_queue(void)
void drain_action_queue(void)
{
    struct listnode *node;
    struct command *cmd;
+1 −0
Original line number Diff line number Diff line
@@ -165,6 +165,7 @@ void service_stop(struct service *svc);
void service_start(struct service *svc, const char *dynamic_args);
void property_changed(const char *name, const char *value);

void drain_action_queue(void);
struct action *action_remove_queue_head(void);
void action_add_queue_tail(struct action *act);
void action_for_each_trigger(const char *trigger,
+4 −0
Original line number Diff line number Diff line

#ifndef KEYWORD
int do_chroot(int nargs, char **args);
int do_chdir(int nargs, char **args);
int do_class_start(int nargs, char **args);
int do_class_stop(int nargs, char **args);
int do_domainname(int nargs, char **args);
@@ -32,6 +34,8 @@ enum {
    K_UNKNOWN,
#endif
    KEYWORD(capability,  OPTION,  0, 0)
    KEYWORD(chdir,       COMMAND, 1, do_chdir)
    KEYWORD(chroot,      COMMAND, 1, do_chroot)
    KEYWORD(class,       OPTION,  0, 0)
    KEYWORD(class_start, COMMAND, 1, do_class_start)
    KEYWORD(class_stop,  COMMAND, 1, do_class_stop)
Loading