diff options
| author | Diego Nehab <diego@tecgraf.puc-rio.br> | 2005-02-08 10:01:01 +0000 |
|---|---|---|
| committer | Diego Nehab <diego@tecgraf.puc-rio.br> | 2005-02-08 10:01:01 +0000 |
| commit | 8d4e240f6ae50d9b22ddc44f5e207018935da907 (patch) | |
| tree | d8ca9a51dc35534592f700e42740feac20242ede /src/unix.c | |
| parent | 5d32848674b723521e87836eafa24f5ae8f80a89 (diff) | |
| download | luasocket-8d4e240f6ae50d9b22ddc44f5e207018935da907.tar.gz luasocket-8d4e240f6ae50d9b22ddc44f5e207018935da907.tar.bz2 luasocket-8d4e240f6ae50d9b22ddc44f5e207018935da907.zip | |
Forward server working on Mac OS X...
Diffstat (limited to 'src/unix.c')
| -rw-r--r-- | src/unix.c | 27 |
1 files changed, 20 insertions, 7 deletions
| @@ -32,6 +32,8 @@ static int meth_settimeout(lua_State *L); | |||
| 32 | static int meth_getfd(lua_State *L); | 32 | static int meth_getfd(lua_State *L); |
| 33 | static int meth_setfd(lua_State *L); | 33 | static int meth_setfd(lua_State *L); |
| 34 | static int meth_dirty(lua_State *L); | 34 | static int meth_dirty(lua_State *L); |
| 35 | static int meth_getstats(lua_State *L); | ||
| 36 | static int meth_setstats(lua_State *L); | ||
| 35 | 37 | ||
| 36 | static const char *unix_tryconnect(p_unix un, const char *path); | 38 | static const char *unix_tryconnect(p_unix un, const char *path); |
| 37 | static const char *unix_trybind(p_unix un, const char *path); | 39 | static const char *unix_trybind(p_unix un, const char *path); |
| @@ -46,6 +48,8 @@ static luaL_reg un[] = { | |||
| 46 | {"connect", meth_connect}, | 48 | {"connect", meth_connect}, |
| 47 | {"dirty", meth_dirty}, | 49 | {"dirty", meth_dirty}, |
| 48 | {"getfd", meth_getfd}, | 50 | {"getfd", meth_getfd}, |
| 51 | {"getstats", meth_getstats}, | ||
| 52 | {"setstats", meth_setstats}, | ||
| 49 | {"listen", meth_listen}, | 53 | {"listen", meth_listen}, |
| 50 | {"receive", meth_receive}, | 54 | {"receive", meth_receive}, |
| 51 | {"send", meth_send}, | 55 | {"send", meth_send}, |
| @@ -75,7 +79,7 @@ static luaL_reg func[] = { | |||
| 75 | /*-------------------------------------------------------------------------*\ | 79 | /*-------------------------------------------------------------------------*\ |
| 76 | * Initializes module | 80 | * Initializes module |
| 77 | \*-------------------------------------------------------------------------*/ | 81 | \*-------------------------------------------------------------------------*/ |
| 78 | int unix_open(lua_State *L) { | 82 | int luaopen_socketunix(lua_State *L) { |
| 79 | /* create classes */ | 83 | /* create classes */ |
| 80 | aux_newclass(L, "unix{master}", un); | 84 | aux_newclass(L, "unix{master}", un); |
| 81 | aux_newclass(L, "unix{client}", un); | 85 | aux_newclass(L, "unix{client}", un); |
| @@ -84,11 +88,9 @@ int unix_open(lua_State *L) { | |||
| 84 | aux_add2group(L, "unix{master}", "unix{any}"); | 88 | aux_add2group(L, "unix{master}", "unix{any}"); |
| 85 | aux_add2group(L, "unix{client}", "unix{any}"); | 89 | aux_add2group(L, "unix{client}", "unix{any}"); |
| 86 | aux_add2group(L, "unix{server}", "unix{any}"); | 90 | aux_add2group(L, "unix{server}", "unix{any}"); |
| 87 | aux_add2group(L, "unix{client}", "unix{client,server}"); | ||
| 88 | aux_add2group(L, "unix{server}", "unix{client,server}"); | ||
| 89 | /* define library functions */ | 91 | /* define library functions */ |
| 90 | luaL_openlib(L, NULL, func, 0); | 92 | luaL_openlib(L, "socket", func, 0); |
| 91 | return 0; | 93 | return 1; |
| 92 | } | 94 | } |
| 93 | 95 | ||
| 94 | /*=========================================================================*\ | 96 | /*=========================================================================*\ |
| @@ -107,6 +109,16 @@ static int meth_receive(lua_State *L) { | |||
| 107 | return buf_meth_receive(L, &un->buf); | 109 | return buf_meth_receive(L, &un->buf); |
| 108 | } | 110 | } |
| 109 | 111 | ||
| 112 | static int meth_getstats(lua_State *L) { | ||
| 113 | p_unix un = (p_unix) aux_checkclass(L, "unix{client}", 1); | ||
| 114 | return buf_meth_getstats(L, &un->buf); | ||
| 115 | } | ||
| 116 | |||
| 117 | static int meth_setstats(lua_State *L) { | ||
| 118 | p_unix un = (p_unix) aux_checkclass(L, "unix{client}", 1); | ||
| 119 | return buf_meth_setstats(L, &un->buf); | ||
| 120 | } | ||
| 121 | |||
| 110 | /*-------------------------------------------------------------------------*\ | 122 | /*-------------------------------------------------------------------------*\ |
| 111 | * Just call option handler | 123 | * Just call option handler |
| 112 | \*-------------------------------------------------------------------------*/ | 124 | \*-------------------------------------------------------------------------*/ |
| @@ -250,7 +262,8 @@ static int meth_close(lua_State *L) | |||
| 250 | { | 262 | { |
| 251 | p_unix un = (p_unix) aux_checkgroup(L, "unix{any}", 1); | 263 | p_unix un = (p_unix) aux_checkgroup(L, "unix{any}", 1); |
| 252 | sock_destroy(&un->sock); | 264 | sock_destroy(&un->sock); |
| 253 | return 0; | 265 | lua_pushnumber(L, 1); |
| 266 | return 1; | ||
| 254 | } | 267 | } |
| 255 | 268 | ||
| 256 | /*-------------------------------------------------------------------------*\ | 269 | /*-------------------------------------------------------------------------*\ |
| @@ -277,7 +290,7 @@ static int meth_listen(lua_State *L) | |||
| 277 | \*-------------------------------------------------------------------------*/ | 290 | \*-------------------------------------------------------------------------*/ |
| 278 | static int meth_shutdown(lua_State *L) | 291 | static int meth_shutdown(lua_State *L) |
| 279 | { | 292 | { |
| 280 | p_unix un = (p_unix) aux_checkgroup(L, "unix{client}", 1); | 293 | p_unix un = (p_unix) aux_checkclass(L, "unix{client}", 1); |
| 281 | const char *how = luaL_optstring(L, 2, "both"); | 294 | const char *how = luaL_optstring(L, 2, "both"); |
| 282 | switch (how[0]) { | 295 | switch (how[0]) { |
| 283 | case 'b': | 296 | case 'b': |
