From 557a39c6c8c1a010a8d8e61507f06bfc9dfb119b Mon Sep 17 00:00:00 2001
From: Přemysl Janouch
Date: Fri, 28 Oct 2016 12:45:38 +0200
Subject: degesch: export server state as a string to Lua
---
degesch.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/degesch.c b/degesch.c
index 828857f..c604e83 100644
--- a/degesch.c
+++ b/degesch.c
@@ -8754,6 +8754,23 @@ lua_server_gc (lua_State *L)
return lua_weak_gc (L, &lua_server_info);
}
+static int
+lua_server_get_state (lua_State *L)
+{
+ struct lua_weak *wrapper = lua_weak_deref (L, &lua_server_info);
+ struct server *server = wrapper->object;
+ switch (server->state)
+ {
+ case IRC_DISCONNECTED: lua_pushstring (L, "disconnected"); break;
+ case IRC_CONNECTING: lua_pushstring (L, "connecting"); break;
+ case IRC_CONNECTED: lua_pushstring (L, "connected"); break;
+ case IRC_REGISTERED: lua_pushstring (L, "registered"); break;
+ case IRC_CLOSING: lua_pushstring (L, "closing"); break;
+ case IRC_HALF_CLOSED: lua_pushstring (L, "half_closed"); break;
+ }
+ return 1;
+}
+
static int
lua_server_send (lua_State *L)
{
@@ -8766,6 +8783,7 @@ lua_server_send (lua_State *L)
static luaL_Reg lua_server_table[] =
{
{ "__gc", lua_server_gc },
+ { "get_state", lua_server_get_state },
{ "send", lua_server_send },
{ NULL, NULL }
};
--
cgit v1.2.3-70-g09d2