]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
ws: make the curl_ws_meta() return pointer a const
authorDaniel Stenberg <daniel@haxx.se>
Wed, 7 Jun 2023 08:17:48 +0000 (10:17 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 7 Jun 2023 21:37:21 +0000 (23:37 +0200)
The returned info is read-only for the user.

Closes #11261

docs/examples/websocket-cb.c
docs/examples/websocket.c
docs/libcurl/curl_ws_meta.3
docs/libcurl/curl_ws_recv.3
include/curl/websockets.h
lib/ws.c
tests/http/clients/ws-data.c
tests/http/clients/ws-pingpong.c
tests/libtest/lib2302.c
tests/libtest/lib2304.c
tests/libtest/lib2305.c

index f5717468979c6d42240485c9301be3b7a391f3ed..7adbf4489dc04875d4ca82853d665e1d42f5e4aa 100644 (file)
@@ -32,7 +32,7 @@ static size_t writecb(char *b, size_t size, size_t nitems, void *p)
 {
   CURL *easy = p;
   size_t i;
-  struct curl_ws_frame *frame = curl_ws_meta(easy);
+  const struct curl_ws_frame *frame = curl_ws_meta(easy);
   fprintf(stderr, "Type: %s\n", frame->flags & CURLWS_BINARY ?
           "binary" : "text");
   fprintf(stderr, "Bytes: %u", (unsigned int)(nitems * size));
index c551ca4d6b45b09e1f9994006bf56014b2eb6750..52a09032cc6944669a90ba5684dd5fd4f6351e99 100644 (file)
@@ -42,7 +42,7 @@ static int ping(CURL *curl, const char *send_payload)
 static int recv_pong(CURL *curl, const char *exected_payload)
 {
   size_t rlen;
-  struct curl_ws_frame *meta;
+  const struct curl_ws_frame *meta;
   char buffer[256];
   CURLcode result = curl_ws_recv(curl, buffer, sizeof(buffer), &rlen, &meta);
   if(!result) {
@@ -71,7 +71,7 @@ static int recv_pong(CURL *curl, const char *exected_payload)
 static int recv_any(CURL *curl)
 {
   size_t rlen;
-  struct curl_ws_frame *meta;
+  const struct curl_ws_frame *meta;
   char buffer[256];
   CURLcode result = curl_ws_recv(curl, buffer, sizeof(buffer), &rlen, &meta);
   if(result)
index c11257b3384f2e98749cc5be8f71b162450bbf1d..a0ff888ae0b392ef8cf520ef9d44c34d244450e4 100644 (file)
@@ -36,7 +36,7 @@ struct curl_ws_frame {
   curl_off_t bytesleft; /* number of pending bytes left of the payload */
 };
 
-struct curl_ws_frame *curl_ws_meta(CURL *curl);
+const struct curl_ws_frame *curl_ws_meta(CURL *curl);
 .fi
 .SH DESCRIPTION
 This function call is EXPERIMENTAL.
@@ -93,7 +93,7 @@ static size_t writecb(unsigned char *buffer,
                       size_t size, size_t nitems, void *p)
 {
   struct customdata *c = (struct customdata *)p;
-  struct curl_ws_frame *m = curl_ws_meta(c->easy);
+  const struct curl_ws_frame *m = curl_ws_meta(c->easy);
 
   /* m->flags tells us about the traffic */
 }
index d5256cc3476ae5ad0f5c42a248193d67c81769bf..65e14768cdb3c0aaa20f0d83d0447fee470a786b 100644 (file)
@@ -30,7 +30,7 @@ curl_ws_recv - receive WebSocket data
 #include <curl/easy.h>
 
 CURLcode curl_ws_recv(CURL *curl, void *buffer, size_t buflen,
-                      size_t *recv, struct curl_ws_frame **meta);
+                      size_t *recv, const struct curl_ws_frame **meta);
 .fi
 .SH DESCRIPTION
 This function call is EXPERIMENTAL.
@@ -43,13 +43,13 @@ If there is more fragment data to deliver than what fits in the provided
 \fIbuffer\fP, libcurl returns a full buffer and the application needs to call
 this function again to continue draining the buffer.
 
-The \fImeta\fP pointer gets set to point to a \fIstruct curl_ws_frame\fP that
-contains information about the received data. See the \fIcurl_ws_meta(3)\fP
-for details on that struct.
+The \fImeta\fP pointer gets set to point to a \fIconst struct curl_ws_frame\fP
+that contains information about the received data. See the
+\fIcurl_ws_meta(3)\fP for details on that struct.
 .SH EXAMPLE
 .nf
   size_t rlen;
-  struct curl_ws_frame *meta;
+  const struct curl_ws_frame *meta;
   char buffer[256];
   CURLcode result = curl_ws_recv(curl, buffer, sizeof(buffer), &rlen, &meta);
 .fi
index fd6a916547ddbf1bad9f6f0a849ef4f828d61f42..4aa48a05d3ca7a4f2303dbae4d37e9a1d0fc3882 100644 (file)
@@ -54,7 +54,7 @@ struct curl_ws_frame {
  */
 CURL_EXTERN CURLcode curl_ws_recv(CURL *curl, void *buffer, size_t buflen,
                                   size_t *recv,
-                                  struct curl_ws_frame **metap);
+                                  const struct curl_ws_frame **metap);
 
 /* sendflags for curl_ws_send() */
 #define CURLWS_PONG       (1<<6)
@@ -75,7 +75,7 @@ CURL_EXTERN CURLcode curl_ws_send(CURL *curl, const void *buffer,
 /* bits for the CURLOPT_WS_OPTIONS bitmask: */
 #define CURLWS_RAW_MODE (1<<0)
 
-CURL_EXTERN struct curl_ws_frame *curl_ws_meta(CURL *curl);
+CURL_EXTERN const struct curl_ws_frame *curl_ws_meta(CURL *curl);
 
 #ifdef  __cplusplus
 }
index c60bbc95b387978e025462d21e63d8c8998a8169..8d1050f1c10f735f3c706297c5cf67d8bd5e8518 100644 (file)
--- a/lib/ws.c
+++ b/lib/ws.c
@@ -839,7 +839,7 @@ static ssize_t nw_in_recv(void *reader_ctx,
 
 CURL_EXTERN CURLcode curl_ws_recv(struct Curl_easy *data, void *buffer,
                                   size_t buflen, size_t *nread,
-                                  struct curl_ws_frame **metap)
+                                  const struct curl_ws_frame **metap)
 {
   struct connectdata *conn = data->conn;
   struct websocket *ws;
@@ -1082,7 +1082,7 @@ CURLcode Curl_ws_disconnect(struct Curl_easy *data,
   return CURLE_OK;
 }
 
-CURL_EXTERN struct curl_ws_frame *curl_ws_meta(struct Curl_easy *data)
+CURL_EXTERN const struct curl_ws_frame *curl_ws_meta(struct Curl_easy *data)
 {
   /* we only return something for websocket, called from within the callback
      when not using raw mode */
@@ -1096,7 +1096,7 @@ CURL_EXTERN struct curl_ws_frame *curl_ws_meta(struct Curl_easy *data)
 
 CURL_EXTERN CURLcode curl_ws_recv(CURL *curl, void *buffer, size_t buflen,
                                   size_t *nread,
-                                  struct curl_ws_frame **metap)
+                                  const struct curl_ws_frame **metap)
 {
   (void)curl;
   (void)buffer;
@@ -1120,7 +1120,7 @@ CURL_EXTERN CURLcode curl_ws_send(CURL *curl, const void *buffer,
   return CURLE_NOT_BUILT_IN;
 }
 
-CURL_EXTERN struct curl_ws_frame *curl_ws_meta(struct Curl_easy *data)
+CURL_EXTERN const struct curl_ws_frame *curl_ws_meta(struct Curl_easy *data)
 {
   (void)data;
   return NULL;
index d055ede3c6d26375869876cfa7ccb61fcb1b66b9..e8665b1826e69a0d37759cbcf503e0a273dbf1f8 100644 (file)
@@ -101,7 +101,7 @@ static CURLcode send_binary(CURL *curl, char *buf, size_t buflen)
 
 static CURLcode recv_binary(CURL *curl, char *exp_data, size_t exp_len)
 {
-  struct curl_ws_frame *frame;
+  const struct curl_ws_frame *frame;
   char recvbuf[256];
   size_t r_offset, nread;
   CURLcode result;
index 59d4bd1e6593841c62bde3c1edf975086343c8cb..a81c09012ff18acc57e44807a7c1cb834fd3b10e 100644 (file)
@@ -55,7 +55,7 @@ static CURLcode ping(CURL *curl, const char *send_payload)
 static CURLcode recv_pong(CURL *curl, const char *exected_payload)
 {
   size_t rlen;
-  struct curl_ws_frame *meta;
+  const struct curl_ws_frame *meta;
   char buffer[256];
   CURLcode result = curl_ws_recv(curl, buffer, sizeof(buffer), &rlen, &meta);
   if(result) {
index 815de536ffbbf44bed7c171438f89de29846c016..063c26d0512cd6a5bc164a7dee1b37776939cc29 100644 (file)
@@ -97,7 +97,7 @@ static size_t writecb(char *buffer, size_t size, size_t nitems, void *p)
   CURL *easy = p;
   size_t i;
   size_t incoming = nitems;
-  struct curl_ws_frame *meta;
+  const struct curl_ws_frame *meta;
   (void)size;
   for(i = 0; i < nitems; i++)
     printf("%02x ", (unsigned char)buffer[i]);
index 58cafe0bc151e200d43603f98f42093c43978339..5e375d851394d1d56bdc65f71a6571a0b53f2e1c 100644 (file)
@@ -41,7 +41,7 @@ static int ping(CURL *curl, const char *send_payload)
 static int recv_pong(CURL *curl, const char *exected_payload)
 {
   size_t rlen;
-  struct curl_ws_frame *meta;
+  const struct curl_ws_frame *meta;
   char buffer[256];
   CURLcode result = curl_ws_recv(curl, buffer, sizeof(buffer), &rlen, &meta);
   if(!result) {
@@ -70,7 +70,7 @@ static int recv_pong(CURL *curl, const char *exected_payload)
 static int recv_any(CURL *curl)
 {
   size_t rlen;
-  struct curl_ws_frame *meta;
+  const struct curl_ws_frame *meta;
   char buffer[256];
   CURLcode result = curl_ws_recv(curl, buffer, sizeof(buffer), &rlen, &meta);
   if(result)
index ebf9bcdbbb6f3239b610440f916059ca05001857..92fb0065f2f25902d99767a2590ec12e000adb40 100644 (file)
@@ -40,7 +40,7 @@ static void websocket_close(CURL *curl)
 static void websocket(CURL *curl)
 {
   char buffer[256];
-  struct curl_ws_frame *meta;
+  const struct curl_ws_frame *meta;
   size_t nread;
   size_t i = 0;
   FILE *save = fopen(libtest_arg2, FOPEN_WRITETEXT);