A related issue appeared;
I'm using an "idle" websocket to wait for server side data to be sent at
any given time. I find the same kind of issue here, that the client must
wait for something else to happen on the socket before the handler is
called.
I made a patch that seems to work, but I don't know how correct/complete
this is:
(compared to d5004cb7eb181237db3f3b903326ece772049e6d)
diff --git a/mongoose.c b/mongoose.c
index 11d02c8..aa0a2ac 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -2478,8 +2478,11 @@ static int deliver_websocket_frame(struct connection
*conn) {
}
// Call the handler and remove frame from the iobuf
- if (conn->server->request_handler(&conn->mg_conn) == MG_CLIENT_CLOSE) {
- conn->ns_conn->flags |= NSF_FINISHED_SENDING_DATA;
+ int ret = conn->server->request_handler(&conn->mg_conn);
+ if (ret == MG_CLIENT_CLOSE) {
+ conn->flags |= CONN_SPOOL_DONE;
+ } else if (ret == MG_REQUEST_CALL_AGAIN) {
+ conn->flags |= CONN_LONG_RUNNING;
}
iobuf_remove(&conn->ns_conn->recv_iobuf, frame_len);
}
On Friday, 17 January 2014 20:25:39 UTC+1, Alexander Björck wrote:
>
> Thanks for the quick work :)
>
>
> On Fri, Jan 17, 2014 at 5:38 PM, Sergey Lyubka <[email protected]> wrote:
>
>> On Fri, Jan 17, 2014 at 4:33 PM, <[email protected]> wrote:
>>
>>> Yes, but my handler would not be called, unless some other socket has
>>> reads/writes, anyway?
>>>
>>
>> Got it, you're right.
>> I've moved handler call to make it trigger regardless:
>> https://github.com/cesanta/mongoose/commit/82ad9a073adee26cfb340be935b79e6c4ade3113
>>
>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "mongoose-users" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/mongoose-users/0vxElWO7B5w/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/mongoose-users.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>
--
You received this message because you are subscribed to the Google Groups
"mongoose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/mongoose-users.
For more options, visit https://groups.google.com/groups/opt_out.