@ -124,7 +124,7 @@ size_t websocket_queue_len(struct websocket_conn *wc) {
/ / adds data to output buffer ( can be null ) and optionally triggers specified response
int websocket_write_raw ( struct websocket_conn * wc , const char * msg , size_t len ,
void websocket_write_raw ( struct websocket_conn * wc , const char * msg , size_t len ,
enum lws_write_protocol protocol , int done )
{
mutex_lock ( & wc - > lock ) ;
@ -139,23 +139,21 @@ int websocket_write_raw(struct websocket_conn *wc, const char *msg, size_t len,
}
mutex_unlock ( & wc - > lock ) ;
return 0 ;
}
/ / adds data to output buffer ( can be null ) and triggers specified response : http or binary websocket
int websocket_write_http_len ( struct websocket_conn * wc , const char * msg , size_t len , int done ) {
return websocket_write_raw ( wc , msg , len , LWS_WRITE_HTTP , done ) ;
void websocket_write_http_len ( struct websocket_conn * wc , const char * msg , size_t len , int done ) {
websocket_write_raw ( wc , msg , len , LWS_WRITE_HTTP , done ) ;
}
int websocket_write_http ( struct websocket_conn * wc , const char * msg , int done ) {
return websocket_write_http_len ( wc , msg , msg ? strlen ( msg ) : 0 , done ) ;
void websocket_write_http ( struct websocket_conn * wc , const char * msg , int done ) {
websocket_write_http_len ( wc , msg , msg ? strlen ( msg ) : 0 , done ) ;
}
int websocket_write_text ( struct websocket_conn * wc , const char * msg , int done ) {
return websocket_write_raw ( wc , msg , strlen ( msg ) , LWS_WRITE_TEXT , done ) ;
void websocket_write_text ( struct websocket_conn * wc , const char * msg , int done ) {
websocket_write_raw ( wc , msg , strlen ( msg ) , LWS_WRITE_TEXT , done ) ;
}
int websocket_write_binary ( struct websocket_conn * wc , const char * msg , size_t len , int done ) {
return websocket_write_raw ( wc , msg , len , LWS_WRITE_BINARY , done ) ;
void websocket_write_binary ( struct websocket_conn * wc , const char * msg , size_t len , int done ) {
websocket_write_raw ( wc , msg , len , LWS_WRITE_BINARY , done ) ;
}
@ -317,19 +315,18 @@ void websocket_http_response(struct websocket_conn *wc, int status, const char *
mutex_unlock ( & wc - > lock ) ;
}
const char * websocket_http_complete ( struct websocket_conn * wc , int status , const char * content_type ,
void websocket_http_complete ( struct websocket_conn * wc , int status , const char * content_type ,
ssize_t content_length , const char * content )
{
websocket_http_response ( wc , status , content_type , content_length ) ;
if ( websocket_write_http ( wc , content , 1 ) )
return " Failed to write pong response " ;
return NULL ;
websocket_write_http ( wc , content , 1 ) ;
}
static const char * websocket_http_ping ( struct websocket_message * wm ) {
ilogs ( http , LOG_DEBUG , " Respoding to GET /ping " ) ;
return websocket_http_complete ( wm - > wc , 200 , " text/plain " , 5 , " pong \n " ) ;
websocket_http_complete ( wm - > wc , 200 , " text/plain " , 5 , " pong \n " ) ;
return NULL ;
}
@ -366,7 +363,8 @@ static const char *websocket_http_metrics(struct websocket_message *wm) {
g_string_append_printf ( outp , " %s \n " , m - > value_short ) ;
}
return websocket_http_complete ( wm - > wc , 200 , " text/plain " , outp - > len , outp - > str ) ;
websocket_http_complete ( wm - > wc , 200 , " text/plain " , outp - > len , outp - > str ) ;
return NULL ;
}
@ -398,7 +396,8 @@ static const char *websocket_http_cli(struct websocket_message *wm) {
size_t len = websocket_queue_len ( wm - > wc ) ;
return websocket_http_complete ( wm - > wc , 200 , " text/plain " , len , NULL ) ;
websocket_http_complete ( wm - > wc , 200 , " text/plain " , len , NULL ) ;
return NULL ;
}