self->ready.data = data;
}
+// Called when the client has been initialized for the first time
+static int pakfire_client_ready(struct pakfire_client* self) {
+ int r;
+
+ // Call the callback only once
+ if (self->ready.callback) {
+ r = self->ready.callback(self, self->ready.data);
+ if (r < 0)
+ return r;
+
+ // Reset the callback
+ pakfire_client_set_ready_callback(self, NULL, NULL);
+ }
+
+ return 0;
+}
+
int pakfire_client_run(struct pakfire_client* self) {
return pakfire_httpclient_run(self->httpclient, NULL);
}
if (r < 0)
return r;
- // Call the authentication callback
- if (self->auth.callback) {
- r = self->auth.callback(self,
- PAKFIRE_CLIENT_AUTH_SUCCESSFUL, self->auth.data);
- if (r < 0)
- return r;
- }
-
- return 0;
-}
-
-/*
- Called if the authentication failed
-*/
-static int pakfire_client_auth_failed(struct pakfire_client* self) {
- int r;
-
- // Call the authentication callback
- if (self->auth.callback) {
- r = self->auth.callback(self,
- PAKFIRE_CLIENT_AUTH_SUCCESSFUL, self->auth.data);
- if (r < 0)
- return r;
- }
-
- return 0;
+ // We are now ready
+ return pakfire_client_ready(self);
}
static int pakfire_client_auth_response(struct pakfire_xfer* xfer,
return pakfire_client_auth_successful(client, response);
default:
- return pakfire_client_auth_failed(client);
+ ERROR(client->ctx, "Authentication failed\n");
}
+
+ return 0;
}
int pakfire_client_auth_user(struct pakfire_client* self,