diff options
Diffstat (limited to 'do/listen')
-rw-r--r-- | do/listen | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/do/listen b/do/listen new file mode 100644 index 0000000000..1ec7341d16 --- /dev/null +++ b/do/listen @@ -0,0 +1,27 @@ +int +do_listen(stab, arglast) +STAB *stab; +int *arglast; +{ + register STR **st = stack->ary_array; + register int sp = arglast[1]; + register STIO *stio; + int backlog; + + if (!stab) + goto nuts; + + stio = stab_io(stab); + if (!stio || !stio->ifp) + goto nuts; + + backlog = (int)str_gnum(st[++sp]); + return listen(fileno(stio->ifp), backlog) >= 0; + +nuts: + if (dowarn) + warn("listen() on closed fd"); + errno = EBADF; + return FALSE; +} + |