}
// Create a new Pakfire instance
- int r = pakfire_create(&self->pakfire, path, arch, conf, flags);
+ int r = pakfire_create(&self->pakfire, path, arch, conf, flags, NULL, NULL);
if (r) {
switch (errno) {
// Invalid architecture or path
};
int pakfire_create(Pakfire* pakfire, const char* path, const char* arch,
- const char* conf, int flags);
+ const char* conf, int flags, pakfire_log_function_t log, void* data);
Pakfire pakfire_ref(Pakfire pakfire);
Pakfire pakfire_unref(Pakfire pakfire);
__attribute__((format(printf, 6, 7)));
pakfire_log_function_t pakfire_log_get_function(Pakfire pakfire);
-void pakfire_log_set_function(Pakfire pakfire, pakfire_log_function_t log_function);
+void pakfire_log_set_function(Pakfire pakfire,
+ pakfire_log_function_t log_function, void* data);
int pakfire_log_get_priority(Pakfire pakfire);
void pakfire_log_set_priority(Pakfire pakfire, int priority);
// Logging
pakfire_log_function_t log_function;
+ void* log_data;
int log_priority;
int nrefs;
}
PAKFIRE_EXPORT int pakfire_create(Pakfire* pakfire, const char* path, const char* arch,
- const char* conf, int flags) {
+ const char* conf, int flags, pakfire_log_function_t log, void* data) {
char tempdir[PATH_MAX] = PAKFIRE_PRIVATE_DIR "/tmp/XXXXXX";
int r = 1;
pakfire_string_set(p->arch, arch);
// Setup logging
- p->log_function = pakfire_log_syslog;
+ if (log)
+ pakfire_log_set_function(p, log, data);
+ else
+ pakfire_log_set_function(p, pakfire_log_syslog, NULL);
const char* env = secure_getenv("PAKFIRE_LOG");
if (env)
return pakfire->log_function;
}
-PAKFIRE_EXPORT void pakfire_log_set_function(Pakfire pakfire, pakfire_log_function_t log_function) {
+PAKFIRE_EXPORT void pakfire_log_set_function(Pakfire pakfire,
+ pakfire_log_function_t log_function, void* data) {
pakfire->log_function = log_function;
+ pakfire->log_data = data;
}
PAKFIRE_EXPORT int pakfire_log_get_priority(Pakfire pakfire) {