<style type="text/css" scoped="">
                    blockquote, div.yahoo_quoted {
                        margin-left: 0 !important;
                        border-left:1px #715FFA solid !important;
                        padding-left:1ex !important;
                        background-color:white !important;
                    }
                </style>
                <div><div style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);"><span>Hi Andy,</span></div><div style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);"><span><br clear="none"></span></div><div dir="ltr"><span style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">I am having a subsequent question related to this. I observe that sometime even after returning -1 websocket connection is not closed.  My service loop is running in a separate thread. I notice this problem especially on Windows.</span></div><div style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);"></div><div id="yui_3_16_0_1_1447950099452_2748" style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);"> </div><div class="signature" id="yui_3_16_0_1_1447950099452_2747" style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">Regards: Shyam Sunder Goyal</div> <br clear="none"><div class="qtdSeparateBR" style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);"><br clear="none"><br clear="none"></div><div class="yQTDBase yqt0603691165" id="yqt02896" style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);"><div class="yahoo_quoted" style="display:block;"> <div style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, Sans-Serif;font-size:12px;"> <div style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, Sans-Serif;font-size:16px;"> <div dir="ltr"> On Thursday, 19 November 2015 9:48 PM, Andy Green <andy@warmcat.com> wrote:<br clear="none"></div>  <br clear="none"><br clear="none"> <div class="y_msg_container"><br clear="none"><br clear="none">On 19 November 2015 21:55:01 GMT+08:00, "Charles Prévot" <<a rel="nofollow" shape="rect" ymailto="mailto:prevot@cervval.com" target="_blank" href="javascript:return">prevot@cervval.com</a>> wrote:<br clear="none">>Hello,<br clear="none">>I have a quick question regarding the return values of callback. I get<br clear="none">>that<br clear="none">>return 0 will continue and return -1 will close the connection, but in<br clear="none">>test-server.c you also use return 1 (when building http headers). I<br clear="none">>failed<br clear="none">>to find any reference on that, is there a difference with returning -1<br clear="none">>?<br clear="none"><br clear="none">For all the 'normal' callbacks the choice is just 0 = ok and nonzero = die.  Originally <0 was die which is why -1 was popular.<br clear="none"><br clear="none">>Also, the family of http_header functions are not documented either so<br clear="none">>I'm<br clear="none">>not sure of the meaning of a non-zero return from their side...<br clear="none"><br clear="none">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.<br clear="none"><br clear="none">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.<br clear="none"><br clear="none">-Andy<div class="yqt9750740597" id="yqtfd32122"><br clear="none"><br clear="none">>Sincerely,<br clear="none"><br clear="none">_______________________________________________<br clear="none">Libwebsockets mailing list<br clear="none"><a rel="nofollow" shape="rect" ymailto="mailto:Libwebsockets@ml.libwebsockets.org" target="_blank" href="javascript:return">Libwebsockets@ml.libwebsockets.org</a><br clear="none"><a rel="nofollow" shape="rect" target="_blank" href="http://ml.libwebsockets.org/mailman/listinfo/libwebsockets"><a href="http://ml.libwebsockets.org/mailman/listinfo/libwebsockets" target="_blank">http://ml.libwebsockets.org/mailman/listinfo/libwebsockets</a></a><br clear="none"></div><br clear="none"><br clear="none"></div>  </div> </div>  </div></div></div>