|
|
1.1 root 1: /*
2: * Copyright (c) 1983, 1988 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: (1) source distributions retain this entire copyright
7: * notice and comment, and (2) distributions including binaries display
8: * the following acknowledgement: ``This product includes software
9: * developed by the University of California, Berkeley and its contributors''
10: * in the documentation or other materials provided with the distribution
11: * and in all advertising materials mentioning features or use of this
12: * software. Neither the name of the University nor the names of its
13: * contributors may be used to endorse or promote products derived
14: * from this software without specific prior written permission.
15: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
16: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
17: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
18: *
19: * @(#)defs.h 5.9 (Berkeley) 6/1/90
20: */
21:
22: /*
23: * Internal data structure definitions for
24: * user routing process. Based on Xerox NS
25: * protocol specs with mods relevant to more
26: * general addressing scheme.
27: */
28: #include <sys/param.h>
29: #include <sys/socket.h>
30: #include <sys/time.h>
31:
32: #include <net/route.h>
33: #include <netinet/in.h>
34: #include <protocols/routed.h>
35:
36: #include <stdio.h>
37: #include <netdb.h>
38:
39: #include "trace.h"
40: #include "interface.h"
41: #include "table.h"
42: #include "af.h"
43:
44: /*
45: * When we find any interfaces marked down we rescan the
46: * kernel every CHECK_INTERVAL seconds to see if they've
47: * come up.
48: */
49: #define CHECK_INTERVAL (1*60)
50:
51: #define equal(a1, a2) \
52: (bcmp((caddr_t)(a1), (caddr_t)(a2), sizeof (struct sockaddr)) == 0)
53:
54: struct sockaddr_in addr; /* address of daemon's socket */
55:
56: int s; /* source and sink of all data */
57: int kmem;
58: int supplier; /* process should supply updates */
59: int install; /* if 1 call kernel */
60: int lookforinterfaces; /* if 1 probe kernel for new up interfaces */
61: int performnlist; /* if 1 check if /vmunix has changed */
62: int externalinterfaces; /* # of remote and local interfaces */
63: struct timeval now; /* current idea of time */
64: struct timeval lastbcast; /* last time all/changes broadcast */
65: struct timeval lastfullupdate; /* last time full table broadcast */
66: struct timeval nextbcast; /* time to wait before changes broadcast */
67: int needupdate; /* true if we need update at nextbcast */
68:
69: char packet[MAXPACKETSIZE+1];
70: struct rip *msg;
71:
72: char **argv0;
73: struct servent *sp;
74:
75: extern int errno;
76:
77: struct in_addr inet_makeaddr();
78: int inet_addr();
79: char *malloc();
80: char *ctime();
81: int exit();
82: int sendmsg();
83: int supply();
84: int timer();
85: int cleanup();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.