|
|
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.