aboutsummaryrefslogtreecommitdiff
path: root/jim-aio.c
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2011-09-06 11:14:41 +1000
committerSteve Bennett <steveb@workware.net.au>2011-09-06 11:14:41 +1000
commitfb2001f04fc7a5c68c0830a35589d07e28721105 (patch)
tree3a80c7ab97a5c25a2acd24a30ebaf84255925a55 /jim-aio.c
parent9fcdfa2964919dd5a0766e089b68af8b2b54e815 (diff)
downloadjimtcl-fb2001f04fc7a5c68c0830a35589d07e28721105.zip
jimtcl-fb2001f04fc7a5c68c0830a35589d07e28721105.tar.gz
jimtcl-fb2001f04fc7a5c68c0830a35589d07e28721105.tar.bz2
Add support for aio listen
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim-aio.c')
-rw-r--r--jim-aio.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/jim-aio.c b/jim-aio.c
index fc48700..30db743 100644
--- a/jim-aio.c
+++ b/jim-aio.c
@@ -693,6 +693,23 @@ static int aio_cmd_filename(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
return JIM_OK;
}
+static int aio_cmd_listen(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
+{
+ AioFile *af = Jim_CmdPrivData(interp);
+ long backlog;
+
+ if (Jim_GetLong(interp, argv[0], &backlog) != JIM_OK) {
+ return JIM_ERR;
+ }
+
+ if (listen(af->fd, backlog)) {
+ JimAioSetError(interp, NULL);
+ return JIM_ERR;
+ }
+
+ return JIM_OK;
+}
+
#ifdef O_NDELAY
static int aio_cmd_ndelay(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
{
@@ -905,6 +922,13 @@ static const jim_subcmd_type aio_command_table[] = {
.function = aio_cmd_filename,
.description = "Returns the original filename"
},
+ { .cmd = "listen",
+ .args = "backlog",
+ .function = aio_cmd_listen,
+ .minargs = 1,
+ .maxargs = 1,
+ .description = "Set the listen backlog for server socket"
+ },
#ifdef O_NDELAY
{ .cmd = "ndelay",
.args = "?0|1?",