|  | @@ -88,6 +88,8 @@ struct mg_request_info {
 | 
											
												
													
														|  |  	} http_headers[64];    /* Maximum 64 headers */
 |  |  	} http_headers[64];    /* Maximum 64 headers */
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	struct client_cert *client_cert; /* Client certificate information */
 |  |  	struct client_cert *client_cert; /* Client certificate information */
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	const char *acceptedSubprotocol; /* websocket, subprotocol accepted during handshake */
 | 
											
												
													
														|  |  };
 |  |  };
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -353,6 +355,14 @@ typedef int (*mg_websocket_data_handler)(struct mg_connection *,
 | 
											
												
													
														|  |  typedef void (*mg_websocket_close_handler)(const struct mg_connection *,
 |  |  typedef void (*mg_websocket_close_handler)(const struct mg_connection *,
 | 
											
												
													
														|  |                                             void *);
 |  |                                             void *);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +/* struct mg_websocket_subprotocols
 | 
											
												
													
														|  | 
 |  | + *
 | 
											
												
													
														|  | 
 |  | + * List of accepted subprotocols
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +struct mg_websocket_subprotocols {
 | 
											
												
													
														|  | 
 |  | +	int nb_subprotocols;
 | 
											
												
													
														|  | 
 |  | +	char ** subprotocols;
 | 
											
												
													
														|  | 
 |  | +};
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  /* mg_set_websocket_handler
 |  |  /* mg_set_websocket_handler
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -367,6 +377,20 @@ mg_set_websocket_handler(struct mg_context *ctx,
 | 
											
												
													
														|  |                           mg_websocket_close_handler close_handler,
 |  |                           mg_websocket_close_handler close_handler,
 | 
											
												
													
														|  |                           void *cbdata);
 |  |                           void *cbdata);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +/* mg_set_websocket_handler
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +   Set or remove handler functions for websocket connections.
 | 
											
												
													
														|  | 
 |  | +   This function works similar to mg_set_request_handler - see there. */
 | 
											
												
													
														|  | 
 |  | +CIVETWEB_API void
 | 
											
												
													
														|  | 
 |  | +mg_set_websocket_handler_with_subprotocols(struct mg_context *ctx,
 | 
											
												
													
														|  | 
 |  | +                         const char *uri,
 | 
											
												
													
														|  | 
 |  | +						 struct mg_websocket_subprotocols *subprotocols,
 | 
											
												
													
														|  | 
 |  | +                         mg_websocket_connect_handler connect_handler,
 | 
											
												
													
														|  | 
 |  | +                         mg_websocket_ready_handler ready_handler,
 | 
											
												
													
														|  | 
 |  | +                         mg_websocket_data_handler data_handler,
 | 
											
												
													
														|  | 
 |  | +                         mg_websocket_close_handler close_handler,
 | 
											
												
													
														|  | 
 |  | +                         void *cbdata);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  /* mg_authorization_handler
 |  |  /* mg_authorization_handler
 | 
											
												
													
														|  |  
 |  |  
 |