mirror of
https://github.com/aseprite/aseprite.git
synced 2024-10-04 05:50:15 +00:00
[lua] Show more specific websocket errors
This commit is contained in:
parent
67a9c2fe0d
commit
586b2493f9
@ -127,6 +127,11 @@ int WebSocket_gc(lua_State* L)
|
|||||||
int WebSocket_sendText(lua_State* L)
|
int WebSocket_sendText(lua_State* L)
|
||||||
{
|
{
|
||||||
auto ws = get_ptr<ix::WebSocket>(L, 1);
|
auto ws = get_ptr<ix::WebSocket>(L, 1);
|
||||||
|
|
||||||
|
if (ws->getReadyState() != ix::ReadyState::Open) {
|
||||||
|
return luaL_error(L, "Websocket is not connected, can't send text");
|
||||||
|
}
|
||||||
|
|
||||||
std::stringstream data;
|
std::stringstream data;
|
||||||
int argc = lua_gettop(L);
|
int argc = lua_gettop(L);
|
||||||
|
|
||||||
@ -137,8 +142,7 @@ int WebSocket_sendText(lua_State* L)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!ws->sendText(data.str()).success) {
|
if (!ws->sendText(data.str()).success) {
|
||||||
lua_pushstring(L, "Websocket error");
|
return luaL_error(L, "Websocket failed to send text");
|
||||||
lua_error(L);
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -146,6 +150,11 @@ int WebSocket_sendText(lua_State* L)
|
|||||||
int WebSocket_sendBinary(lua_State* L)
|
int WebSocket_sendBinary(lua_State* L)
|
||||||
{
|
{
|
||||||
auto ws = get_ptr<ix::WebSocket>(L, 1);
|
auto ws = get_ptr<ix::WebSocket>(L, 1);
|
||||||
|
|
||||||
|
if (ws->getReadyState() != ix::ReadyState::Open) {
|
||||||
|
return luaL_error(L, "Websocket is not connected, can't send data");
|
||||||
|
}
|
||||||
|
|
||||||
std::stringstream data;
|
std::stringstream data;
|
||||||
int argc = lua_gettop(L);
|
int argc = lua_gettop(L);
|
||||||
|
|
||||||
@ -154,10 +163,9 @@ int WebSocket_sendBinary(lua_State* L)
|
|||||||
const char* buf = lua_tolstring(L, i, &bufLen);
|
const char* buf = lua_tolstring(L, i, &bufLen);
|
||||||
data.write(buf, bufLen);
|
data.write(buf, bufLen);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ws->sendBinary(data.str()).success) {
|
if (!ws->sendBinary(data.str()).success) {
|
||||||
lua_pushstring(L, "Websocket error");
|
return luaL_error(L, "Websocket failed to send data");
|
||||||
lua_error(L);
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -165,13 +173,17 @@ int WebSocket_sendBinary(lua_State* L)
|
|||||||
int WebSocket_sendPing(lua_State* L)
|
int WebSocket_sendPing(lua_State* L)
|
||||||
{
|
{
|
||||||
auto ws = get_ptr<ix::WebSocket>(L, 1);
|
auto ws = get_ptr<ix::WebSocket>(L, 1);
|
||||||
|
|
||||||
|
if (ws->getReadyState() != ix::ReadyState::Open) {
|
||||||
|
return luaL_error(L, "Websocket is not connected, can't send ping");
|
||||||
|
}
|
||||||
|
|
||||||
size_t bufLen;
|
size_t bufLen;
|
||||||
const char* buf = lua_tolstring(L, 2, &bufLen);
|
const char* buf = lua_tolstring(L, 2, &bufLen);
|
||||||
std::string data(buf, bufLen);
|
std::string data(buf, bufLen);
|
||||||
|
|
||||||
if (!ws->ping(data).success) {
|
if (!ws->ping(data).success) {
|
||||||
lua_pushstring(L, "Websocket error");
|
return luaL_error(L, "Websocket failed to send ping");
|
||||||
lua_error(L);
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user