|
|
1.1 root 1: /*
2: * Copyright (c) 1983 Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms are permitted
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.
16: */
17:
18: #ifndef lint
19: static char sccsid[] = "@(#)get_addrs.c 5.4 (Berkeley) 6/29/88";
20: #endif /* not lint */
21:
22: #include "talk_ctl.h"
23: #include <netdb.h>
24:
25: get_addrs(my_machine_name, his_machine_name)
26: char *my_machine_name, *his_machine_name;
27: {
28: struct hostent *hp;
29: struct servent *sp;
30:
31: msg.pid = htonl(getpid());
32: /* look up the address of the local host */
33: hp = gethostbyname(my_machine_name);
34: if (hp == (struct hostent *) 0) {
35: fprintf(stderr,
36: "talk: %s: Can't figure out network address.\n",
37: my_machine_name);
38: exit(-1);
39: }
40: bcopy(hp->h_addr, (char *)&my_machine_addr, hp->h_length);
41: /*
42: * If the callee is on-machine, just copy the
43: * network address, otherwise do a lookup...
44: */
45: if (strcmp(his_machine_name, my_machine_name)) {
46: hp = gethostbyname(his_machine_name);
47: if (hp == (struct hostent *) 0 ) {
48: fprintf(stderr,
49: "talk: %s: Can't figure out network address.\n",
50: his_machine_name);
51: exit(-1);
52: }
53: bcopy(hp->h_addr, (char *) &his_machine_addr, hp->h_length);
54: } else
55: his_machine_addr = my_machine_addr;
56: /* find the server's port */
57: sp = getservbyname("ntalk", "udp");
58: if (sp == 0) {
59: fprintf(stderr, "talk: %s/%s: service is not registered.\n",
60: "ntalk", "udp");
61: exit(-1);
62: }
63: daemon_port = sp->s_port;
64: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.