xo-alloc/src/websock/WebsockUtil.cpp

155 lines
7.4 KiB
C++

/* @file WebsockUtil.cpp */
#include "WebsockUtil.hpp"
#define STRINGIFY(x) #x
namespace xo {
namespace web {
char const *
WebsockUtil::ws_callback_reason_descr(lws_callback_reasons x) {
#define CASE(x) case x: return STRINGIFY(x)
/* ubuntu build (available via github actions) has older version of libwebsockets.
* typically building (e.g. via nix) with libwebsockets 4.3.2
*
* see lws_config.h for version numbers vars
*/
switch (x) {
CASE(LWS_CALLBACK_PROTOCOL_INIT);
CASE(LWS_CALLBACK_PROTOCOL_DESTROY);
CASE(LWS_CALLBACK_WSI_CREATE);
CASE(LWS_CALLBACK_WSI_DESTROY);
CASE(LWS_CALLBACK_WSI_TX_CREDIT_GET);
CASE(LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS);
CASE(LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS);
CASE(LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION);
#ifdef OBSOLETE // at least on osx w/ nixpkgs dd868b7bd4d1407d607da0d1d9c5eca89132e2f7
CASE(LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY);
#endif
CASE(LWS_CALLBACK_SSL_INFO);
CASE(LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION);
CASE(LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED);
CASE(LWS_CALLBACK_HTTP);
CASE(LWS_CALLBACK_HTTP_BODY);
CASE(LWS_CALLBACK_HTTP_BODY_COMPLETION);
CASE(LWS_CALLBACK_HTTP_FILE_COMPLETION);
CASE(LWS_CALLBACK_HTTP_WRITEABLE);
CASE(LWS_CALLBACK_CLOSED_HTTP);
CASE(LWS_CALLBACK_FILTER_HTTP_CONNECTION);
CASE(LWS_CALLBACK_ADD_HEADERS);
CASE(LWS_CALLBACK_VERIFY_BASIC_AUTHORIZATION);
CASE(LWS_CALLBACK_CHECK_ACCESS_RIGHTS);
CASE(LWS_CALLBACK_PROCESS_HTML);
CASE(LWS_CALLBACK_HTTP_BIND_PROTOCOL);
CASE(LWS_CALLBACK_HTTP_DROP_PROTOCOL);
CASE(LWS_CALLBACK_HTTP_CONFIRM_UPGRADE);
CASE(LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP);
CASE(LWS_CALLBACK_CLOSED_CLIENT_HTTP);
CASE(LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ);
CASE(LWS_CALLBACK_RECEIVE_CLIENT_HTTP);
CASE(LWS_CALLBACK_COMPLETED_CLIENT_HTTP);
CASE(LWS_CALLBACK_CLIENT_HTTP_WRITEABLE);
#if ((LWS_LIBRARY_VERSION_MAJOR > 4) || (LWS_LIBRARY_VERSION_MAJOR == 4) && (LWS_LIBRARY_VERSION_MINOR >= 3))
CASE(LWS_CALLBACK_CLIENT_HTTP_REDIRECT);
#endif
CASE(LWS_CALLBACK_CLIENT_HTTP_BIND_PROTOCOL);
CASE(LWS_CALLBACK_CLIENT_HTTP_DROP_PROTOCOL);
CASE(LWS_CALLBACK_ESTABLISHED);
CASE(LWS_CALLBACK_CLOSED);
CASE(LWS_CALLBACK_SERVER_WRITEABLE);
CASE(LWS_CALLBACK_RECEIVE);
CASE(LWS_CALLBACK_RECEIVE_PONG);
CASE(LWS_CALLBACK_WS_PEER_INITIATED_CLOSE);
CASE(LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION);
CASE(LWS_CALLBACK_CONFIRM_EXTENSION_OKAY);
CASE(LWS_CALLBACK_WS_SERVER_BIND_PROTOCOL);
CASE(LWS_CALLBACK_WS_SERVER_DROP_PROTOCOL);
CASE(LWS_CALLBACK_CLIENT_CONNECTION_ERROR);
CASE(LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH);
CASE(LWS_CALLBACK_CLIENT_ESTABLISHED);
CASE(LWS_CALLBACK_CLIENT_CLOSED);
CASE(LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER);
CASE(LWS_CALLBACK_CLIENT_RECEIVE);
CASE(LWS_CALLBACK_CLIENT_RECEIVE_PONG);
CASE(LWS_CALLBACK_CLIENT_WRITEABLE);
CASE(LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED);
CASE(LWS_CALLBACK_WS_EXT_DEFAULTS);
CASE(LWS_CALLBACK_FILTER_NETWORK_CONNECTION);
CASE(LWS_CALLBACK_WS_CLIENT_BIND_PROTOCOL);
CASE(LWS_CALLBACK_WS_CLIENT_DROP_PROTOCOL);
CASE(LWS_CALLBACK_GET_THREAD_ID);
CASE(LWS_CALLBACK_ADD_POLL_FD);
CASE(LWS_CALLBACK_DEL_POLL_FD);
CASE(LWS_CALLBACK_CHANGE_MODE_POLL_FD);
CASE(LWS_CALLBACK_LOCK_POLL);
CASE(LWS_CALLBACK_UNLOCK_POLL);
CASE(LWS_CALLBACK_CGI);
CASE(LWS_CALLBACK_CGI_TERMINATED);
CASE(LWS_CALLBACK_CGI_STDIN_DATA);
CASE(LWS_CALLBACK_CGI_STDIN_COMPLETED);
CASE(LWS_CALLBACK_CGI_PROCESS_ATTACH);
CASE(LWS_CALLBACK_SESSION_INFO);
CASE(LWS_CALLBACK_GS_EVENT);
CASE(LWS_CALLBACK_HTTP_PMO);
CASE(LWS_CALLBACK_RAW_PROXY_CLI_RX);
CASE(LWS_CALLBACK_RAW_PROXY_SRV_RX);
CASE(LWS_CALLBACK_RAW_PROXY_CLI_CLOSE);
CASE(LWS_CALLBACK_RAW_PROXY_SRV_CLOSE);
CASE(LWS_CALLBACK_RAW_PROXY_CLI_WRITEABLE);
CASE(LWS_CALLBACK_RAW_PROXY_SRV_WRITEABLE);
CASE(LWS_CALLBACK_RAW_PROXY_CLI_ADOPT);
CASE(LWS_CALLBACK_RAW_PROXY_SRV_ADOPT);
CASE(LWS_CALLBACK_RAW_PROXY_CLI_BIND_PROTOCOL);
CASE(LWS_CALLBACK_RAW_PROXY_SRV_BIND_PROTOCOL);
CASE(LWS_CALLBACK_RAW_PROXY_CLI_DROP_PROTOCOL);
CASE(LWS_CALLBACK_RAW_PROXY_SRV_DROP_PROTOCOL);
CASE(LWS_CALLBACK_RAW_RX);
CASE(LWS_CALLBACK_RAW_CLOSE);
CASE(LWS_CALLBACK_RAW_WRITEABLE);
CASE(LWS_CALLBACK_RAW_ADOPT);
CASE(LWS_CALLBACK_RAW_CONNECTED);
CASE(LWS_CALLBACK_RAW_SKT_BIND_PROTOCOL);
CASE(LWS_CALLBACK_RAW_SKT_DROP_PROTOCOL);
CASE(LWS_CALLBACK_RAW_ADOPT_FILE);
CASE(LWS_CALLBACK_RAW_RX_FILE);
CASE(LWS_CALLBACK_RAW_WRITEABLE_FILE);
CASE(LWS_CALLBACK_RAW_CLOSE_FILE);
CASE(LWS_CALLBACK_RAW_FILE_BIND_PROTOCOL);
CASE(LWS_CALLBACK_RAW_FILE_DROP_PROTOCOL);
CASE(LWS_CALLBACK_TIMER);
CASE(LWS_CALLBACK_EVENT_WAIT_CANCELLED);
CASE(LWS_CALLBACK_CHILD_CLOSING);
#if ((LWS_LIBRARY_VERSION_MAJOR > 4) || (LWS_LIBRARY_VERSION_MAJOR == 4) && (LWS_LIBRARY_VERSION_MINOR >= 3))
CASE(LWS_CALLBACK_CONNECTING);
#endif
CASE(LWS_CALLBACK_VHOST_CERT_AGING);
CASE(LWS_CALLBACK_VHOST_CERT_UPDATE);
CASE(LWS_CALLBACK_MQTT_NEW_CLIENT_INSTANTIATED);
CASE(LWS_CALLBACK_MQTT_IDLE);
CASE(LWS_CALLBACK_MQTT_CLIENT_ESTABLISHED);
CASE(LWS_CALLBACK_MQTT_SUBSCRIBED);
CASE(LWS_CALLBACK_MQTT_CLIENT_WRITEABLE);
CASE(LWS_CALLBACK_MQTT_CLIENT_RX);
CASE(LWS_CALLBACK_MQTT_UNSUBSCRIBED);
CASE(LWS_CALLBACK_MQTT_DROP_PROTOCOL);
CASE(LWS_CALLBACK_MQTT_CLIENT_CLOSED);
CASE(LWS_CALLBACK_MQTT_ACK);
CASE(LWS_CALLBACK_MQTT_RESEND);
#if ((LWS_LIBRARY_VERSION_MAJOR > 4) || (LWS_LIBRARY_VERSION_MAJOR == 4) && (LWS_LIBRARY_VERSION_MINOR >= 3))
CASE(LWS_CALLBACK_MQTT_UNSUBSCRIBE_TIMEOUT);
CASE(LWS_CALLBACK_MQTT_SHADOW_TIMEOUT);
#endif
CASE(LWS_CALLBACK_USER);
}
#undef CASE
return "???";
} /*ws_callback_reason_descr*/
} /*namespace web*/
} /*namespace xo*/
/* end WebsockUtil.cpp */