]> git.ipfire.org Git - pakfire.git/commitdiff
packager: Drop helper function to determine the hostname
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 5 Oct 2023 13:17:27 +0000 (13:17 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 5 Oct 2023 13:17:27 +0000 (13:17 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/include/pakfire/util.h
src/libpakfire/packager.c
src/libpakfire/util.c

index 3c5ce540874f3cc7d4b8d742d6e870c71aad0db1..95b2383c8b4fbb197fe03ab0f52840fbe33307f3 100644 (file)
@@ -56,8 +56,6 @@ int __pakfire_dirname(char* dirname, const size_t length, const char* path);
 
 char* pakfire_remove_trailing_newline(char* str);
 
-const char* pakfire_hostname(void);
-
 int pakfire_read_file_into_buffer(FILE* f, char** buffer, size_t* len);
 
 #define pakfire_hexlify(digest) __pakfire_hexlify(digest, sizeof(digest))
index b3078d1c2de6216cbf178d13e388c98013186f13..3d37b18f2361ded98d2591bf46a6629cd5ae2b88 100644 (file)
@@ -85,12 +85,15 @@ static void pakfire_packager_free(struct pakfire_packager* packager) {
 
 int pakfire_packager_create(struct pakfire_packager** packager,
                struct pakfire* pakfire, struct pakfire_package* pkg) {
-       struct pakfire_packager* p = calloc(1, sizeof(*p));
-       if (!p)
-               return ENOMEM;
-
+       struct pakfire_packager* p = NULL;
+       char hostname[HOST_NAME_MAX];
        int r = 1;
 
+       // Allocate the packager object
+       p = calloc(1, sizeof(*p));
+       if (!p)
+               return -errno;
+
        // Save creation time
        p->time_created = time(NULL);
 
@@ -115,8 +118,19 @@ int pakfire_packager_create(struct pakfire_packager** packager,
 
        pakfire_package_set_string(pkg, PAKFIRE_PKG_DISTRO, tag);
 
+       // Fetch the hostname
+       r = gethostname(hostname, sizeof(hostname));
+       if (r) {
+               ERROR(p->pakfire, "Could not determine the hostname: %m\n");
+               goto ERROR;
+       }
+
        // Set build host
-       pakfire_package_set_string(pkg, PAKFIRE_PKG_BUILD_HOST, pakfire_hostname());
+       r = pakfire_package_set_string(pkg, PAKFIRE_PKG_BUILD_HOST, hostname);
+       if (r) {
+               ERROR_ERRNO(p->pakfire, r, "Could not set the hostname: %m\n");
+               goto ERROR;
+       }
 
        // Set build time
        pakfire_package_set_num(pkg, PAKFIRE_PKG_BUILD_TIME, p->time_created);
@@ -169,12 +183,12 @@ int pakfire_packager_create(struct pakfire_packager** packager,
                        goto ERROR;
        }
 
-       *packager = p;
-
-       return 0;
+       // Return a reference
+       *packager = pakfire_packager_ref(p);
 
 ERROR:
-       pakfire_packager_free(p);
+       if (p)
+               pakfire_packager_unref(p);
 
        return r;
 }
index bcb148870c14f944961135b502866a1a40a01ae8..c7b84dd8b4518cab747e7dcee58c849e55fc3c07 100644 (file)
@@ -353,16 +353,6 @@ char* pakfire_remove_trailing_newline(char* str) {
        return str;
 }
 
-const char* pakfire_hostname(void) {
-       static __thread char hostname[256];
-
-       int r = gethostname(hostname, sizeof(hostname));
-       if (r)
-               return NULL;
-
-       return hostname;
-}
-
 int pakfire_read_file_into_buffer(FILE* f, char** buffer, size_t* len) {
        if (!f)
                return -EBADF;