summaryrefslogtreecommitdiffstats
path: root/Src/Modules
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@gmail.com>2026-05-07 10:41:47 +0200
committerMikael Magnusson <mikachu@gmail.com>2026-05-11 21:31:59 +0200
commit89e2802ba27e8186c3edc76e85e1f2320e02e0cd (patch)
treef280600f4b47f2a7a92ca86af196ad32ac545744 /Src/Modules
parent54493: socket: fix some issues with socket name (diff)
downloadzsh-89e2802ba27e8186c3edc76e85e1f2320e02e0cd.tar
zsh-89e2802ba27e8186c3edc76e85e1f2320e02e0cd.tar.gz
zsh-89e2802ba27e8186c3edc76e85e1f2320e02e0cd.tar.bz2
zsh-89e2802ba27e8186c3edc76e85e1f2320e02e0cd.tar.lz
zsh-89e2802ba27e8186c3edc76e85e1f2320e02e0cd.tar.xz
zsh-89e2802ba27e8186c3edc76e85e1f2320e02e0cd.tar.zst
zsh-89e2802ba27e8186c3edc76e85e1f2320e02e0cd.zip
54494: Add zsocket -s to shutdown() a socket fd
Diffstat (limited to 'Src/Modules')
-rw-r--r--Src/Modules/socket.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/Src/Modules/socket.c b/Src/Modules/socket.c
index 4f2a6ecbf..2c8a48c28 100644
--- a/Src/Modules/socket.c
+++ b/Src/Modules/socket.c
@@ -229,6 +229,17 @@ bin_zsocket(char *nam, char **args, Options ops, UNUSED(int func))
if (verbose)
printf("new connection from %s is on fd %d\n", soun.sun_path, sfd);
}
+ else if (OPT_ISSET(ops,'s'))
+ {
+ if (!args[0]) {
+ zwarnnam(nam, "-s requires an argument");
+ return 1;
+ }
+
+ int err = shutdown(atoi(args[0]), SHUT_WR);
+ if (err)
+ zwarn("shutdown failed: %e", errno);
+ }
else
{
if (!args[0]) {
@@ -282,7 +293,7 @@ bin_zsocket(char *nam, char **args, Options ops, UNUSED(int func))
}
static struct builtin bintab[] = {
- BUILTIN("zsocket", 0, bin_zsocket, 0, 3, 0, "ad:ltv", NULL),
+ BUILTIN("zsocket", 0, bin_zsocket, 0, 3, 0, "ad:lstv", NULL),
};
static struct features module_features = {