<div dir="ltr"><div>Dear Andy,</div><div>         I`m trying to use the lwsws, but meet the following issue. </div><div>         system: Ubuntu 16.04</div><div><br></div><div>         case 1, Run lwsws on terminal, like, ./lwsws -d 127 -c "/home/develop/libwebsockets-master/etc/lwsws"  </div><div>         Result: work well!</div><div><br></div><div>         case 2, Run lwsws on eclipse (I use eclipse to debug the lws step by step) </div><div>         Result: not well.</div><div><br></div><div>         I have check the log:</div><div>         For the case 1, the log is:</div><div>lwsws[4871]: lws_uv_timeout_cb</div><div>lwsws[4871]: accepted new conn port 40540 on fd=17</div><div>lwsws[4871]: lws_get_or_create_peer: creating new peer</div><div>lwsws[4871]: _realloc: size 88: peer</div><div>lwsws[4871]: _realloc: size 664: new server wsi</div><div>lwsws[4871]: new wsi 0x1432590 joining vhost localhost1, tsi 0</div><div>lwsws[4871]: lwsi_set_state(0x1432590, 0x200)</div><div>lwsws[4871]: lws_adopt_descriptor_vhost: new wsi 0x1432590, sockfd 17</div><div>lwsws[4871]: __lws_set_timeout: 0x1432590: 20 secs</div><div>lwsws[4871]: lws_role_transition: 0x1432590: wsistate 0x20000015, ops h1</div><div>lwsws[4871]: new wsi wsistate 0x20000015</div><div>lwsws[4871]: __insert_wsi_socket_into_fds: 0x1432590: tsi=0, sock=17, pos-in-fds=2</div><div>lwsws[4871]: elops_io_uv: 0x1432590: 5</div><div><font color="#ff0000">lwsws[4871]: lws_header_table_attach: wsi 0x1432590: ah (nil) (tsi 0, count = 0) in</font></div><div><font color="#ff0000">lwsws[4871]: _realloc: size 960: ah struct</font></div><div><font color="#ff0000">lwsws[4871]: _realloc: size 4096: ah data</font></div><div>lwsws[4871]: _lws_create_ah: created ah 0x1432ad0 (size 4096): pool length 1</div><div>         </div><div>          For the case 2, the log is:</div><div>lwsws[4843]: accepted new conn port 40532 on fd=17</div><div>lwsws[4843]: lws_get_or_create_peer: creating new peer</div><div>lwsws[4843]: _realloc: size 88: peer</div><div>lwsws[4843]: _realloc: size 664: new server wsi</div><div>lwsws[4843]: new wsi 0x1a196d0 joining vhost localhost1, tsi 0</div><div>lwsws[4843]: lwsi_set_state(0x1a196d0, 0x200)</div><div>lwsws[4843]: lws_adopt_descriptor_vhost: new wsi 0x1a196d0, sockfd 17</div><div>lwsws[4843]: __lws_set_timeout: 0x1a196d0: 20 secs</div><div>lwsws[4843]: lws_role_transition: 0x1a196d0: wsistate 0x20000015, ops h1</div><div>lwsws[4843]: new wsi wsistate 0x20000015</div><div>lwsws[4843]: __insert_wsi_socket_into_fds: 0x1a196d0: tsi=0, sock=17, pos-in-fds=2</div><div>lwsws[4843]: elops_io_uv: 0x1a196d0: 5</div><div>lw<font color="#ff0000">sws[4843]: lws_header_table_attach: wsi 0x1a196d0: ah (nil) (tsi 0, count = 0) in</font></div><div><font color="#ff0000">lwsws[4843]: _lws_header_ensure_we_are_on_waiting_list: wsi: 0x1a196d0</font></div><div>lwsws[4843]: _lws_change_pollfd: wsi 0x1a196d0: fd 17 events 1 -> 0</div><div>lwsws[4843]: elops_io_uv: 0x1a196d0: 9</div><div>lwsws[4843]: lws_adopt_descriptor_vhost: waiting for ah</div><div>lwsws[4843]: rops_handle_POLLIN_listen: new wsi 0x1a196d0: wsistate 0x20000015, role_ops h1</div><div><br></div><div> The deferent is the line marked as red,<br></div><div><br></div><div> I checked the source code:</div><div><br></div><div>lws_header_table_attach(struct lws *wsi, int autoservice)</div><div>{</div><div><span style="white-space:pre">      </span>struct lws_context *context = wsi->context;</div><div><span style="white-space:pre">        </span>struct lws_context_per_thread *pt = &context->pt[(int)wsi->tsi];</div><div><span style="white-space:pre">    </span>struct lws_pollargs pa;</div><div><span style="white-space:pre">       </span>int n;</div><div><br></div><div><span style="white-space:pre">       </span>lwsl_info("%s: wsi %p: ah %p (tsi %d, count = %d) in\n", __func__,</div><div><span style="white-space:pre">          </span>  (void *)wsi, (void *)wsi->http.ah, wsi->tsi,</div><div><span style="white-space:pre">         </span>  pt->http.ah_count_in_use);</div><div><br></div><div><span style="white-space:pre">     </span>lws_pt_lock(pt, __func__);</div><div><br></div><div><span style="white-space:pre">   </span>/* if we are already bound to one, just clear it down */</div><div><span style="white-space:pre">      </span>if (wsi->http.ah) {</div><div><span style="white-space:pre">                </span>lwsl_info("%s: cleardown\n", __func__);</div><div><span style="white-space:pre">             </span>goto reset;</div><div><span style="white-space:pre">   </span>}</div><div><br></div><div><span style="white-space:pre">    </span><font color="#ff0000"><b>n = pt->http.ah_count_in_use == context->max_http_header_pool;</b></font></div><div>....</div><div><br></div><div>It seems that for case 2 the <span style="font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><font color="#000000" style=""><b>context->max_http_header_pool initialed to 0</b>.</font></span></div><div><font color="#000000">I modified the main.c of lwsws, and give a value to <b style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">max_http_header_pool.</b></font></div><div><font color="#000000">The issue is fixed.</font></div><div><font color="#000000"><br></font></div><div>Is this a bug or I have miss something?</div><div><br></div><div>Yours Chropin.</div><div><br></div><div><br></div></div>