386BSD 0.1 development
[unix-history] / usr / src / sbin / routed / defs.h
index 22accc5..f4fdf7a 100644 (file)
@@ -1,4 +1,37 @@
-/*     defs.h  4.15    84/08/29        */
+/*
+ * Copyright (c) 1983, 1988 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *     @(#)defs.h      5.10 (Berkeley) 2/28/91
+ */
 
 /*
  * Internal data structure definitions for
 
 /*
  * Internal data structure definitions for
  * protocol specs with mods relevant to more
  * general addressing scheme.
  */
  * protocol specs with mods relevant to more
  * general addressing scheme.
  */
-#include <sys/types.h>
+#include <sys/param.h>
 #include <sys/socket.h>
 #include <sys/socket.h>
+#include <sys/time.h>
 
 #include <net/route.h>
 #include <netinet/in.h>
 
 #include <net/route.h>
 #include <netinet/in.h>
+#include <protocols/routed.h>
 
 #include <stdio.h>
 #include <netdb.h>
 
 
 #include <stdio.h>
 #include <netdb.h>
 
-#include "protocol.h"
 #include "trace.h"
 #include "interface.h"
 #include "table.h"
 #include "af.h"
 
 #include "trace.h"
 #include "interface.h"
 #include "table.h"
 #include "af.h"
 
-/* #define     COMPAT  1               /* stay compatible with 4.1a daemons */
-
 /*
  * When we find any interfaces marked down we rescan the
  * kernel every CHECK_INTERVAL seconds to see if they've
 /*
  * When we find any interfaces marked down we rescan the
  * kernel every CHECK_INTERVAL seconds to see if they've
  */
 #define        CHECK_INTERVAL  (1*60)
 
  */
 #define        CHECK_INTERVAL  (1*60)
 
-#define        LOOPBACKNET     0177
 #define equal(a1, a2) \
        (bcmp((caddr_t)(a1), (caddr_t)(a2), sizeof (struct sockaddr)) == 0)
 #define equal(a1, a2) \
        (bcmp((caddr_t)(a1), (caddr_t)(a2), sizeof (struct sockaddr)) == 0)
-#define        min(a,b)        ((a)>(b)?(b):(a))
 
 struct sockaddr_in addr;       /* address of daemon's socket */
 
 
 struct sockaddr_in addr;       /* address of daemon's socket */
 
@@ -44,7 +74,11 @@ int  install;                /* if 1 call kernel */
 int    lookforinterfaces;      /* if 1 probe kernel for new up interfaces */
 int    performnlist;           /* if 1 check if /vmunix has changed */
 int    externalinterfaces;     /* # of remote and local interfaces */
 int    lookforinterfaces;      /* if 1 probe kernel for new up interfaces */
 int    performnlist;           /* if 1 check if /vmunix has changed */
 int    externalinterfaces;     /* # of remote and local interfaces */
-int    timeval;                /* local idea of time */
+struct timeval now;            /* current idea of time */
+struct timeval lastbcast;      /* last time all/changes broadcast */
+struct timeval lastfullupdate; /* last time full table broadcast */
+struct timeval nextbcast;      /* time to wait before changes broadcast */
+int    needupdate;             /* true if we need update at nextbcast */
 
 char   packet[MAXPACKETSIZE+1];
 struct rip *msg;
 
 char   packet[MAXPACKETSIZE+1];
 struct rip *msg;
@@ -52,14 +86,8 @@ struct       rip *msg;
 char   **argv0;
 struct servent *sp;
 
 char   **argv0;
 struct servent *sp;
 
-extern char *sys_errlist[];
-extern int errno;
-
 struct in_addr inet_makeaddr();
 int    inet_addr();
 struct in_addr inet_makeaddr();
 int    inet_addr();
-char   *malloc();
-int    exit();
-int    sendmsg();
+int    sndmsg();
 int    supply();
 int    supply();
-int    timer();
 int    cleanup();
 int    cleanup();