comparison mts/mh/hosts.c @ 0:bce86c4163a3

Initial revision
author kono
date Mon, 18 Apr 2005 23:46:02 +0900
parents
children 441a2190cfae
comparison
equal deleted inserted replaced
-1:000000000000 0:bce86c4163a3
1 /* hosts.c - find out the official name of a host */
2 #ifndef lint
3 static char ident[] = "@(#)$Id$";
4 #endif /* lint */
5
6 /* LINTLIBRARY */
7
8 #undef NETWORK
9 #if defined(BSD41A) || defined(BSD42) || defined(SOCKETS)
10 #define NETWORK
11 #endif /* not (defined(BSD41A) || defined(BSD42) || defined(SOCKETS)) */
12
13 #include "../h/strings.h"
14 #include <stdio.h>
15 #include "../zotnet/mts.h"
16 #include <ctype.h>
17 #if defined(BSD42) || defined(SOCKETS)
18 #include <netdb.h>
19 #endif /* BSD42 or SOCKETS */
20
21
22 #define NOTOK (-1)
23
24 /* */
25
26 struct hostent *mh_gethostbyname();
27
28 char *OfficialName (name)
29 char *name;
30 {
31 register char *p;
32 char *q,
33 site[BUFSIZ];
34 #ifdef NETWORK
35 static char buffer[BUFSIZ];
36 #if defined(BSD42) || defined(SOCKETS)
37 register struct hostent *hp;
38 #endif /* BSD42 or SOCKETS */
39 #endif /* NETWORK */
40
41 for (p = name, q = site; *p; p++, q++)
42 *q = isupper (*p) ? tolower (*p) : *p;
43 *q = 0;
44 q = site;
45
46 if (uleq (LocalName (), site))
47 return LocalName ();
48
49 #ifdef BSD41A
50 if (rhost (&q) != NOTOK) {
51 (void) strcpy (buffer, q);
52 free (q);
53 return buffer;
54 }
55 #endif /* BSD41A */
56 #if defined(BSD42) || defined(SOCKETS)
57 if (hp = mh_gethostbyname (q)) {
58 (void) strcpy (buffer, hp -> h_name);
59 return buffer;
60 }
61 #endif /* BSD42 or SOCKETS */
62
63 return NULL;
64 }