add net.socket:getpeer() api, returns peer ip,port
This commit is contained in:
parent
fab1f9560a
commit
2c5c00a56a
|
@ -1241,6 +1241,31 @@ static int net_socket_unhold( lua_State* L )
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Lua: ip,port = sk:getpeer()
|
||||||
|
static int net_socket_getpeer( lua_State* L )
|
||||||
|
{
|
||||||
|
lnet_userdata *nud;
|
||||||
|
const char *mt = "net.socket";
|
||||||
|
nud = (lnet_userdata *)luaL_checkudata(L, 1, mt);
|
||||||
|
luaL_argcheck(L, nud, 1, "Server/Socket expected");
|
||||||
|
|
||||||
|
if(nud!=NULL && nud->pesp_conn!=NULL ){
|
||||||
|
char temp[20] = {0};
|
||||||
|
c_sprintf(temp, IPSTR, IP2STR( &(nud->pesp_conn->proto.tcp->remote_ip) ) );
|
||||||
|
if ( nud->pesp_conn->proto.tcp->remote_port != 0 ) {
|
||||||
|
lua_pushstring( L, temp );
|
||||||
|
lua_pushinteger( L, nud->pesp_conn->proto.tcp->remote_port );
|
||||||
|
} else {
|
||||||
|
lua_pushnil( L );
|
||||||
|
lua_pushnil( L );
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
lua_pushnil( L );
|
||||||
|
lua_pushnil( L );
|
||||||
|
}
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
// Lua: socket:dns( string, function(ip) )
|
// Lua: socket:dns( string, function(ip) )
|
||||||
static int net_socket_dns( lua_State* L )
|
static int net_socket_dns( lua_State* L )
|
||||||
{
|
{
|
||||||
|
@ -1302,6 +1327,7 @@ static const LUA_REG_TYPE net_socket_map[] =
|
||||||
{ LSTRKEY( "hold" ), LFUNCVAL ( net_socket_hold ) },
|
{ LSTRKEY( "hold" ), LFUNCVAL ( net_socket_hold ) },
|
||||||
{ LSTRKEY( "unhold" ), LFUNCVAL ( net_socket_unhold ) },
|
{ LSTRKEY( "unhold" ), LFUNCVAL ( net_socket_unhold ) },
|
||||||
{ LSTRKEY( "dns" ), LFUNCVAL ( net_socket_dns ) },
|
{ LSTRKEY( "dns" ), LFUNCVAL ( net_socket_dns ) },
|
||||||
|
{ LSTRKEY( "getpeer" ), LFUNCVAL ( net_socket_getpeer ) },
|
||||||
// { LSTRKEY( "delete" ), LFUNCVAL ( net_socket_delete ) },
|
// { LSTRKEY( "delete" ), LFUNCVAL ( net_socket_delete ) },
|
||||||
{ LSTRKEY( "__gc" ), LFUNCVAL ( net_socket_delete ) },
|
{ LSTRKEY( "__gc" ), LFUNCVAL ( net_socket_delete ) },
|
||||||
#if LUA_OPTIMIZE_MEMORY > 0
|
#if LUA_OPTIMIZE_MEMORY > 0
|
||||||
|
|
Loading…
Reference in New Issue