static char sccsid
[] = "@(#)htable.c 4.2 (Berkeley) 11/15/82";
* htable - convert NIC host table into a UNIX format.
* NIC format is described in RFC 810, 1 March 1982.
#include "htable.h" /* includes <sys/types.h> */
FILE *hf
; /* hosts file */
FILE *gf
; /* gateways file */
FILE *nf
; /* networks file */
fprintf(stderr
, "usage: %s [ input-file ]\n",
if (freopen(infile
, "r", stdin
) == NULL
) {
hf
= fopen("hosts", "w");
copylocal(hf
, "localhosts");
gf
= fopen("gateways", "w");
copylocal(gf
, "localgateways");
nf
= fopen("networks", "w");
copylocal(nf
, "localnetworks");
p
= malloc(strlen(str
) + 1);
nm
= (struct name
*)malloc(sizeof (struct name
));
do_entry(keyword
, addrlist
, namelist
, cputype
, opsys
, protos
)
struct name
*namelist
, *cputype
, *opsys
, *protos
;
register struct addr
*al
, *al2
;
register struct name
*nl
;
fprintf(stderr
, "htable: net");
putnet(stderr
, addrlist
->addr_val
);
fprintf(stderr
, " missing names.\n");
fprintf(nf
, "%-16.16s", lower(nl
->name_val
));
putnet(nf
, al
->addr_val
);
while (nl
= nl
->name_link
) {
fprintf(nf
, cp
, lower(nl
->name_val
));
for (al
= addrlist
; al
; al
= al
->addr_link
) {
register int net
= inet_netof(al
->addr_val
);
/* suppress duplicates -- not optimal */
fprintf(gf
, " destination %s metric 1 passive\n",
lower(namelist
->name_val
));
putaddr(hf
, al
->addr_val
);
fprintf(hf
, "%s\t# gateway\n",
lower(namelist
->name_val
));
if (inet_netof(al
->addr_val
) != LOCALNET
) {
putaddr(hf
, al
->addr_val
);
for (nl
= namelist
; nl
; nl
= nl
->name_link
) {
fprintf(hf
, cp
, lower(nl
->name_val
));
fprintf(stderr
, "Unknown keyword: %d.\n", keyword
);
al2
= al
->addr_link
, free((char *)al
);
lhf
= fopen(filename
, "r");
fprintf(stderr
, "Warning, no %s file.\n", filename
);
while (cc
= fread(buf
, 1, sizeof(buf
), lhf
))
#define UC(b) (((int)(b))&0xff)
register char *a
= (char *)&v
;
fprintf(f
, "%d", UC(a
[0]));
else if ((UC(a
[0])&0x40) == 0)
fprintf(f
, "%d.%d", UC(a
[0]), UC(a
[1]));
fprintf(f
, "%d.%d.%d", UC(a
[0]), UC(a
[1]), UC(a
[2]));
register char *a
= (char *)&v
;
sprintf(buf
,"%d.%d.%d.%d", UC(a
[0]), UC(a
[1]), UC(a
[2]), UC(a
[3]));
fprintf(f
, "%-16.16s", buf
);
register struct name
*nl
, *nl2
;
struct gateway
*gateways
= 0;
register struct gateway
*gp
;
for (gp
= gateways
; gp
; gp
= gp
->g_link
)
register struct gateway
*gp
;
gp
= (struct gateway
*)malloc(sizeof (struct gateway
));
fprintf(stderr
, "htable: out of memory\n");