diff options
author | bigbear <ns@bigbear.dk> | 2024-02-08 03:08:54 +0100 |
---|---|---|
committer | bigbear <ns@bigbear.dk> | 2024-02-08 19:52:53 +0100 |
commit | 33d6c7101cee251b91b4f01b2ddde55b4b2d50d9 (patch) | |
tree | 49ae675f7d68b90415db69bfcd21fe84fa74013d /shell/syncmanager.c | |
parent | 1dc1f18804969c191346b064cd232d3f5959b13c (diff) |
FIX back ports
Diffstat (limited to 'shell/syncmanager.c')
-rw-r--r-- | shell/syncmanager.c | 52 |
1 files changed, 46 insertions, 6 deletions
diff --git a/shell/syncmanager.c b/shell/syncmanager.c index 86ba80a3..03e8b210 100644 --- a/shell/syncmanager.c +++ b/shell/syncmanager.c @@ -26,6 +26,10 @@ #include <stdarg.h> #include <string.h> +#ifndef SOUP_CHECK_VERSION + #define SOUP_CHECK_VERSION(a,b,c) 0 +#endif + typedef struct _SyncDialog SyncDialog; typedef struct _SyncNetArea SyncNetArea; typedef struct _SyncNetAction SyncNetAction; @@ -185,13 +189,19 @@ static SoupURI *sync_manager_get_proxy(void) static void ensure_soup_session(void) { if (!session) { -#if !SOUP_CHECK_VERSION(3,0,0) +#if SOUP_CHECK_VERSION(3,0,0) + session = soup_session_new_with_options("timeout", 10, NULL); +#else +#if SOUP_CHECK_VERSION(2,42,0) SoupURI *proxy = sync_manager_get_proxy(); session = soup_session_new_with_options( SOUP_SESSION_TIMEOUT, 10, SOUP_SESSION_PROXY_URI, proxy, NULL); #else - session = soup_session_new_with_options("timeout", 10, NULL); + SoupURI *proxy = sync_manager_get_proxy(); + session = soup_session_async_new_with_options( + SOUP_SESSION_TIMEOUT, 10, SOUP_SESSION_PROXY_URI, proxy, NULL); +#endif #endif } } @@ -226,16 +236,28 @@ static void sync_dialog_start_sync(SyncDialog *sd) g_main_loop_unref(loop); } +#if SOUP_CHECK_VERSION(2,42,0) static void got_response(GObject *source, GAsyncResult *res, gpointer user_data) +#else +static void got_response(SoupSession *source, SoupMessage *res, gpointer user_data) +#endif { SyncNetAction *sna = user_data; GInputStream *is; +#if SOUP_CHECK_VERSION(2,42,0) +#else + const guint8 *buf=NULL; + gsize len,datawritten; + SoupBuffer *soupmsg=NULL; +#endif +#if SOUP_CHECK_VERSION(2,42,0) is = soup_session_send_finish(session, res, &sna->error); if (is == NULL) goto out; if (sna->error != NULL) goto out; +#endif if (sna->entry->file_name != NULL) { gchar *path = g_build_filename(g_get_user_config_dir(), "hardinfo2", @@ -246,9 +268,21 @@ static void got_response(GObject *source, GAsyncResult *res, gpointer user_data) NULL, &sna->error); if (output != NULL) { +#if SOUP_CHECK_VERSION(2,42,0) g_output_stream_splice(G_OUTPUT_STREAM(output), is, G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET, NULL, &sna->error); +#else + soupmsg=soup_message_body_flatten(res->response_body); + if(soupmsg){ + soup_buffer_get_data(soupmsg,&buf,&len); + DEBUG("got file with len: %u", (unsigned int)len); + if(len>0){ + g_output_stream_write_all(G_OUTPUT_STREAM(output),buf,len,&datawritten,NULL,&sna->error); + soup_buffer_free(soupmsg); + } + } +#endif } g_free(path); @@ -257,7 +291,9 @@ static void got_response(GObject *source, GAsyncResult *res, gpointer user_data) out: g_main_loop_quit(loop); +#if SOUP_CHECK_VERSION(2,42,0) g_object_unref(is); +#endif } static gboolean send_request_for_net_action(SyncNetAction *sna) @@ -276,19 +312,23 @@ static gboolean send_request_for_net_action(SyncNetAction *sna) msg = soup_message_new("POST", uri); -#if !SOUP_CHECK_VERSION(3, 0, 0) - soup_message_set_request(msg, "application/octet-stream", - SOUP_MEMORY_TAKE, contents, size); -#else +#if SOUP_CHECK_VERSION(3, 0, 0) GBytes *cont = g_bytes_new_static(contents,size); soup_message_set_request_body_from_bytes(msg, "application/octet-stream", cont); +#else + soup_message_set_request(msg, "application/octet-stream", + SOUP_MEMORY_TAKE, contents, size); #endif } #if SOUP_CHECK_VERSION(3, 0, 0) soup_session_send_async(session, msg, G_PRIORITY_DEFAULT, NULL, got_response, sna); #else +#if SOUP_CHECK_VERSION(2,42,0) soup_session_send_async(session, msg, NULL, got_response, sna); +#else + soup_session_queue_message(session, msg, got_response, sna); +#endif #endif g_main_loop_run(loop); |