From 4e67c4dfaa36264356ddc3484bc44d5e8a5aad12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ritzl?= Date: Wed, 10 Mar 2021 11:56:26 +0100 Subject: [PATCH] Add the port to the url for html5 builds (#35) Fixes #34 --- websocket/src/websocket.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/websocket/src/websocket.cpp b/websocket/src/websocket.cpp index aa65ff6..1330337 100644 --- a/websocket/src/websocket.cpp +++ b/websocket/src/websocket.cpp @@ -763,11 +763,23 @@ static dmExtension::Result OnUpdate(dmExtension::Params* params) #if defined(__EMSCRIPTEN__) char uri_buffer[dmURI::MAX_URI_LEN]; const char* uri; - if (conn->m_Url.m_Path[0] != '\0') { - dmSnPrintf(uri_buffer, sizeof(uri_buffer), "%s://%s%s", conn->m_Url.m_Scheme, conn->m_Url.m_Hostname, conn->m_Url.m_Path); - } else { + bool no_path = conn->m_Url.m_Path[0] == '\0'; + bool no_port = conn->m_Url.m_Port == -1; + if (no_path && no_port) + { dmSnPrintf(uri_buffer, sizeof(uri_buffer), "%s://%s", conn->m_Url.m_Scheme, conn->m_Url.m_Hostname); } + else if (no_port) + { + dmSnPrintf(uri_buffer, sizeof(uri_buffer), "%s://%s%s", conn->m_Url.m_Scheme, conn->m_Url.m_Hostname, conn->m_Url.m_Path); + } + else if (no_path) + { + dmSnPrintf(uri_buffer, sizeof(uri_buffer), "%s://%s:%d", conn->m_Url.m_Scheme, conn->m_Url.m_Hostname, conn->m_Url.m_Port); + } + else { + dmSnPrintf(uri_buffer, sizeof(uri_buffer), "%s://%s:%d%s", conn->m_Url.m_Scheme, conn->m_Url.m_Hostname, conn->m_Url.m_Port, conn->m_Url.m_Path); + } uri = uri_buffer; EmscriptenWebSocketCreateAttributes ws_attrs = {