<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/4.2.2">
</HEAD>
<BODY LINK="#0000ff">
Hello there Rahul,<BR>
<BR>
Thanks for reporting. Now the issue is fixed in a consistent way at the SVN 217 and<BR>
will be delivered on next stable release:<BR>
<BR>
<A HREF="https://dolphin.aspl.es/svn/publico/nopoll/">https://dolphin.aspl.es/svn/publico/nopoll/</A><BR>
<BR>
Now, it will work for your case without any additional effort. Now I'm on it, I've updated<BR>
the API to allow handling these configurations and to allow the listener to select which<BR>
protocol is supported or take any other actions, including closing the connection, when<BR>
the protocol requested by the client isn't supported:<BR>
<BR>
- nopoll_conn_get_accepted_protocol  (listener and client)<BR>
- nopoll_conn_get_requested_protocol (listener)<BR>
- nopoll_conn_set_accepted_protocol (listener)<BR>
<BR>
Added regression test (test_27) to reproduce bug reported, check fix introduced and test<BR>
new API symbols added. <BR>
<BR>
Again, thanks for reporting ...and any twitter, web, etc, reference to our noPoll site <BR>
<A HREF="http://www.aspl.es/nopollis">http://www.aspl.es/nopoll</A> is more than welcome,<BR>
<BR>
Best Regards,<BR>
<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
    Hello,<BR>
    <BR>
     <BR>
    <BR>
    After struggling with libwebsocket library for some days I switched to using the noPoll<BR>
    <BR>
    library. So far things are going really well except I faced one issue very early on:<BR>
    <BR>
     <BR>
    <BR>
    I am using the library to make a client connection to a websocket server.<BR>
    <BR>
    After connecting to a websocket server, the connection is rejected. I see the following error<BR>
    <BR>
    after enabling debug log.<BR>
    <BR>
     <BR>
    <BR>
    (proc 23267): (critical) nopoll_conn.c:1858 (nopoll_conn_check_mime_header_repeated) <BR>
    <BR>
    Provided header Sec-WebSocket-Protocol twice, closing connection<BR>
    <BR>
     <BR>
    <BR>
    The code is using the API somewhat like this:<BR>
    <BR>
     <BR>
    <BR>
    noPollConn * connection  = nopoll_conn_new(m_pContext, "127.0.0.1", "8080", NULL,<BR>
    <BR>
                    "/", "some-protocol", "some-origin");<BR>
    <BR>
                                                                    <BR>
    <BR>
    Note that we are setting the "protocols" parameter. It seems the server responds with the<BR>
    <BR>
    same protocol string set in the header for Sec-WebSocket-Protocol<BR>
    <BR>
    but the library rejects this for some reason and closes the connection.<BR>
    <BR>
     <BR>
    <BR>
    I am not sure if I am doing something wrong in how the library is used<BR>
    <BR>
    or there is some other problem. Please advise.<BR>
    <BR>
    According to the specification the client can send a list of supported protocols<BR>
    <BR>
    and the server can respond with a subset. In our case we only need to use one protocol.<BR>
    <BR>
     <BR>
    <BR>
    Anyway, after modifying the library (see below) I was able to make progress<BR>
    <BR>
    with our implementation and have not seen any other issue yet.<BR>
    <BR>
     <BR>
    <BR>
    To 'fix' the above issue I had to comment out two lines at line 2192 in nopoll_conn.c:<BR>
    <BR>
     <BR>
    <BR>
    #if 0<BR>
    <BR>
            if (nopoll_conn_check_mime_header_repeated (conn, header, value, "Sec-WebSocket-Protocol", conn->protocols))<BR>
    <BR>
                    return 0;<BR>
    <BR>
    #endif<BR>
    <BR>
     <BR>
    <BR>
    Also I had to later fix an associated memory leak:<BR>
    <BR>
     <BR>
    <BR>
    else if (strcasecmp (header, "Sec-Websocket-Protocol") == 0) {<BR>
    <BR>
            nopoll_free (conn->protocols);<BR>
    <BR>
            conn->protocols = value;<BR>
    <BR>
    }<BR>
    <BR>
     <BR>
    <BR>
    This may not be the correct fix but allowed me to proceed with the rest of<BR>
    <BR>
    the implementation.<BR>
    <BR>
     <BR>
    <BR>
    Thanks,<BR>
    <BR>
     <BR>
    <BR>
    Rahul<BR>
    <BR>
     <BR>
    <BR>
    Rahul Kale<BR>
    <BR>
     <BR>
    <BR>
    IP Video Systems<BR>
    <BR>
    Barco, Inc<BR>
    <BR>
    1287 Anvilwood Ave<BR>
    <BR>
    Sunnyvale, CA  94089<BR>
    <BR>
     <BR>
    <BR>
    Tel  +1 408 400 4238<BR>
    <BR>
     <BR>
    <BR>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    This message is subject to the following terms and conditions: <A HREF="http://www.barco.com/en/maildisclaimer">MAIL DISCLAIMER</A> 
<PRE>
_______________________________________________
noPoll mailing list
<A HREF="mailto:noPoll@lists.aspl.es">noPoll@lists.aspl.es</A>
<A HREF="http://lists.aspl.es/cgi-bin/mailman/listinfo/nopoll">http://lists.aspl.es/cgi-bin/mailman/listinfo/nopoll</A>
</PRE>
</BLOCKQUOTE>
<BR>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
<PRE>
-- 
Francis Brosnan Blázquez <<A HREF="mailto:francis@aspl.es">francis@aspl.es</A>>
ASPL
91 134 14 22 - 91 134 14 45 - 91 116 07 57

AVISO LEGAL
 
En virtud de lo dispuesto en la Ley Orgánica 15/1999, de 13 de
diciembre, de Protección de Datos de Carácter Personal, le informamos de
que sus datos de carácter personal, recogidos de fuentes accesibles al
público o datos que usted nos ha facilitado previamente, proceden de
bases de datos propiedad de Advanced Software Production Line, S.L.
(ASPL).
 
ASPL garantiza que los datos serán tratados con la finalidad de mantener
las oportunas relaciones comerciales o promocionales con usted o la
entidad que usted representa. No obstante, usted puede ejercitar sus
derechos de acceso, rectificación, cancelación y oposición dispuestos en
la mencionada Ley Orgánica, notificándolo por escrito a ASPL -
Protección Datos, C/Antonio Suárez 10 A-102, 28802, Alcalá de Henares
(Madrid).



</PRE>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>