BSD 4_3_Net_1 release
[unix-history] / talk / get_addrs.c
CommitLineData
d0aeaf5a
DF
1/*
2 * Copyright (c) 1983 Regents of the University of California.
f9ac90b4
KB
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms are permitted
b36fc510
KB
6 * provided that the above copyright notice and this paragraph are
7 * duplicated in all such forms and that any documentation,
8 * advertising materials, and other materials related to such
9 * distribution and use acknowledge that the software was developed
10 * by the University of California, Berkeley. The name of the
11 * University may not be used to endorse or promote products derived
12 * from this software without specific prior written permission.
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
d0aeaf5a
DF
16 */
17
963ce42e 18#ifndef lint
e3419641 19static char sccsid[] = "@(#)get_addrs.c 5.5 (Berkeley) 10/11/88";
f9ac90b4 20#endif /* not lint */
955a40d4
MK
21
22#include "talk_ctl.h"
4fa2ac2d 23#include <netdb.h>
955a40d4
MK
24
25get_addrs(my_machine_name, his_machine_name)
4fa2ac2d 26 char *my_machine_name, *his_machine_name;
955a40d4 27{
963ce42e
MK
28 struct hostent *hp;
29 struct servent *sp;
955a40d4 30
4fa2ac2d 31 msg.pid = htonl(getpid());
955a40d4 32 /* look up the address of the local host */
963ce42e 33 hp = gethostbyname(my_machine_name);
7620b226
KB
34 if (hp == NULL) {
35 fprintf(stderr, "talk: %s: ", my_machine_name);
36 herror((char *)NULL);
963ce42e 37 exit(-1);
955a40d4 38 }
963ce42e 39 bcopy(hp->h_addr, (char *)&my_machine_addr, hp->h_length);
4fa2ac2d
KM
40 /*
41 * If the callee is on-machine, just copy the
42 * network address, otherwise do a lookup...
43 */
44 if (strcmp(his_machine_name, my_machine_name)) {
963ce42e 45 hp = gethostbyname(his_machine_name);
7620b226
KB
46 if (hp == NULL) {
47 fprintf(stderr, "talk: %s: ", his_machine_name);
48 herror((char *)NULL);
963ce42e
MK
49 exit(-1);
50 }
51 bcopy(hp->h_addr, (char *) &his_machine_addr, hp->h_length);
4fa2ac2d
KM
52 } else
53 his_machine_addr = my_machine_addr;
54 /* find the server's port */
55 sp = getservbyname("ntalk", "udp");
963ce42e 56 if (sp == 0) {
4fa2ac2d
KM
57 fprintf(stderr, "talk: %s/%s: service is not registered.\n",
58 "ntalk", "udp");
963ce42e
MK
59 exit(-1);
60 }
61 daemon_port = sp->s_port;
955a40d4 62}