Commit | Line | Data |
---|---|---|
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 | 19 | static 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 | |
25 | get_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 | } |