time_t access_token_expires_at;
char refresh_token[1024];
time_t refresh_token_expires_at;
+
+ // Callbacks
+ struct pakfire_client_auth_callback {
+ pakfire_client_auth_callback callback;
+ void* data;
+ } auth_callback;
};
static int pakfire_client_xfer_create(struct pakfire_xfer** xfer,
// Authenticate
+int pakfire_client_set_auth_callback(struct pakfire_client* self,
+ pakfire_client_auth_callback callback, void* data) {
+ self->auth_callback.callback = callback;
+ self->auth_callback.data = data;
+
+ return 0;
+}
+
int pakfire_client_auth_user(struct pakfire_client* self,
const char* username, const char* password) {
struct json_object* response = NULL;
// Authentication
+typedef enum {
+ PAKFIRE_CLIENT_AUTH_SUCCESSFUL,
+ PAKFIRE_CLIENT_AUTH_ERROR,
+} pakfire_client_auth_status;
+
+typedef int (*pakfire_client_auth_callback)
+ (struct pakfire_client* client, pakfire_client_auth_status status, void* data);
+
+int pakfire_client_set_auth_callback(struct pakfire_client* client,
+ pakfire_client_auth_callback callback, void* data);
+
int pakfire_client_auth_user(struct pakfire_client* client,
const char* username, const char* password);