static char sccsid
[] = "@(#)get_names.c 1.2 (Berkeley) %G%";
char *getlogin(), *ttyname(), *rindex();
struct hostent
*gethostbyname();
* Determine the local and remote user, tty, and machines
char hostname
[HOST_NAME_LENGTH
];
printf("Usage: talk user [ttyname]\n");
printf("Standard input must be a tty, not a pipe or a file\n");
printf("You don't exist. Go away.\n");
gethostname(hostname
, sizeof (hostname
));
my_machine_name
= hostname
;
my_tty
= rindex(ttyname(0), '/') + 1;
/* check for, and strip out, the machine name of the target */
for (ptr
= argv
[1]; *ptr
!= '\0' && *ptr
!= '@' && *ptr
!= ':' &&
*ptr
!= '!' && *ptr
!= '.'; ptr
++)
/* this is a local to local talk */
his_machine_name
= my_machine_name
;
his_machine_name
= ptr
+ 1;
/* host.user or host!user or host:user */
his_machine_name
= argv
[1];
his_tty
= argv
[2]; /* tty name is arg 2 */
get_addrs(my_machine_name
, his_machine_name
);
/* Load these useful values into the standard message header */
strncpy(msg
.l_name
, my_name
, NAME_SIZE
);
msg
.l_name
[NAME_SIZE
- 1] = '\0';
strncpy(msg
.r_name
, his_name
, NAME_SIZE
);
msg
.r_name
[NAME_SIZE
- 1] = '\0';
strncpy(msg
.r_tty
, his_tty
, TTY_SIZE
);
msg
.r_tty
[TTY_SIZE
- 1] = '\0';