-#define alloc_addr(dummy) ((struct addr *) malloc(sizeof(struct addr)))
-#define free_addr(x) free((char *) x)
-#define NOADDR ((struct addr *) 0)
-#define net(x) ((x) & 0xff)
-#define host(x) (((x) >> 8) & 0xff)
-#define lhost(x) (((x) >> 16) & 0xff)
-#define imp(x) (((x) >> 24) & 0xff)
-
-#define alloc_name(dummy) ((struct name *) malloc(sizeof(struct name)))
-#define free_name(x) free(x->name_val); \
- free((char *) x)
-#define NONAME ((struct name *) 0)
+struct gateway {
+ struct gateway *g_link;
+ struct gateway *g_dst; /* connected gateway if metric > 0 */
+ struct gateway *g_firstent; /* first entry for this gateway */
+ struct name *g_name;
+ int g_net;
+ u_long g_addr; /* address on g_net */
+ int g_metric; /* hops to this net */
+};
+
+#define NOADDR ((struct addr *)0)
+#define NONAME ((struct name *)0)