]> git.ipfire.org Git - people/stevee/pakfire.git/commitdiff
jail: Set default logging callback
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 2 Aug 2022 17:32:44 +0000 (17:32 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 2 Aug 2022 17:32:44 +0000 (17:32 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/jail.c

index 78df9d63972cffa2671947a7b87c4037db67ac43..4058997a6c6a04767a6816463921fd51d4bbf51e 100644 (file)
@@ -113,6 +113,21 @@ static void pakfire_jail_free(struct pakfire_jail* jail) {
        free(jail);
 }
 
+static int pakfire_jail_default_log_callback(struct pakfire* pakfire, void* data,
+               int priority, const char* line, size_t length) {
+       switch (priority) {
+               case LOG_INFO:
+                       INFO(pakfire, "%s", line);
+                       break;
+
+               case LOG_ERR:
+                       ERROR(pakfire, "%s", line);
+                       break;
+       }
+
+       return 0;
+}
+
 static int pakfire_jail_setup_interactive_env(struct pakfire_jail* jail) {
        // Set PS1
        int r = pakfire_jail_set_env(jail, "PS1", "pakfire-jail \\w> ");
@@ -157,6 +172,11 @@ int pakfire_jail_create(struct pakfire_jail** jail, struct pakfire* pakfire, int
 
        DEBUG(j->pakfire, "Allocated new jail at %p\n", j);
 
+       // Set default log callback
+       r = pakfire_jail_set_log_callback(j, pakfire_jail_default_log_callback, NULL);
+       if (r)
+               goto ERROR;
+
        // Set default environment
        for (const struct environ* e = ENV; e->key; e++) {
                r = pakfire_jail_set_env(j, e->key, e->val);