http://gimel.esc.cam.ac.uk/james/rpld/src/rpld-1.5.tar.gz
[rpld.git] / rpld.c
diff --git a/rpld.c b/rpld.c
index c6a9ba4..0ffc2b5 100644 (file)
--- a/rpld.c
+++ b/rpld.c
@@ -2,9 +2,9 @@
 *     rpld - an IBM style RIPL server            *
 *************************************************/
 
-/* Copyright (c) 1999, James McKenzie.
+/* Copyright (c) 1999,2000, James McKenzie.
  *                      All rights reserved
- * Copyright (c) 1998, Christopher Lightfoot.
+ * Copyright (c) 1998,2000, Christopher Lightfoot.
  *                      All rights reserved
  *
  * By using this file, you agree to the terms and conditions set
  */
 
 
-static char rcsid[] = "$Id: rpld.c,v 1.10 2000/07/16 13:18:10 root Exp root $";
+static char rcsid[] = "$Id: rpld.c,v 1.19 2000/07/29 23:20:02 root Exp $";
 
 /*
  * $Log: rpld.c,v $
+ * Revision 1.19  2000/07/29 23:20:02  root
+ * #
+ *
+ * Revision 1.18  2000/07/23 19:14:19  root
+ * #
+ *
+ * Revision 1.17  2000/07/17 11:59:45  root
+ * #
+ *
+ * Revision 1.16  2000/07/17 10:49:20  root
+ * #
+ *
+ * Revision 1.15  2000/07/17 10:45:38  root
+ * #
+ *
+ * Revision 1.14  2000/07/17 10:43:54  root
+ * #
+ *
+ * Revision 1.13  2000/07/17 10:43:34  root
+ * #
+ *
+ * Revision 1.12  2000/07/16 14:22:06  root
+ * #
+ *
+ * Revision 1.11  2000/07/16 14:05:28  root
+ * #
+ *
  * Revision 1.10  2000/07/16 13:18:10  root
  * #
  *
@@ -39,10 +66,10 @@ static char rcsid[] = "$Id: rpld.c,v 1.10 2000/07/16 13:18:10 root Exp root $";
 
 #include "project.h"
 
-static unsigned char RPL_MC_ADDR[ETH_ALEN] =
-{0x3, 0x0, 0x2, 0x0, 0x0, 0x0};
+static unsigned char RPL_MC_ADDR[ETH_ALEN] = { 0x3, 0x0, 0x2, 0x0, 0x0, 0x0 };
 
 int downloading = 0;
+int pacing = 10000;
 
 int
 main (argc, argv)
@@ -82,10 +109,11 @@ main (argc, argv)
       int len;
       struct timeval tv;
 
+
       if (downloading)
         {
           tv.tv_sec = 0;
-          tv.tv_usec = PACKET_DELAY;
+          tv.tv_usec = pacing >> 1;
         }
       else
         {
@@ -101,16 +129,22 @@ main (argc, argv)
           llc_recv_packet (n, buf, len);
         }
 
+
       if (downloading)
         {
           gettimeofday (&tv, NULL);
 
-          len = tv.tv_usec;
-          len += 1000000;
+          len = tv.tv_sec;
+          len -= last.tv_sec;
+          if (len > 1)
+            len = 2;
+          len *= 1000000;
+          len += tv.tv_usec;
           len -= last.tv_usec;
-          len %= 1000000;
 
-          if (len > 1000)
+
+
+          if (len > pacing)
             {
               client_dispatch (n);
               gettimeofday (&last, NULL);