Lines Matching refs:curl
12 * are also available at https://curl.se/docs/copyright.html.
21 * SPDX-License-Identifier: curl
30 static int ping(CURL *curl, const char *send_payload)
34 curl_ws_send(curl, send_payload, strlen(send_payload), &sent, CURLWS_PING);
41 static int recv_pong(CURL *curl, const char *expected_payload)
47 curl_ws_recv(curl, buffer, sizeof(buffer), &rlen, &rflags);
69 static void websocket_close(CURL *curl)
73 curl_ws_send(curl, "", 0, &sent, CURLWS_CLOSE);
78 static void websocket(CURL *curl)
83 if(ping(curl, "foobar"))
85 if(recv_pong(curl, "foobar"))
89 websocket_close(curl);
124 CURL *curl;
129 curl = curl_easy_init();
130 if(curl) {
131 curl_easy_setopt(curl, CURLOPT_URL, URL);
134 curl_easy_setopt(curl, CURLOPT_USERAGENT, "webbie-sox/3");
135 curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
136 curl_easy_setopt(curl, CURLOPT_WS_OPTIONS, CURLWS_RAW_MODE);
137 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writecb);
138 curl_easy_setopt(curl, CURLOPT_WRITEDATA, curl);
139 res = curl_easy_perform(curl);
143 websocket(curl);
146 curl_easy_cleanup(curl);