mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-10-13 23:31:08 +02:00
17570: tweaks to socket module
This commit is contained in:
parent
29ff4ab0e2
commit
1c5d5bb1f4
4 changed files with 23 additions and 13 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2002-08-22 Peter Stephenson <pws@csr.com>
|
||||||
|
|
||||||
|
* 17570: Src/Modules/socket.c, Doc/Zsh/Makefile.in,
|
||||||
|
Doc/Zsh/mod_socket.yo: Don't use predefined name `sun'; set
|
||||||
|
length parameter for accept(); fix inclusion of socket module
|
||||||
|
in documentation.
|
||||||
|
|
||||||
2002-08-20 Sven Wischnowsky <wischnow@zsh.org>
|
2002-08-20 Sven Wischnowsky <wischnow@zsh.org>
|
||||||
|
|
||||||
* 17569: Src/Zle/zle_tricky.c: fix typo in comment
|
* 17569: Src/Zle/zle_tricky.c: fix typo in comment
|
||||||
|
|
|
@ -59,7 +59,8 @@ Zsh/mod_compctl.yo Zsh/mod_complete.yo Zsh/mod_complist.yo \
|
||||||
Zsh/mod_computil.yo \
|
Zsh/mod_computil.yo \
|
||||||
Zsh/mod_deltochar.yo Zsh/mod_example.yo Zsh/mod_files.yo \
|
Zsh/mod_deltochar.yo Zsh/mod_example.yo Zsh/mod_files.yo \
|
||||||
Zsh/mod_mapfile.yo Zsh/mod_mathfunc.yo Zsh/mod_parameter.yo Zsh/mod_pcre.yo \
|
Zsh/mod_mapfile.yo Zsh/mod_mathfunc.yo Zsh/mod_parameter.yo Zsh/mod_pcre.yo \
|
||||||
Zsh/mod_sched.yo Zsh/mod_stat.yo Zsh/mod_termcap.yo Zsh/mod_terminfo.yo \
|
Zsh/mod_sched.yo Zsh/mod_socket.yo \
|
||||||
|
Zsh/mod_stat.yo Zsh/mod_termcap.yo Zsh/mod_terminfo.yo \
|
||||||
Zsh/mod_zftp.yo Zsh/mod_zle.yo Zsh/mod_zleparameter.yo \
|
Zsh/mod_zftp.yo Zsh/mod_zle.yo Zsh/mod_zleparameter.yo \
|
||||||
Zsh/mod_zprof.yo Zsh/mod_zpty.yo Zsh/mod_zselect.yo \
|
Zsh/mod_zprof.yo Zsh/mod_zpty.yo Zsh/mod_zselect.yo \
|
||||||
Zsh/mod_zutil.yo Zsh/mod_tcp.yo
|
Zsh/mod_zutil.yo Zsh/mod_tcp.yo
|
||||||
|
|
|
@ -62,3 +62,4 @@ it will wait for one.
|
||||||
In order to elicit more verbose output, use tt(-v).
|
In order to elicit more verbose output, use tt(-v).
|
||||||
)
|
)
|
||||||
enditem()
|
enditem()
|
||||||
|
)
|
||||||
|
|
|
@ -63,7 +63,7 @@ bin_zsocket(char *nam, char **args, char *ops, int func)
|
||||||
int err=1, verbose=0, test=0, targetfd=0;
|
int err=1, verbose=0, test=0, targetfd=0;
|
||||||
SOCKLEN_T len;
|
SOCKLEN_T len;
|
||||||
char **dargs;
|
char **dargs;
|
||||||
struct sockaddr_un sun;
|
struct sockaddr_un soun;
|
||||||
int sfd;
|
int sfd;
|
||||||
|
|
||||||
if (ops['v'])
|
if (ops['v'])
|
||||||
|
@ -101,12 +101,12 @@ bin_zsocket(char *nam, char **args, char *ops, int func)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sun.sun_family = AF_UNIX;
|
soun.sun_family = AF_UNIX;
|
||||||
strncpy(sun.sun_path, localfn, UNIX_PATH_MAX);
|
strncpy(soun.sun_path, localfn, UNIX_PATH_MAX);
|
||||||
|
|
||||||
if (bind(sfd, (struct sockaddr *)&sun, sizeof(struct sockaddr_un)))
|
if (bind(sfd, (struct sockaddr *)&soun, sizeof(struct sockaddr_un)))
|
||||||
{
|
{
|
||||||
zwarnnam(nam, "could not bind to %s: %e", sun.sun_path, errno);
|
zwarnnam(nam, "could not bind to %s: %e", soun.sun_path, errno);
|
||||||
close(sfd);
|
close(sfd);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -130,7 +130,7 @@ bin_zsocket(char *nam, char **args, char *ops, int func)
|
||||||
setiparam("REPLY", sfd);
|
setiparam("REPLY", sfd);
|
||||||
|
|
||||||
if (verbose)
|
if (verbose)
|
||||||
printf("%s listener is on fd %d\n", sun.sun_path, sfd);
|
printf("%s listener is on fd %d\n", soun.sun_path, sfd);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -190,7 +190,8 @@ bin_zsocket(char *nam, char **args, char *ops, int func)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((rfd = accept(lfd, (struct sockaddr *)&sun, &len)) == -1)
|
len = sizeof(soun);
|
||||||
|
if ((rfd = accept(lfd, (struct sockaddr *)&soun, &len)) == -1)
|
||||||
{
|
{
|
||||||
zwarnnam(nam, "could not accept connection: %e", NULL, errno);
|
zwarnnam(nam, "could not accept connection: %e", NULL, errno);
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -207,7 +208,7 @@ bin_zsocket(char *nam, char **args, char *ops, int func)
|
||||||
setiparam("REPLY", sfd);
|
setiparam("REPLY", sfd);
|
||||||
|
|
||||||
if (verbose)
|
if (verbose)
|
||||||
printf("new connection from %s is on fd %d\n", sun.sun_path, sfd);
|
printf("new connection from %s is on fd %d\n", soun.sun_path, sfd);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -223,10 +224,10 @@ bin_zsocket(char *nam, char **args, char *ops, int func)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sun.sun_family = AF_UNIX;
|
soun.sun_family = AF_UNIX;
|
||||||
strncpy(sun.sun_path, dargs[0], UNIX_PATH_MAX);
|
strncpy(soun.sun_path, dargs[0], UNIX_PATH_MAX);
|
||||||
|
|
||||||
if ((err = connect(sfd, (struct sockaddr *)&sun, sizeof(struct sockaddr_un)))) {
|
if ((err = connect(sfd, (struct sockaddr *)&soun, sizeof(struct sockaddr_un)))) {
|
||||||
zwarnnam(nam, "connection failed: %e", NULL, errno);
|
zwarnnam(nam, "connection failed: %e", NULL, errno);
|
||||||
close(sfd);
|
close(sfd);
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -241,7 +242,7 @@ bin_zsocket(char *nam, char **args, char *ops, int func)
|
||||||
setiparam("REPLY", sfd);
|
setiparam("REPLY", sfd);
|
||||||
|
|
||||||
if (verbose)
|
if (verbose)
|
||||||
printf("%s is now on fd %d\n", sun.sun_path, sfd);
|
printf("%s is now on fd %d\n", soun.sun_path, sfd);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue