[Libwebsockets] SegFault for Websocket Server on Multiple Network Interface

techi eth techieth at gmail.com
Sat Jul 15 11:57:16 CEST 2017


I was trying to understand lws code to create functionality for stopping
vhost from past few days. I know it will not be so easy without knowing
full overview of code flow & data structure.


I have just implemented small patch which will actually stop the server
attached to vhost based on interface However I am not sure I am doing right
way or not.I haven't tested completely patch so it is not advice to use by
anyone.


It will be helpful if you will give some hint for implementation so that it
will be easy & right direction for me to implement.

If you have any implementation done on same then please share i will be
able to test to confirm.



I have one doubt when I have created two server (One on each network
interface) why I am getting fds_count 3. (I was expecting fds_count 2 one
for each server)


Thanks

On Wed, Jul 12, 2017 at 4:09 PM, techi eth <techieth at gmail.com> wrote:

> I confirm with test that lws will have need individual interface server
> stop/start when IP or WiFi changes on a network interface. It will be
> listening on old IP only & never come on new IP.
>
> It will also not practical to use reload because other interface is
> working well & needs to be in listen as long as application wants’.
>
>
> I am using lws from long time & found it is very robust & most of the
> required interface is available for application use. If you think above is
> practical case than check for consideration.
> I have started looking lws code for required changes.
>
> On Wed, Jul 12, 2017 at 12:54 PM, Andy Green <andy at warmcat.com> wrote:
>
>>
>>
>> On 07/12/2017 03:14 PM, techi eth wrote:
>>
>>> I can think of below use cases.
>>>
>>> 1)On particular point application do not want listening  on one of
>>> interface because it doesn’t want to allow connection due to application
>>> need or security reason.
>>>
>>
>> You can just hang up on it.
>>
>> 2)One network interface was completely shut down as it is only required
>>> for initial configuration. Interface will never ever come up again.
>>>
>>
>> Then you will need to restart or 'reload' the whole server.
>>
>> 3)In the case of WiFi possibly we are switching to different WiFi so we
>>> will get altogether different network IP. In this case we need to stop
>>> current server & try again starting server once we get connected to other
>>> WiFi.
>>>
>>
>> Okay...
>>
>> 4)IP got changed due to dynamic IP allocation by router.
>>>
>>
>> Okay...
>>
>> Please correct me if it will justify the stop server case.
>>>
>>
>> Sure.  Feel free to send me a patch implementing it.
>>
>> 'reload' is quite interesting.... it's implemented in lwsws.  Basically
>> it drops the listen sockets on the existing serving process, starts a new
>> one with fresh listen sockets (bound again to whatever), but leaves the old
>> one server up until there are no connections left.  When the last
>> connection drops, the old server instance exits.
>>
>> -Andy
>>
>> On Wed, Jul 12, 2017 at 12:26 PM, Andy Green <andy at warmcat.com <mailto:
>>> andy at warmcat.com>> wrote:
>>>
>>>
>>>
>>>     On 07/12/2017 02:45 PM, techi eth wrote:
>>>
>>>         Thanks for confirmation.
>>>         I can see from test also it will be two socket
>>>         lws_get_socket_fd(wsi) will confirm the same.
>>>         If it will two listen socket which means two websocket server.
>>>         Is their any way i can force stop once server listening or both
>>>         due to application need ?
>>>
>>>
>>>     This is the third time you ask the same thing.
>>>
>>>     No.
>>>
>>>
>>>     Can you explain why you think you need to stop the vhost listening?
>>>
>>>     -Andy
>>>
>>>
>>>
>>>         On Wed, Jul 12, 2017 at 11:41 AM, Andy Green <andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>> wrote:
>>>
>>>
>>>
>>>              On July 12, 2017 2:05:02 PM GMT+08:00, techi eth
>>>         <techieth at gmail.com <mailto:techieth at gmail.com>
>>>              <mailto:techieth at gmail.com <mailto:techieth at gmail.com>>>
>>> wrote:
>>>              >Sorry but I am bit confuse from your single socket
>>> statement.
>>>              >
>>>              >Here I have two IP address (Due to two different network
>>>         interface) so
>>>              >I
>>>              >think there should be two socket however if vhost concept
>>>         is based on
>>>              >single socket working on port sharing then I think this
>>>         may work.
>>>
>>>              I think it will indeed be two listen sockets then, each
>>>         bound to one
>>>              ip or interface.
>>>
>>>              Typically vhosts are all piled on the same listen socket +
>>>         port.
>>>
>>>              >I am not sure how it will behave when concurrent
>>>         read/write happen on
>>>              >single socket by the multiple client from multiple network
>>>         at same
>>>              >time.
>>>
>>>              There is no problem with it.  By default lws binds to all
>>>         interfaces
>>>              at the port (with one socket), this appears as 0.0.0.0
>>> listen
>>>              address in netstat.  So it is easy to confirm.
>>>
>>>              >
>>>              >If network connection go down (I have rejected connection
>>>         & callback
>>>              >closed
>>>              >) & up again shall i need to create vhost again ?
>>>
>>>              No.
>>>
>>>              -Andy
>>>
>>>               >
>>>               >Thanks
>>>               >
>>>               >On Tue, Jul 11, 2017 at 4:48 PM, Andy Green
>>>         <andy at warmcat.com <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>> wrote:
>>>               >
>>>               >>
>>>               >>
>>>               >> On 07/11/2017 07:05 PM, techi eth wrote:
>>>               >>
>>>               >>> Thanks for your input.
>>>               >>>
>>>               >>> On rejecting connection in callback will cleanup all
>>> the
>>>              resources &
>>>               >>> close listening socket ?
>>>               >>>
>>>               >>
>>>               >> No.  It will close the connection.
>>>               >>
>>>               >> If you want to add the capability to dynamically remove
>>>         vhosts, by
>>>               >all
>>>               >> means, send me a patch.
>>>               >>
>>>               >> Is there any function available in lws  like
>>>               >_/context/_destroy(),which
>>>               >>> will call from application to do the job ?
>>>               >>>
>>>               >>
>>>               >> You seem a bit confused about this listen socket
>>> business.
>>>               >>
>>>               >> If both vhosts listen on :443, there is only ONE listen
>>>         socket open
>>>               >on
>>>               >> :443.  If both vhosts opened their own listen socket,
>>>         how would the
>>>               >tcp
>>>               >> layer know which vhost socket should get the
>>>         connection?  It would
>>>               >have to
>>>               >> decide before we could fetch headers or whatever.  It
>>>         couldn't work.
>>>               >>
>>>               >> If you close the single shared listen socket, no vhost
>>>         can receive
>>>               >> anything.
>>>               >>
>>>               >> When the secure connection comes, it uses a TLS trick
>>>         called SNI to
>>>               >get
>>>               >> the hostname the client was using to connect before the
>>>         secure
>>>              tunnel
>>>               >is
>>>               >> set up.  From that, it decides which vhost he was
>>>         trying to connect
>>>               >to,
>>>               >> sets up the TLS tunnel using the correct vhost's
>>>         certificates, and
>>>               >binds
>>>               >> the connection to the right vhost.
>>>               >>
>>>               >> If you want one of the vhosts to start rejecting
>>>         connections,
>>>              you can
>>>               >use
>>>               >> lws_get_vhost(wsi) once the wsi has bound to a
>>>         particular vhost and
>>>               >act
>>>               >> differently if it is the 'down' vhost the wsi is bound
>>> to.
>>>               >>
>>>               >> -Andy
>>>               >>
>>>               >> On Tue, Jul 11, 2017 at 3:02 PM, Andy Green
>>>         <andy at warmcat.com <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               ><mailto:
>>>               >>> andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>> wrote:
>>>               >>>
>>>               >>>
>>>               >>>
>>>               >>>     On 07/11/2017 05:25 PM, techi eth wrote:
>>>               >>>
>>>               >>>         Hi,
>>>               >>>
>>>               >>>         Now i am able to run both the SSL server.
>>>         Thanks for input.
>>>               >>>         Could you please check attached file & let me
>>>         know i am
>>>               >right in
>>>               >>>         using libwebsocket.
>>>               >>>
>>>               >>>
>>>               >>>     I don't have time to look at users' code.  Unless
>>>         I feel I owe
>>>               >them
>>>               >>>     for contributions, mowing my lawn or whatever.
>>>               >>>
>>>               >>>         I would just like to know how to stop one
>>>         server listening
>>>               >on
>>>               >>> vhost.
>>>               >>>
>>>               >>>
>>>               >>>     I assume you want to do it dynamically... the
>>>         closest you
>>>              can do
>>>               >>>     easily is reject the connection in an early
>>> callback.
>>>               >>>
>>>               >>>     If you handle the http callback, you can also have
>>>         it decide to
>>>               >>>     respond with a redirect or a 500 page or whatever.
>>>               >>>
>>>               >>>     -Andy
>>>               >>>
>>>               >>>         Thanks
>>>               >>>
>>>               >>>         On Mon, Jul 10, 2017 at 3:27 PM, techi eth
>>>               ><techieth at gmail.com <mailto:techieth at gmail.com>
>>>         <mailto:techieth at gmail.com <mailto:techieth at gmail.com>>
>>>               >>>         <mailto:techieth at gmail.com
>>>         <mailto:techieth at gmail.com> <mailto:techieth at gmail.com
>>>         <mailto:techieth at gmail.com>>>
>>>              <mailto:techieth at gmail.com <mailto:techieth at gmail.com>
>>>         <mailto:techieth at gmail.com <mailto:techieth at gmail.com>>
>>>               >>>         <mailto:techieth at gmail.com
>>>         <mailto:techieth at gmail.com>
>>>              <mailto:techieth at gmail.com <mailto:techieth at gmail.com>>>>>
>>>         wrote:
>>>               >>>
>>>               >>>              I have tried test as suggested by you now
>>>         I don’t see
>>>               >>> segfault
>>>               >>>              anymore however I am not able to connect
>>>         over server.
>>>               >>>
>>>               >>>              Could you please check attached test code
>>> &
>>>              detaild lws
>>>               >log
>>>               >>>         & give
>>>               >>>              me hint what is wrong in code.
>>>               >>>
>>>               >>>              Thanks for your input.
>>>               >>>
>>>               >>>              On Sat, Jul 8, 2017 at 4:28 PM, Andy Green
>>>               >>>         <andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>
>>>               >>>              <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>>>
>>>               >wrote:
>>>               >>>
>>>               >>>
>>>               >>>
>>>               >>>                  On 07/08/2017 06:51 PM, techi eth
>>> wrote:
>>>               >>>
>>>               >>>                      Thanks for your input.
>>>               >>>                      Having two context is not right
>>>         or technically
>>>               >>>         complex ?
>>>               >>>
>>>               >>>                      I was running two server without
>>>         SSL mode from
>>>               >past
>>>               >>>         1 month
>>>               >>>                      & it is working fine with two
>>>         context.
>>>               >>>
>>>               >>>
>>>               >>>                  Well... if you want two contexts you
>>>         better fix
>>>               >your
>>>               >>>         segfault.         You're always free to do
>>>         what you prefer
>>>               >(and
>>>               >>>         I am free to
>>>               >>>                  ignore your problems with it).
>>>               >>>
>>>               >>>                  From:
>>>               >>>
>>>               >>>                    - the POV SNI won't work sharing
>>>         port 443,
>>>               >because
>>>               >>>         the two
>>>               >>>                  vhosts you created by having two
>>>         contexts don't
>>>               >know
>>>               >>>         about each
>>>               >>>                  other
>>>               >>>
>>>               >>>                    - the POV you only have one set of
>>>         fds in your
>>>               >>>         process, the
>>>               >>>                  context holds a lookup table for all
>>>         of them
>>>               >>>
>>>               >>>                    - the POV you only need to service
>>>         (ie, wait in
>>>               >poll
>>>               >>>         or epoll)
>>>               >>>                  for one set of fds, not have an idle
>>>         context
>>>               >increase
>>>               >>> your
>>>               >>>                  service latency on handling service
>>>         for an active
>>>               >>>         context every time
>>>               >>>
>>>               >>>                  ...you should have one context and
>>>         two vhosts.
>>>               >>>
>>>               >>>                  That's literally what the vhosts are
>>>         for.  It's
>>>               >easy to
>>>               >>>         do, and
>>>               >>>                  from lws perspective "the right
>>> thing".
>>>               >>>
>>>               >>>                  -Andy
>>>               >>>
>>>               >>>                      On Sat, Jul 8, 2017 at 3:59 PM,
>>>         Andy Green
>>>               >>>         <andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>
>>>               >>>                      <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               ><mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>
>>>               >>>                      <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>>>>>
>>>              wrote:
>>>               >>>
>>>               >>>
>>>               >>>
>>>               >>>                           On 07/08/2017 06:12 PM,
>>>         techi eth wrote:
>>>               >>>
>>>               >>>                               It is with two
>>>         context.One context
>>>               >each
>>>               >>>         for one
>>>               >>>                      network interface.
>>>               >>>
>>>               >>>
>>>               >>>                           I can suggest you don't do
>>> that.
>>>               >>>
>>>               >>>                           Let's leave aside how I am
>>>         supposed to
>>>               >guess
>>>               >>>         what you
>>>               >>>                      have done to
>>>               >>>                           service both.
>>>               >>>
>>>               >>>                           The network interface to
>>>         bind to is an
>>>               >>>         attribute of the
>>>               >>>                      vhost, not
>>>               >>>                           the context.
>>>               >>>
>>>               >>>                           By default, for
>>>         compatibility lws creates
>>>               >you
>>>               >>>         one vhost
>>>               >>>                      called
>>>               >>>                           "default" when you create
>>>         the context.
>>>               >>>
>>>               >>>                           If you set the option bit
>>>               >>>                      LWS_SERVER_OPTION_EXPLICIT_VHOSTS
>>>         when you
>>>               >>>                           create the context, creating
>>>         the context
>>>               >does
>>>               >>> not
>>>               >>>                      create any vhosts.
>>>               >>>
>>>               >>>                           Instead you can use the same
>>>               >>>         lws_context_creation_info
>>>               >>>                      struct to
>>>               >>>                           create as many vhosts as you
>>>         want and
>>>               >attach
>>>               >>>         them to
>>>               >>>                      the context
>>>               >>>                           yourself, using
>>>               >>>
>>>               >>>                           LWS_EXTERN LWS_VISIBLE
>>>         struct lws_vhost *
>>>               >>>                           lws_create_vhost(struct
>>>         lws_context
>>>               >*context,
>>>               >>>                                             struct
>>>               >>>         lws_context_creation_info *info);
>>>               >>>
>>>               >>>                           You can mostly re-use your
>>>         existing info
>>>               >struct
>>>               >>>                      contents, changing
>>>               >>>                           .iface and .name to reflect
>>>         the vhost
>>>               >hostname
>>>               >>>         (ie,
>>>               >>>                      "warmcat.com <http://warmcat.com>
>>>         <http://warmcat.com>
>>>              <http://warmcat.com> <
>>>               >>> http://warmcat.com>
>>>               >>>                           <http://warmcat.com>" if
>>> people
>>>              reached it
>>>               >by
>>>               >>>         typing
>>>               >>>                      "warmcat.com <http://warmcat.com>
>>>         <http://warmcat.com>
>>>              <http://warmcat.com> <
>>>               >>> http://warmcat.com>
>>>               >>>                           <http://warmcat.com>" in
>>>         their browser).
>>>               >And
>>>               >>>         changing the
>>>               >>>                           protocols, mounts etc
>>>         according to what
>>>               >you
>>>               >>>         want to be
>>>               >>>                      available.
>>>               >>>
>>>               >>>                           Both can be on port 443, lws
>>>         will use SNI
>>>               >to
>>>               >>>         match the
>>>               >>>                      hostname the
>>>               >>>                           client had used to reach it
>>>         to decide
>>>               >which
>>>               >>>         vhost to
>>>               >>>                      give them.
>>>               >>>
>>>               >>>                           Each vhost can be told to
>>>         use different
>>>               >SSL
>>>               >>>         certs and
>>>               >>>                      keys.  Lws
>>>               >>>                           will sort it out.
>>>               >>>
>>>               >>>                           So... one context.  Two
>>> vhosts.
>>>               >>>
>>>               >>> https://warmcat.com and https://libwebsockets.org are
>>> two
>>>               >>>                      vhosts on
>>>               >>>                           the same lws server using
>>>         this method.
>>>               >>>
>>>               >>>                           -Andy
>>>               >>>
>>>               >>>
>>>               >>>
>>>               >>>                               On Sat, Jul 8, 2017 at
>>>         3:31 PM, Andy
>>>               >Green
>>>               >>>                      <andy at warmcat.com
>>>         <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>>
>>>               >>>                               <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>>>>
>>>               >>>                      <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               ><mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>>
>>>               >>>                               <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>>
>>>               >>>                      <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>>>>>>
>>>              wrote:
>>>               >>>
>>>               >>>
>>>               >>>
>>>               >>>                                    On 07/08/2017 05:44
>>> PM,
>>>              techi eth
>>>               >>> wrote:
>>>               >>>
>>>               >>>                                        OpenSSL version
>>>         : 1.0.2h
>>>               >>>
>>>               >>>
>>>               >>>                                    Supposedly the new
>>>         OpenSSL
>>>              init /
>>>               >>>         destroy api
>>>               >>>                      was introduced in
>>>               >>>                                    1.0.2g, so it
>>>         shouldn't be the
>>>               >problem.
>>>               >>>
>>>               >>>                                        I have tried
>>>         libwebsocket
>>>               >from
>>>               >>>         master & i
>>>               >>>                      am getting same
>>>               >>>                                        error.I will do
>>>         the setup to
>>>               >get
>>>               >>>         the trace.
>>>               >>>                                        Do you confirm
>>>         libwebsokcet
>>>               >works
>>>               >>>         in above
>>>               >>>                      mentioned
>>>               >>>                               use case ?
>>>               >>>
>>>               >>>
>>>               >>>                                    I have no idea what
>>>         your use
>>>              case
>>>               >>>         looks like.
>>>               >>>
>>>               >>>                                    Two contexts?  One
>>>         context?
>>>               >>>
>>>               >>>                                        Is their any
>>>         running sample
>>>               >then
>>>               >>>         it would
>>>               >>>                      be good for
>>>               >>>                               me to test ?
>>>               >>>
>>>               >>>
>>>               >>>                                    Find out the line
>>>         of source and
>>>               >>>         reason for the
>>>               >>>                      segfault.  "A
>>>               >>>                                    segfault" by itself
>>>         is like
>>>               >saying
>>>               >>>         "an error"
>>>               >>>                      or "a
>>>               >>>                               problem", it can
>>>               >>>                                    mean anything.
>>>    Related to lws,
>>>               >>>         related to
>>>               >>>                      your code,
>>>               >>>                               something else...
>>>               >>>
>>>               >>>                                    -Andy
>>>               >>>
>>>               >>>
>>>               >>>                                        On Sat, Jul 8,
>>>         2017 at 2:51
>>>               >PM,
>>>               >>>         Andy Green
>>>               >>>                               <andy at warmcat.com
>>>         <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>>>
>>>               >>>                      <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               ><mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>>>
>>>               >>>                                               <mailto:
>>> andy at warmcat.com <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>>
>>>               >>>                      <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               ><mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>
>>>               >>>                      <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               ><mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               >>> >>>>
>>>               >>>                               <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>>>
>>>               >>>                      <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               ><mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>>>
>>>               >>>
>>>               >>>                                               <mailto:
>>> andy at warmcat.com <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>>
>>>               >>>                      <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               ><mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>>
>>>               >>>         <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com> <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>>
>>>               >>>                      <mailto:andy at warmcat.com
>>>         <mailto:andy at warmcat.com>
>>>              <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>               ><mailto:andy at warmcat.com <mailto:andy at warmcat.com>
>>>         <mailto:andy at warmcat.com <mailto:andy at warmcat.com>>
>>>
>>>               >>> >>>>>>
>>>               >>>
>>>               >>>
>>>               >>>                               wrote:
>>>               >>>
>>>               >>>
>>>               >>>
>>>               >>>                                             On
>>>         07/08/2017 05:16 PM,
>>>               >>>         techi eth wrote:
>>>               >>>
>>>               >>>                                                 I was
>>>         facing
>>>               >segfault
>>>               >>>         over below
>>>               >>>                      use case with
>>>               >>>                                        libwebsocket.
>>>               >>>
>>>               >>>
>>>               >>>                                             It's
>>>         usually of
>>>              zero use
>>>               >to
>>>               >>> hear
>>>               >>>                      there is a segfault
>>>               >>>                                        without getting
>>>               >>>                                             a
>>> backtrace.
>>>               >>>
>>>               >>>                                                 I have
>>>         two network
>>>               >>>         interface & i
>>>               >>>                      am trying to
>>>               >>>                               run SSL
>>>               >>>                                        server on
>>>               >>>                                                 port
>>>         443 for each
>>>               >network
>>>               >>>                      interface.When i run
>>>               >>>                                        independently
>>>               >>>                                                 each
>>>         server by
>>>               >separate
>>>               >>>         programme
>>>               >>>                      for each it
>>>               >>>                               works
>>>               >>>                                        great but
>>>               >>>                                                 when i
>>>         run both in
>>>               >same
>>>               >>>         programme
>>>               >>>                      one is
>>>               >>>                               giving segfault.
>>>               >>>
>>>               >>>
>>>               >>>                                             Is this by
>>>         any remote
>>>               >chance
>>>               >>>         with two
>>>               >>>                      contexts?
>>>               >>>
>>>               >>>                                             What
>>>         version is your
>>>               >OpenSSL?
>>>               >>>
>>>               >>>                                             -Andy
>>>               >>>
>>>               >>>                                                 Last
>>>         line i am
>>>               >getting is
>>>               >>>                      (inserted SSL accept
>>>               >>>                               into
>>>               >>>                                        fds, trying
>>>               >>>
>>>  SSL_accept).
>>>               >>>
>>>               >>>                                                 Note :
>>>         Same
>>>               >programme
>>>               >>>         when i run
>>>               >>>                      without SSL
>>>               >>>                               it works
>>>               >>>                                        great.
>>>               >>>
>>>               >>>
>>>               >>>
>>>               >>>
>>>               >>>
>>>               >>> _______________________________________________
>>>               >>>
>>>  Libwebsockets
>>>               >mailing list
>>>               >>> Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>
>>>               >>>         <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>>
>>>               >>>                             <mailto:
>>> Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>
>>>               >>>         <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>>>
>>>               >>>
>>>               ><mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>
>>>               >>>         <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>>
>>>               >>>                             <mailto:
>>> Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>
>>>               >>>         <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>>>>
>>>               >>>                                               <mailto:
>>>               >>> Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>
>>>               >>>         <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>>
>>>               >>>                             <mailto:
>>> Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>
>>>               >>>         <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>>>
>>>               >>>
>>>               ><mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>
>>>               >>>         <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>>
>>>               >>>                             <mailto:
>>> Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>
>>>               >>>         <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>>>>>
>>>               >>>
>>>               ><mailto:
>>>               >>> Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>
>>>               >>>         <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>
>>>              <mailto:Libwebsockets at ml.libwebsockets.org
>>>         <mailto:Libwebsockets at ml.libwebsockets.org>>>
>>>               >>>                             <mailto:
>>> Libwebsockets at ml.libwebsockets.org
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://libwebsockets.org/pipermail/libwebsockets/attachments/20170715/0ca3bc3a/attachment-0002.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libwebsockets_vhost_destroy.patch
Type: application/octet-stream
Size: 2886 bytes
Desc: not available
URL: <https://libwebsockets.org/pipermail/libwebsockets/attachments/20170715/0ca3bc3a/attachment-0002.obj>


More information about the Libwebsockets mailing list