From: Michael Tremer Date: Fri, 7 Feb 2025 12:06:05 +0000 (+0000) Subject: Always require WebSocket support in cURL X-Git-Tag: 0.9.30~97 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1e90484864dc99dc94ea28d0530d2b1d815f2910;p=pakfire.git Always require WebSocket support in cURL Signed-off-by: Michael Tremer --- diff --git a/Makefile.am b/Makefile.am index f099809c..cddc264c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -435,10 +435,8 @@ pakfire_client_LDADD = \ # ------------------------------------------------------------------------------ -if CURL_HAS_WEBSOCKETS bin_PROGRAMS += \ pakfire-daemon -endif dist_pakfire_daemon_SOURCES = \ src/cli/pakfire-daemon.c diff --git a/configure.ac b/configure.ac index 7de23242..69b83f39 100644 --- a/configure.ac +++ b/configure.ac @@ -325,28 +325,6 @@ save_LIBS="$LIBS" LIBS="$save_LIBS" -# Check if cURL has support for WebSockets -AC_CHECK_PROG(CURL_CONFIG, curl-config, curl-config) -if test "$CURL_CONFIG" != ""; then - # Check for WebSocket support - AC_MSG_CHECKING([for curl WebSocket support]) - CURL_PROTOCOLS=$($CURL_CONFIG --protocols) - - if echo "$CURL_PROTOCOLS" | grep -qw "WSS"; then - AC_DEFINE(CURL_HAS_WEBSOCKETS, [1], [cURL has WebSocket Support]) - - AC_MSG_RESULT([yes]) - CURL_HAS_WEBSOCKETS=yes - else - AC_MSG_RESULT([no]) - CURL_HAS_WEBSOCKETS=no - fi -else - AC_MSG_ERROR([curl-config not found]) -fi - -AM_CONDITIONAL(CURL_HAS_WEBSOCKETS, [test "x$CURL_HAS_WEBSOCKETS" = "xyes"]) - AC_DEFINE_UNQUOTED([PAKFIRE_CONFIG_DIR], ["${sysconfdir}/${PACKAGE_NAME}"], [The path where Pakfire stores configuration files]) AC_DEFINE_UNQUOTED([PAKFIRE_CACHE_DIR], ["/var/cache/${PACKAGE_NAME}"], diff --git a/src/cli/lib/daemon.c b/src/cli/lib/daemon.c index 4dff6b8b..a7274860 100644 --- a/src/cli/lib/daemon.c +++ b/src/cli/lib/daemon.c @@ -18,8 +18,6 @@ # # #############################################################################*/ -#ifdef CURL_HAS_WEBSOCKETS - #include #include @@ -46,5 +44,3 @@ ERROR: return r; } - -#endif /* CURL_HAS_WEBSOCKETS */ diff --git a/src/cli/lib/daemon.h b/src/cli/lib/daemon.h index a27ec39b..736c7625 100644 --- a/src/cli/lib/daemon.h +++ b/src/cli/lib/daemon.h @@ -21,11 +21,8 @@ #ifndef PAKFIRE_CLI_DAEMON_H #define PAKFIRE_CLI_DAEMON_H -#ifdef CURL_HAS_WEBSOCKETS - #include int cli_daemon_main(struct pakfire_ctx* ctx); -#endif /* CURL_HAS_WEBSOCKETS */ #endif /* PAKFIRE_CLI_DAEMON_H */ diff --git a/src/pakfire/daemon.c b/src/pakfire/daemon.c index ee877290..0ed933f3 100644 --- a/src/pakfire/daemon.c +++ b/src/pakfire/daemon.c @@ -18,8 +18,6 @@ # # #############################################################################*/ -#ifdef CURL_HAS_WEBSOCKETS - #include #include @@ -1399,5 +1397,3 @@ int pakfire_daemon_send_message(struct pakfire_daemon* self, struct json_object* return 0; } - -#endif /* CURL_HAS_WEBSOCKETS */ diff --git a/src/pakfire/daemon.h b/src/pakfire/daemon.h index f345d3c7..a1caaad8 100644 --- a/src/pakfire/daemon.h +++ b/src/pakfire/daemon.h @@ -21,8 +21,6 @@ #ifndef PAKFIRE_DAEMON_H #define PAKFIRE_DAEMON_H -#ifdef CURL_HAS_WEBSOCKETS - struct pakfire_daemon; #include @@ -49,5 +47,4 @@ int pakfire_daemon_job_finished(struct pakfire_daemon* daemon, struct pakfire_jo // Send message int pakfire_daemon_send_message(struct pakfire_daemon* self, struct json_object* message); -#endif /* CURL_HAS_WEBSOCKETS */ #endif /* PAKFIRE_DAEMON_H */ diff --git a/src/pakfire/job.c b/src/pakfire/job.c index dbf5ef49..5ec9531f 100644 --- a/src/pakfire/job.c +++ b/src/pakfire/job.c @@ -18,8 +18,6 @@ # # #############################################################################*/ -#ifdef CURL_HAS_WEBSOCKETS - #include #include #include @@ -1009,5 +1007,3 @@ int pakfire_job_handle_message(struct pakfire_job* self, struct json_object* mes return 0; } - -#endif /* CURL_HAS_WEBSOCKETS */ diff --git a/src/pakfire/job.h b/src/pakfire/job.h index 5f216f6a..db6ce25a 100644 --- a/src/pakfire/job.h +++ b/src/pakfire/job.h @@ -21,8 +21,6 @@ #ifndef PAKFIRE_JOB_H #define PAKFIRE_JOB_H -#ifdef CURL_HAS_WEBSOCKETS - #include #include @@ -50,5 +48,4 @@ int pakfire_job_terminate_log_stream(struct pakfire_job* job); // Message Received int pakfire_job_handle_message(struct pakfire_job* self, struct json_object* message); -#endif /* CURL_HAS_WEBSOCKETS */ #endif /* PAKFIRE_JOB_H */ diff --git a/src/pakfire/xfer.c b/src/pakfire/xfer.c index 4a31a729..fad3422a 100644 --- a/src/pakfire/xfer.c +++ b/src/pakfire/xfer.c @@ -72,9 +72,7 @@ struct pakfire_xfer { enum { PAKFIRE_XFER_DOWNLOAD = 0, PAKFIRE_XFER_UPLOAD = 1, -#ifdef CURL_HAS_WEBSOCKETS PAKFIRE_XFER_SOCKET = 2, -#endif /* CURL_HAS_WEBSOCKETS */ } direction; // Size @@ -108,7 +106,6 @@ struct pakfire_xfer { // Event Loop sd_event_source* event; -#ifdef CURL_HAS_WEBSOCKETS // Callbacks struct pakfire_xfer_callbacks { pakfire_xfer_open_callback open; @@ -123,7 +120,6 @@ struct pakfire_xfer { char* data; size_t size; } buffer; -#endif /* CURL_HAS_WEBSOCKETS */ }; static void pakfire_xfer_free(struct pakfire_xfer* xfer) { @@ -139,11 +135,9 @@ static void pakfire_xfer_free(struct pakfire_xfer* xfer) { if (xfer->event) sd_event_source_unref(xfer->event); -#ifdef CURL_HAS_WEBSOCKETS // Buffer if (xfer->buffer.data) free(xfer->buffer.data); -#endif /* CURL_HAS_WEBSOCKETS */ // Query Arguments if (xfer->queries) @@ -937,7 +931,6 @@ static int pakfire_xfer_fail(struct pakfire_xfer* xfer, int code) { return -EAGAIN; } -#ifdef CURL_HAS_WEBSOCKETS // Call the close callback for WebSockets if (xfer->direction == PAKFIRE_XFER_SOCKET) { if (xfer->callbacks.close) { @@ -946,7 +939,6 @@ static int pakfire_xfer_fail(struct pakfire_xfer* xfer, int code) { return r; } } -#endif /* CURL_HAS_WEBSOCKETS */ return code; } @@ -971,7 +963,6 @@ static const char* curl_http_version(long v) { return "unknown"; } -#ifdef CURL_HAS_WEBSOCKETS static int pakfire_xfer_allocate(struct pakfire_xfer* xfer, size_t size) { // Otherwise, we resize the buffer @@ -1136,7 +1127,6 @@ ERROR: return r; } -#endif /* CURL_HAS_WEBSOCKETS */ /* This function checks if the hashes match (if set up) @@ -1327,12 +1317,10 @@ pakfire_xfer_error_code_t pakfire_xfer_done( return r; break; -#ifdef CURL_HAS_WEBSOCKETS case PAKFIRE_XFER_SOCKET: r = pakfire_xfer_done_socket(xfer, loop, code); if (r < 0) return r; -#endif /* CURL_HAS_WEBSOCKETS */ default: break; @@ -1375,10 +1363,8 @@ static int pakfire_xfer_update(void* data, xfer->xferred = ulnow; break; -#ifdef CURL_HAS_WEBSOCKETS case PAKFIRE_XFER_SOCKET: break; -#endif /* CURL_HAS_WEBSOCKETS */ } // Do nothing if no progress indicator has been set up @@ -1501,7 +1487,6 @@ static int pakfire_xfer_prepare_url(struct pakfire_xfer* xfer) { goto ERROR; } -#ifdef CURL_HAS_WEBSOCKETS // Replace the schema if we are using SOCKET if (xfer->direction == PAKFIRE_XFER_SOCKET) { r = curl_url_set(xfer->fullurl, CURLUPART_SCHEME, "wss", 0); @@ -1510,7 +1495,6 @@ static int pakfire_xfer_prepare_url(struct pakfire_xfer* xfer) { goto ERROR; } } -#endif /* CURL_HAS_WEBSOCKETS */ // Append any query arguments if (xfer->queries) { @@ -1573,7 +1557,6 @@ int pakfire_xfer_prepare(struct pakfire_xfer* xfer, struct pakfire_progress* pro } break; -#ifdef CURL_HAS_WEBSOCKETS case PAKFIRE_XFER_SOCKET: // Ask cURL to connect and let us handle the rest r = curl_easy_setopt(xfer->handle, CURLOPT_CONNECT_ONLY, 2L); @@ -1583,7 +1566,6 @@ int pakfire_xfer_prepare(struct pakfire_xfer* xfer, struct pakfire_progress* pro } break; -#endif /* CURL_HAS_WEBSOCKETS */ } // Compose the URL @@ -1636,7 +1618,6 @@ int pakfire_xfer_prepare(struct pakfire_xfer* xfer, struct pakfire_progress* pro return 0; } -#ifdef CURL_HAS_WEBSOCKETS int pakfire_xfer_socket(struct pakfire_xfer* xfer, pakfire_xfer_open_callback open, pakfire_xfer_recv_callback recv, pakfire_xfer_send_callback send, pakfire_xfer_close_callback close, void* data) { @@ -1674,7 +1655,6 @@ int pakfire_xfer_send_message(struct pakfire_xfer* xfer, return 0; } -#endif /* CURL_HAS_WEBSOCKETS */ pakfire_xfer_error_code_t pakfire_xfer_run(struct pakfire_xfer* xfer, int flags) { int r; diff --git a/src/pakfire/xfer.h b/src/pakfire/xfer.h index 37d6c2d3..8207a78d 100644 --- a/src/pakfire/xfer.h +++ b/src/pakfire/xfer.h @@ -135,7 +135,6 @@ pakfire_xfer_error_code_t pakfire_xfer_run_api_request( struct pakfire_xfer* xfer, struct json_object** response); // WebSocket -#ifdef CURL_HAS_WEBSOCKETS typedef int (*pakfire_xfer_open_callback)(struct pakfire_xfer* xfer, void* data); typedef int (*pakfire_xfer_recv_callback)(struct pakfire_xfer* xfer, const char* message, const size_t size, void* data); typedef int (*pakfire_xfer_send_callback)(struct pakfire_xfer* xfer, void* data); @@ -145,6 +144,5 @@ int pakfire_xfer_socket(struct pakfire_xfer* xfer, pakfire_xfer_open_callback op pakfire_xfer_recv_callback recv, pakfire_xfer_send_callback send, pakfire_xfer_close_callback close, void* data); int pakfire_xfer_send_message(struct pakfire_xfer* xfer, const char* message, const size_t length); -#endif /* CURL_HAS_WEBSOCKETS */ #endif /* PAKFIRE_XFER_H */