lwip-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [patch #9525] httpd: add Websocket support


From: Benjamin Esenwein
Subject: [lwip-devel] [patch #9525] httpd: add Websocket support
Date: Fri, 6 May 2022 03:57:50 -0400 (EDT)

Follow-up Comment #17, patch #9525 (project lwip):

Hello Savannah Community,

In the last 6 months we (a team of 6 students from the Baden-Wuerttemberg
Cooperative State University) have been working on lwIP and on a successful
implementation of Sakari Kapanen’s WebSocket patch under lwIP.

In the process we had to clear some obstacles, which we want to outline
briefly at this point to help other developers who will probably have similar
problems.

*Our project goal was:*
Implement the WebSocket patch for lwIP on Windows 10. From this task we
derived the following subgoals:
•       Deploy lwIP on Windows 10
•       Rework the patch from Sakari Kapanen
•       Publish the implementation on GitHub/Savannah.

*lwIP on Windows 10*
This subgoal represented our first hurdle. The installation guides available
on the internet for lwIP on Windows are all outdated and not applicable to the
2.1.0 patch. More up-to-date installation guides exist mainly for lwIP under
Linux or for specific embedded systems.

After a brief exchange with Simon Goldschmidt over email in early 2022, we
were able to set up lwIP on Windows 10 with his input. As a result of this
process, we created an installation guide that we are hosting on GitHub for
all to see: *Installation Guide lwIP on Windows 10
<https://github.com/TINF20C/Team_4_Websockets-lwIP/wiki/lwIP-Windows-Installation-Guide>*.

*The patch by Sakari Kapanen*
In December 2017, Sakari Kapanen released a patch for lwIP that implements the
WebSocket protocol: *Patch #9525 <https://savannah.nongnu.org/patch/?9525>*.
This patch was not implemented in the main branch of lwIP because it contains
several bugs (e.g. missing software licenses for third party code, memory
leak).

Our project task was to customize the WebSocket patch and successfully
implement it in the Main Branch of lwIP.
The WebSocket patch by Sakari Kapanen does not work in our Windows development
environment due to that opening a websocket connection inevitably leads to a
"Run-Time Check Failure #2". This could be because of missing dependencies in
the Windows environment.

*Release of the implementation*
Due to the problems presented here, we decided to change the project goal as
we wanted to make our small contribution to the lwIP project. Instead of
implementing the WebSocket patch, we extended lwIP with an *OpenAPI
specification for REST APIs <https://github.com/LNI40/Implementation-View>*.
lwIP sends back a JSON string containing the lwIP server’s key data when
connecting to the lwIP server. This is displayed via the http web server
interface in the endpoint identification.

We hope that this small insight into our work of the last 6 months could make
a small contribution to the further development of lwIP.



    _______________________________________________________

Reply to this item at:

  <https://savannah.nongnu.org/patch/?9525>

_______________________________________________
  Message sent via Savannah
  https://savannah.nongnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]