// systemd
#include <systemd/sd-event.h>
+#include <pakfire/arch.h>
#include <pakfire/client.h>
#include <pakfire/ctx.h>
#include <pakfire/builder.h>
sd_event_source* reconnect_timer;
uint64_t reconnect_holdoff;
+ // Arch
+ const char* arch;
+
// Jobs
pakfire_job* jobs[MAX_JOBS];
unsigned int running_jobs;
// Store a reference to the client
self->client = pakfire_client_ref(client);
+ // Determine the builder's architecture
+ r = pakfire_arch_native(&self->arch);
+ if (r < 0)
+ goto ERROR;
+
// Return the pointer
*builder = self;
return 0;
return NULL;
}
+// Arch
+
+const char* pakfire_builder_get_arch(pakfire_builder* self) {
+ return self->arch;
+}
+
int pakfire_builder_connect(pakfire_builder* self) {
// Bail if we are already connected
if (self->control)
Called after a job has exited
*/
int pakfire_builder_job_finished(pakfire_builder* self, pakfire_job* job) {
- int r;
-
DEBUG(self->ctx, "Removing job %p\n", job);
for (unsigned int i = 0; i < MAX_JOBS; i++) {
pakfire_builder* pakfire_builder_ref(pakfire_builder* self);
pakfire_builder* pakfire_builder_unref(pakfire_builder* self);
+// Arch
+const char* pakfire_builder_get_arch(pakfire_builder* self);
+
// Connect
int pakfire_builder_connect(pakfire_builder* self);
int pakfire_client_builder_connect(pakfire_client* self, pakfire_builder* builder) {
pakfire_xfer* xfer = NULL;
+ const char* arch = NULL;
int r;
// Create a new xfer
if (r < 0)
goto ERROR;
+ // Fetch the builder's architecture
+ arch = pakfire_builder_get_arch(builder);
+
+ // Send the architecture
+ if (arch) {
+ r = pakfire_xfer_add_query(xfer, "arch", "%s", arch);
+ if (r < 0)
+ goto ERROR;
+ }
+
// Enable authentication
r = pakfire_client_xfer_auth(self, xfer);
if (r < 0)