/* -*-c-*-
*
- * $Id: noise.c,v 1.6 2000/06/17 12:57:47 mdw Exp $
+ * $Id$
*
* Acquisition of environmental noise (Unix-specific)
*
* (c) 1998 Straylight/Edgeware
*/
-/*----- Licensing notice --------------------------------------------------*
+/*----- Licensing notice --------------------------------------------------*
*
* This file is part of Catacomb.
*
* it under the terms of the GNU Library General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
- *
+ *
* Catacomb is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Library General Public
* License along with Catacomb; if not, write to the Free
* Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
* MA 02111-1307, USA.
*/
-/*----- Revision history --------------------------------------------------*
- *
- * $Log: noise.c,v $
- * Revision 1.6 2000/06/17 12:57:47 mdw
- * New free counter noise generator, for use if /dev/random is
- * unavailable.
- *
- * Revision 1.5 1999/12/22 15:57:55 mdw
- * Label system-specific parts more clearly.
- *
- * Revision 1.4 1999/12/10 23:25:15 mdw
- * Bug fix: remove old spurious fflush.
- *
- * Revision 1.3 1999/12/10 23:24:11 mdw
- * Bug fix: flush buffers before forking.
- *
- * Revision 1.2 1999/11/11 00:59:08 mdw
- * A bit of reformatting. Initialize the uid and gid correctly.
- *
- * Revision 1.1 1999/09/03 08:41:12 mdw
- * Initial import.
- *
- */
-
/*----- Header files ------------------------------------------------------*/
#include "config.h"
/*----- Noise source definition -------------------------------------------*/
-rand_source noise_source = { noise_acquire, noise_timer };
+const rand_source noise_source = { noise_acquire, noise_timer };
/*----- Static variables --------------------------------------------------*/
unsigned long x, d, dd;
int de, dde;
int ret;
-
+
x = tv->tv_usec + MILLION * tv->tv_sec;
d = x ^ noise_last;
dd = d ^ noise_diff;
done:
signal(SIGALRM, sigal);
- TV_SUB(&oitv.it_value, &oitv.it_value, &itv.it_value);
+ if (oitv.it_value.tv_sec || oitv.it_value.tv_usec)
+ TV_SUB(&oitv.it_value, &oitv.it_value, &itv.it_value);
setitimer(ITIMER_REAL, &oitv, 0);
return (rc);
}
} tab[] = {
{ "ps alxww || ps -elf", 16 },
{ "netstat -n", 6 },
+ { "ifconfig -a", 8 },
{ "df", 20 },
{ "w", 6 },
{ "ls -align /tmp/.", 10 },