summaryrefslogtreecommitdiffstats
path: root/usr.bin/talk
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1994-10-24 03:48:44 +0000
committerache <ache@FreeBSD.org>1994-10-24 03:48:44 +0000
commitf6e61eb7fd027a75244156df74cd5581bf52f236 (patch)
tree641001591405d3a6bdfd042e9bbe69221c3375dc /usr.bin/talk
parent218f10cecaf42b2c8d850880b6fb02220e624d51 (diff)
downloadFreeBSD-src-f6e61eb7fd027a75244156df74cd5581bf52f236.zip
FreeBSD-src-f6e61eb7fd027a75244156df74cd5581bf52f236.tar.gz
Remove undocumented talk behaviour, when names like
aa.bb aa:bb and aa!bb treated as user+host and not as local user names (especially aa.bb is common case). Only @ is valid user/host separator according to manpage. Pointed-by: doctor@dream.demos.su
Diffstat (limited to 'usr.bin/talk')
-rw-r--r--usr.bin/talk/get_names.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/usr.bin/talk/get_names.c b/usr.bin/talk/get_names.c
index 9d3cc04..bde908a 100644
--- a/usr.bin/talk/get_names.c
+++ b/usr.bin/talk/get_names.c
@@ -79,23 +79,17 @@ get_names(argc, argv)
gethostname(hostname, sizeof (hostname));
my_machine_name = hostname;
/* check for, and strip out, the machine name of the target */
- for (cp = argv[1]; *cp && !index("@:!.", *cp); cp++)
+ for (cp = argv[1]; *cp && *cp != '@'; cp++)
;
if (*cp == '\0') {
/* this is a local to local talk */
his_name = argv[1];
his_machine_name = my_machine_name;
} else {
- if (*cp++ == '@') {
/* user@host */
his_name = argv[1];
- his_machine_name = cp;
- } else {
- /* host.user or host!user or host:user */
- his_name = cp;
- his_machine_name = argv[1];
- }
- *--cp = '\0';
+ his_machine_name = cp + 1;
+ *cp = '\0';
}
if (argc > 2)
his_tty = argv[2]; /* tty name is arg 2 */
OpenPOWER on IntegriCloud