diff options
| -rw-r--r-- | degesch.c | 18 | 
1 files changed, 18 insertions, 0 deletions
| @@ -8755,6 +8755,23 @@ lua_server_gc (lua_State *L)  }  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)  {  	struct lua_weak *wrapper = lua_weak_deref (L, &lua_server_info); @@ -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                  }  }; | 
