Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
WS_REQUEST_KEY(3)	    libdill Library Functions	       WS_REQUEST_KEY(3)

NAME
     ws_request_key - generates an unique value for Sec-WebSocket-Key field

SYNOPSIS
	    #include <libdill.h>

	    int ws_request_key(
		char* request_key);

DESCRIPTION
     WARNING:  This  is experimental functionality and the API may change in the
     future.

     WebSocket is a message-based protocol defined in RFC 6455.  It can be  used
     as  a  bidirectional  communication  channel  for	communication with a web
     server.

     This is a helper function that can be used when doing a custom  HTTP  hand-
     shake  for  the  WebSocket  protocol (see WS_NOHTTP flag).  It generates an
     unique RFC-compliant key to be filled into Sec-WebSocket-Key  of  the  HTTP
     request.

     The generated key is null-terminated.

     request_key: Buffer to hold the generated request key.  It must be at least
     WS_KEY_SIZE bytes long.

     This  function is not available if libdill is compiled with --disable-sock-
     ets option.

RETURN VALUE
     In case of success the function returns 0.  In case of error it returns  -1
     and sets errno to one of the values below.

ERRORS
     * EINVAL: Invalid argument.

EXAMPLE
	    char request_key[WS_KEY_SIZE];
	    ws_request_key(request_key);
	    http_sendfield(s, "Sec-WebSocket-Key", request_key, -1);

SEE ALSO
     mrecv(3)	 mrecvl(3)   msend(3)	msendl(3)   ws_attach_client(3)   ws_at-
     tach_client_mem(3) ws_attach_server(3) ws_attach_server_mem(3) ws_detach(3)
     ws_done(3) ws_recv(3) ws_recvl(3) ws_response_key(3) ws_send(3) ws_sendl(3)
     ws_status(3)

libdill 						       WS_REQUEST_KEY(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ws_request_key&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help