The returned info is read-only for the user.
Closes #11261
{
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));
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) {
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)
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.
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 */
}
#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.
\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
*/
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)
/* 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
}
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;
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 */
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;
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;
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;
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) {
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]);
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) {
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)
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);