X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fimport%2Fimport-job.h;h=57090092ce35fb1710ad2ab74ba002697c5456f4;hb=aa9bd4992ff0240f6ceecb70ec364d5d9c7574f4;hp=9ccaaf2c041344203acff67d8378c75fe5562557;hpb=85dbc41dc67ff49fd8a843dbac5b8b5cb0b61155;p=elogind.git diff --git a/src/import/import-job.h b/src/import/import-job.h index 9ccaaf2c0..57090092c 100644 --- a/src/import/import-job.h +++ b/src/import/import-job.h @@ -23,6 +23,7 @@ #include #include +#include #include #include "macro.h" @@ -32,6 +33,7 @@ typedef struct ImportJob ImportJob; typedef void (*ImportJobFinished)(ImportJob *job); typedef int (*ImportJobOpenDisk)(ImportJob *job); +typedef int (*ImportJobHeader)(ImportJob*job, const char *header, size_t sz); typedef enum ImportJobState { IMPORT_JOB_INIT, @@ -49,6 +51,7 @@ typedef enum ImportJobCompression { IMPORT_JOB_UNCOMPRESSED, IMPORT_JOB_XZ, IMPORT_JOB_GZIP, + IMPORT_JOB_BZIP2, _IMPORT_JOB_COMPRESSION_MAX, _IMPORT_JOB_COMPRESSION_INVALID = -1, } ImportJobCompression; @@ -62,6 +65,7 @@ struct ImportJob { void *userdata; ImportJobFinished on_finished; ImportJobOpenDisk on_open_disk; + ImportJobHeader on_header; CurlGlue *glue; CURL *curl; @@ -89,6 +93,7 @@ struct ImportJob { ImportJobCompression compressed; lzma_stream xz; z_stream gzip; + bz_stream bzip2; unsigned progress_percent; usec_t start_usec; @@ -96,10 +101,10 @@ struct ImportJob { bool allow_sparse; - bool calc_hash; - gcry_md_hd_t hash_context; + bool calc_checksum; + gcry_md_hd_t checksum_context; - char *sha256; + char *checksum; }; int import_job_new(ImportJob **job, const char *url, CurlGlue *glue, void *userdata); @@ -108,3 +113,5 @@ ImportJob* import_job_unref(ImportJob *job); int import_job_begin(ImportJob *j); void import_job_curl_on_finished(CurlGlue *g, CURL *curl, CURLcode result); + +DEFINE_TRIVIAL_CLEANUP_FUNC(ImportJob*, import_job_unref);