[Libwebsockets] return values for callback_function
andy at warmcat.com
Thu Nov 19 17:18:30 CET 2015
On 19 November 2015 21:55:01 GMT+08:00, "Charles Prévot" <prevot at cervval.com> wrote:
>I have a quick question regarding the return values of callback. I get
>return 0 will continue and return -1 will close the connection, but in
>test-server.c you also use return 1 (when building http headers). I
>to find any reference on that, is there a difference with returning -1
For all the 'normal' callbacks the choice is just 0 = ok and nonzero = die. Originally <0 was die which is why -1 was popular.
>Also, the family of http_header functions are not documented either so
>not sure of the meaning of a non-zero return from their side...
These were introduced to hide whether the underlying connection is using http2 or not. Http2 deals with headers in a radically different, binary-coded way, with multiple different options for header encoding including huffman tables, and the codebook is dynamically updated during the kept-alive connection lifetime. In particular you can't just slide from headers to content in one packet with http2 as you could with http1.x.
Anyway for both http1.x and http2 connections, they will return nonzero in the case your requested header couldn't fit in the buffer you gave it.
More information about the Libwebsockets