]> git.ipfire.org Git - people/ms/pakfire.git/commitdiff
JWT: Make the functions context-free
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 21 Jun 2025 16:21:51 +0000 (16:21 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 21 Jun 2025 16:21:51 +0000 (16:21 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/buildservice.c
src/pakfire/jwt.c
src/pakfire/jwt.h

index 2867e56d89fa9dd19c981568c586d7aa40b68b6a..9ce030817688d1815cf4ab1a5ca227d72f6d41a9 100644 (file)
@@ -107,9 +107,11 @@ static int pakfire_buildservice_set_access_token(struct pakfire_buildservice* se
                return r;
 
        // Fetch the expiry time
-       self->access_token_expires_at = pakfire_jwt_expires_at(self->ctx, self->access_token);
-       if (self->access_token_expires_at < 0)
+       self->access_token_expires_at = pakfire_jwt_expires_at(self->access_token);
+       if (self->access_token_expires_at < 0) {
+               ERROR(self->ctx, "Failed to fetch the JWT expiry time: %s\n", strerror(-r));
                return self->access_token_expires_at;
+       }
 
        // Format the expiry time
        r = pakfire_strftime(expires_at, "%Y-%m-%dT%H:%M:%SZ", self->access_token_expires_at);
@@ -133,9 +135,11 @@ static int pakfire_buildservice_set_refresh_token(struct pakfire_buildservice* s
                return r;
 
        // Fetch the expiry time
-       self->refresh_token_expires_at = pakfire_jwt_expires_at(self->ctx, self->refresh_token);
-       if (self->refresh_token_expires_at < 0)
+       self->refresh_token_expires_at = pakfire_jwt_expires_at(self->refresh_token);
+       if (self->refresh_token_expires_at < 0) {
+               ERROR(self->ctx, "Failed to fetch the JWT expiry time: %s\n", strerror(-r));
                return self->refresh_token_expires_at;
+       }
 
        // Format the expiry time
        r = pakfire_strftime(expires_at, "%Y-%m-%dT%H:%M:%SZ", self->refresh_token_expires_at);
index 0682650d7c819a727f4f89832cc932b439613593..9a694fac6d0cb56b04c7ba4c3529a86e7ab33680 100644 (file)
@@ -23,7 +23,6 @@
 #include <json.h>
 
 #include <pakfire/base64.h>
-#include <pakfire/ctx.h>
 #include <pakfire/json.h>
 #include <pakfire/jwt.h>
 
@@ -88,40 +87,31 @@ ERROR:
        return r;
 }
 
-int pakfire_jwt_payload(struct pakfire_ctx* ctx, const char* token, struct json_object** payload) {
-       char* error = NULL;
+int pakfire_jwt_payload(const char* token, struct json_object** payload) {
        char* p = NULL;
        size_t l = 0;
        int r;
 
        // Decode the payload
        r = pakfire_jwt_decode_payload(&p, &l, token);
-       if (r < 0) {
-               ERROR(ctx, "Failed to decode the JWT payload: %s\n", strerror(-r));
-               goto ERROR;
-       }
+       if (r < 0)
+               return r;
 
        // Parse the JSON
-       r = pakfire_json_parse(payload, &error, p, l);
-       if (r < 0) {
-               ERROR(ctx, "Failed to parse JSON payload: %s\n", error);
-               goto ERROR;
-       }
-
-ERROR:
-       if (error)
-               free(error);
+       r = pakfire_json_parse(payload, NULL, p, l);
+       if (r < 0)
+               return r;
 
        return 0;
 }
 
-time_t pakfire_jwt_expires_at(struct pakfire_ctx* ctx, const char* token) {
+time_t pakfire_jwt_expires_at(const char* token) {
        struct json_object* payload = NULL;
        time_t expires_at = -1;
        int r;
 
        // Parse the payload
-       r = pakfire_jwt_payload(ctx, token, &payload);
+       r = pakfire_jwt_payload(token, &payload);
        if (r < 0)
                goto ERROR;
 
index 1d4f6f2791d4b01722ab07618360a748f9405a79..72c70a1e01de0a1f6d453d06451972f860f0d0d0 100644 (file)
 
 #include <json.h>
 
-#include <pakfire/ctx.h>
+int pakfire_jwt_payload(const char* token, struct json_object** payload);
 
-int pakfire_jwt_payload(struct pakfire_ctx* ctx,
-       const char* token, struct json_object** payload);
-
-time_t pakfire_jwt_expires_at(struct pakfire_ctx* ctx, const char* token);
+time_t pakfire_jwt_expires_at(const char* token);
 
 #endif /* PAKFIRE_JWT_H */