Pass UserData when upgrading
This commit is contained in:
@@ -31,7 +31,7 @@ int main() {
|
|||||||
.upgrade = [](auto *res, auto *req, auto *context) {
|
.upgrade = [](auto *res, auto *req, auto *context) {
|
||||||
|
|
||||||
/* Immediate path */
|
/* Immediate path */
|
||||||
res->template upgrade<PerSocketData>(req->getHeader("sec-websocket-key"),
|
res->template upgrade<PerSocketData>({.something = 13}, req->getHeader("sec-websocket-key"),
|
||||||
req->getHeader("sec-websocket-protocol"),
|
req->getHeader("sec-websocket-protocol"),
|
||||||
req->getHeader("sec-websocket-extensions"),
|
req->getHeader("sec-websocket-extensions"),
|
||||||
context);
|
context);
|
||||||
@@ -69,7 +69,7 @@ int main() {
|
|||||||
if (!*aborted) {
|
if (!*aborted) {
|
||||||
|
|
||||||
// this should get some kind of ticket
|
// this should get some kind of ticket
|
||||||
res->template upgrade<PerSocketData>(secWebSocketKey,
|
res->template upgrade<PerSocketData>({}, secWebSocketKey,
|
||||||
secWebSocketProtocol,
|
secWebSocketProtocol,
|
||||||
secWebSocketExtensions,
|
secWebSocketExtensions,
|
||||||
context);
|
context);
|
||||||
|
|||||||
@@ -179,7 +179,7 @@ public:
|
|||||||
std::string_view secWebSocketProtocol = req->getHeader("sec-websocket-protocol");
|
std::string_view secWebSocketProtocol = req->getHeader("sec-websocket-protocol");
|
||||||
std::string_view secWebSocketExtensions = req->getHeader("sec-websocket-extensions");
|
std::string_view secWebSocketExtensions = req->getHeader("sec-websocket-extensions");
|
||||||
|
|
||||||
res->template upgrade<UserData>(secWebSocketKey, secWebSocketProtocol, secWebSocketExtensions, (struct us_socket_context_t *) webSocketContext);
|
res->template upgrade<UserData>({}, secWebSocketKey, secWebSocketProtocol, secWebSocketExtensions, (struct us_socket_context_t *) webSocketContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Emit open event and start the timeout */
|
/* Emit open event and start the timeout */
|
||||||
|
|||||||
+2
-2
@@ -171,7 +171,7 @@ private:
|
|||||||
public:
|
public:
|
||||||
/* This call is identical to end, but will never write content-length and is thus suitable for upgrades */
|
/* This call is identical to end, but will never write content-length and is thus suitable for upgrades */
|
||||||
template <typename UserData>
|
template <typename UserData>
|
||||||
void upgrade(std::string_view secWebSocketKey, std::string_view secWebSocketProtocol,
|
void upgrade(UserData &&userData, std::string_view secWebSocketKey, std::string_view secWebSocketProtocol,
|
||||||
std::string_view secWebSocketExtensions,
|
std::string_view secWebSocketExtensions,
|
||||||
struct us_socket_context_t *webSocketContext) {
|
struct us_socket_context_t *webSocketContext) {
|
||||||
|
|
||||||
@@ -266,7 +266,7 @@ public:
|
|||||||
us_socket_timeout(SSL, (us_socket_t *) webSocket, /*behavior.*/idleTimeout);
|
us_socket_timeout(SSL, (us_socket_t *) webSocket, /*behavior.*/idleTimeout);
|
||||||
|
|
||||||
/* Default construct the UserData right before calling open handler */
|
/* Default construct the UserData right before calling open handler */
|
||||||
new (webSocket->getUserData()) UserData;
|
new (webSocket->getUserData()) UserData(std::move(userData));
|
||||||
|
|
||||||
/* Emit open event and start the timeout */
|
/* Emit open event and start the timeout */
|
||||||
if (webSocketContextData->openHandler) {
|
if (webSocketContextData->openHandler) {
|
||||||
|
|||||||
Reference in New Issue
Block a user