summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2019-10-08 20:37:59 +0300
committerGeorge Hazan <ghazan@miranda.im>2019-10-08 20:37:59 +0300
commit6f8955cdc2e8bcdeaa15a06d0f1badf13d14cb5c (patch)
tree40bf8fd1196e87d66b412d07adfbca24195ba1f6 /src
parentbb3b89fd5d857d396050d02bc185d765760de6ff (diff)
first version of WA that connects
Diffstat (limited to 'src')
-rw-r--r--src/mir_app/src/mir_app.def2
-rw-r--r--src/mir_app/src/netlib_websocket.cpp9
2 files changed, 8 insertions, 3 deletions
diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def
index 21fcd8a36f..228fe4c0a6 100644
--- a/src/mir_app/src/mir_app.def
+++ b/src/mir_app/src/mir_app.def
@@ -718,4 +718,4 @@ _UnregisterSrmmLog@4 @806 NONAME
?GetType@CRtfLogWindow@@UAEHXZ @807 NONAME
_WebSocket_Send@12 @808 NONAME
_WebSocket_InitHeader@12 @809 NONAME
-_WebSocket_Connect@8 @810 NONAME
+_WebSocket_Connect@12 @810 NONAME
diff --git a/src/mir_app/src/netlib_websocket.cpp b/src/mir_app/src/netlib_websocket.cpp
index 64b5fda069..e7c67fe54f 100644
--- a/src/mir_app/src/netlib_websocket.cpp
+++ b/src/mir_app/src/netlib_websocket.cpp
@@ -27,7 +27,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "../../libs/zlib/src/zlib.h"
-MIR_APP_DLL(HNETLIBCONN) WebSocket_Connect(HNETLIBUSER nlu, const char *szHost)
+MIR_APP_DLL(HNETLIBCONN) WebSocket_Connect(HNETLIBUSER nlu, const char *szHost, NETLIBHTTPHEADER *pHeaders)
{
CMStringA tmpHost(szHost);
@@ -67,9 +67,14 @@ MIR_APP_DLL(HNETLIBCONN) WebSocket_Connect(HNETLIBUSER nlu, const char *szHost)
szBuf.AppendFormat("Pragma: no-cache\r\n");
szBuf.AppendFormat("Cache-Control: no-cache\r\n");
szBuf.AppendFormat("Connection: Upgrade\r\n");
- szBuf.AppendFormat("Sec-WebSocket-Key: KFShSwLlp4E6C7JZc5h4sg==\r\n");
szBuf.AppendFormat("Sec-WebSocket-Version: 13\r\n");
szBuf.AppendFormat("Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits\r\n");
+ if (pHeaders) {
+ while (pHeaders->szName != nullptr) {
+ szBuf.AppendFormat("%s: %s\r\n", pHeaders->szName, pHeaders->szValue);
+ pHeaders++;
+ }
+ }
szBuf.AppendFormat("\r\n");
if (Netlib_Send(res, szBuf, szBuf.GetLength(), MSG_DUMPASTEXT) == SOCKET_ERROR) {
Netlib_Logf(nlu, "Error establishing WebSocket connection to %s:%d, send failed", tmpHost.c_str(), conn.wPort);