int pakfire_xfer_socket(struct pakfire_xfer* xfer, 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 /* PAKFIRE_PRIVATE */
#endif /* PAKFIRE_XFER_H */
return 0;
}
+/*
+ This function sends a WebSocket message
+*/
+int pakfire_xfer_send_message(struct pakfire_xfer* xfer,
+ const char* message, const size_t length) {
+ size_t bytes_sent = 0;
+ int r;
+
+ // Send the message
+ r = curl_ws_send(xfer->handle, message, length, &bytes_sent, 0, CURLWS_TEXT);
+ if (r) {
+ CTX_ERROR(xfer->ctx, "Could not send message: %s\n", curl_easy_strerror(r));
+
+ return r;
+ }
+
+ // Log success
+ CTX_DEBUG(xfer->ctx,
+ "Successfully sent a WebSocket message of %zu byte(s)\n", bytes_sent);
+
+ return 0;
+}
+
pakfire_xfer_error_code_t pakfire_xfer_run(struct pakfire_xfer* xfer, int flags) {
int r;