vhost: allow multiple listen sockets

Some platforms need two sockets with AF_INET and AF_INET6 to listen to both
protocols.

This patch changes the single listen socket each vhost could previously
handle to become an lws_dll2 and adapts the related code to handle them as
a linked-list rather than as a singleton.

The next patch adapts the listen / server code to create multiple listen
wsi for vhosts listening on multiple ip protocols.
14 files changed
tree: b99a8c4a0061949aac58d4d2da490e5c9b94d6d7
  1. cmake/
  2. contrib/
  3. doc-assets/
  4. include/
  5. lib/
  6. lwsws/
  7. minimal-examples/
  8. plugin-standalone/
  9. plugins/
  10. READMEs/
  11. scripts/
  12. test-apps/
  13. win32port/
  14. .gitignore
  15. .mailmap
  16. .sai.json
  17. bug_report.md
  18. changelog
  19. CMakeLists-implied-options.txt
  20. CMakeLists.txt
  21. component.mk
  22. Kconfig
  23. libwebsockets.dox
  24. LICENSE
  25. Makefile.projbuild
  26. README.md
README.md

CI status Coverity Scan Build Status CII Best Practices Codacy Badge Total alerts Language grade: C/C++ Language grade: JavaScript

Libwebsockets

Libwebsockets is a simple-to-use, MIT-license, pure C library providing client and server for http/1, http/2, websockets, MQTT and other protocols in a security-minded, lightweight, configurable, scalable and flexible way. It's easy to build and cross-build via cmake and is suitable for tasks from embedded RTOS through mass cloud serving.

80+ independent minimal examples for various scenarios, CC0-licensed (public domain) for cut-and-paste, allow you to get started quickly.

There are a lot of READMEs on a variety of topics.

We do a huge amount of CI testing per push, currently 495 builds on 27 platforms.

overview

News

Request for help on mp4 / h.264 / libav*

If you're interested in ws + h.264, there's a 80-90% complete minimal example that needs help with the mp4 container part, the lws v4l2 integration, MPJPG->h.264 transcoding and ws transport to MediaSource parts already work.

Take a look at the top two patches on _v4l2 branch and post on the mailing list or github to discuss if you can help.

v4.2 is released

See the changelog

Transition from master branch to main branch

The master->main branch transition happened several months ago, currently master is still around as a mirror of main. master branch will go away some time before the next release.

Support

This is the libwebsockets C library for lightweight websocket clients and servers. For support, visit

https://libwebsockets.org

and consider joining the project mailing list at

https://libwebsockets.org/mailman/listinfo/libwebsockets

You can get the latest version of the library from git:

Doxygen API docs for development: https://libwebsockets.org/lws-api-doc-master/html/index.html