#include <errno.h>
#include <fcntl.h>
+#include <stdio.h>
#include <stdlib.h>
#include <sys/queue.h>
#include <unistd.h>
return 0;
}
+int pakfire_downloader_transfer_set_output_buffer(struct pakfire_transfer* transfer,
+ char** buffer, size_t* length) {
+ FILE* f = NULL;
+
+ // Open a memory stream
+ f = open_memstream(buffer, length);
+ if (!f) {
+ CTX_ERROR(transfer->ctx, "Could not open memory stream: %s\n", strerror(errno));
+ return -errno;
+ }
+
+ return pakfire_downloader_transfer_set_output(transfer, f);
+}
+
int pakfire_downloader_transfer_set_input(struct pakfire_transfer* transfer, FILE* f) {
struct stat stat;
int r;
int pakfire_downloader_transfer_add_param(struct pakfire_transfer* transfer,
const char* key, const char* format, ...) __attribute__((format(printf, 3, 4)));
int pakfire_downloader_transfer_set_output(struct pakfire_transfer* transfer, FILE* f);
+int pakfire_downloader_transfer_set_output_buffer(struct pakfire_transfer* transfer,
+ char** buffer, size_t* length);
int pakfire_downloader_transfer_set_input(struct pakfire_transfer* transfer, FILE* f);
int pakfire_downloader_transfer_set_target(struct pakfire_transfer* transfer, const char* path);
int pakfire_downloader_transfer_auth(struct pakfire_transfer* transfer);