void upload_queue_enqueue(enum blobsync sync, unsigned const char key[KDF_HASH_LEN], const struct session *session, const char *page, struct http_param_set *params) { _cleanup_free_ char *sum = xstrdup(page); char *next = NULL; char *escaped = NULL; char *param; char **argv = params->argv; while ((param = *argv++)) { escaped = pinentry_escape(param); xasprintf(&next, "%s\n%s", sum, escaped); free(escaped); free(sum); sum = next; } upload_queue_write_entry(sum, key); if (sync != BLOB_SYNC_NO) upload_queue_ensure_running(key, session); }
void upload_queue_enqueue(enum blobsync sync, unsigned const char key[KDF_HASH_LEN], const struct session *session, const char *page, ...) { _cleanup_free_ char *sum = xstrdup(page); char *next = NULL; char *escaped = NULL; va_list params; char *param; va_start(params, page); while ((param = va_arg(params, char *))) { escaped = pinentry_escape(param); xasprintf(&next, "%s\n%s", sum, escaped); free(escaped); free(sum); sum = next; } va_end(params); upload_queue_write_entry(sum, key); if (sync != BLOB_SYNC_NO) upload_queue_ensure_running(key, session); }