add nellie.close

This commit is contained in:
Daniel Barlow 2024-04-11 23:07:02 +01:00
parent f3a13630d3
commit 5564cf0554
2 changed files with 12 additions and 8 deletions

View file

@ -6,17 +6,16 @@
#include <sys/socket.h> #include <sys/socket.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <unistd.h>
/* static int l_close_socket(lua_State *L) { */ static int l_close_socket(lua_State *L) {
/* LStream *p = (LStream *) luaL_checkudata(L, 1, LUA_FILEHANDLE); */ lua_getfield(L, 1, "fileno");
/* int res = fclose(p->f); */ int fd = (int) lua_tointeger(L, -1);
/* return luaL_fileresult(L, (res == 0), NULL); */ close(fd);
/* } */ return 0;
}
static int l_read_from_socket(lua_State *L) { static int l_read_from_socket(lua_State *L) {
/* struct sockaddr_nl sa; */
/* memset(&sa, 0, sizeof(sa)); */
int length = 32; int length = 32;
if(lua_isnumber(L, 2)) if(lua_isnumber(L, 2))
@ -64,6 +63,10 @@ static int l_open_socket(lua_State *L) {
lua_pushcfunction(L, l_read_from_socket); lua_pushcfunction(L, l_read_from_socket);
lua_settable(L, 1); lua_settable(L, 1);
lua_pushliteral(L, "close");
lua_pushcfunction(L, l_close_socket);
lua_settable(L, 1);
return 1; return 1;
} else { } else {
return 0; return 0;

View file

@ -3,3 +3,4 @@ print('dfg')
local f = nellie.open(2) local f = nellie.open(2)
print(string.byte(f:read(1000), 0, 60)) print(string.byte(f:read(1000), 0, 60))
print("CLOSED", f:close())