closeOnBackpressure should block all further sending

This commit is contained in:
Alex Hultman
2022-11-06 06:21:44 +01:00
parent 43a1f307a0
commit d4ffeadd88
2 changed files with 8 additions and 2 deletions
+7 -1
View File
@@ -94,11 +94,17 @@ public:
(us_socket_context_t *) us_socket_context(SSL, (us_socket_t *) this)
);
/* If we already reached the max backpressure and started a deferred close, reject all sends */
if (webSocketContextData->closeOnBackpressureLimit == 2) {
return DROPPED;
}
/* Skip sending and report success if we are over the limit of maxBackpressure */
if (webSocketContextData->maxBackpressure && webSocketContextData->maxBackpressure < getBufferedAmount()) {
/* Also defer a close if we should */
if (webSocketContextData->closeOnBackpressureLimit) {
if (webSocketContextData->closeOnBackpressureLimit == 1) {
us_socket_shutdown_read(SSL, (us_socket_t *) this);
webSocketContextData->closeOnBackpressureLimit = 2;
}
return DROPPED;
}
+1 -1
View File
@@ -73,7 +73,7 @@ public:
/* There needs to be a maxBackpressure which will force close everything over that limit */
size_t maxBackpressure = 0;
bool closeOnBackpressureLimit;
unsigned char closeOnBackpressureLimit; /* 0, 1 (or 2 internally) */
bool resetIdleTimeoutOnSend;
bool sendPingsAutomatically;