use more randomness (arc4random + srandomdev)
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@10676 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -372,12 +372,22 @@ walk(int dir)
|
|||||||
lastdir = dir;
|
lastdir = dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static long
|
||||||
|
my_random (void)
|
||||||
|
{
|
||||||
|
#ifdef HAVE_RANDOM
|
||||||
|
return random();
|
||||||
|
#else
|
||||||
|
return rand();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
think(void)
|
think(void)
|
||||||
{
|
{
|
||||||
if (rand() & 1)
|
if (my_random() & 1)
|
||||||
walk(FRONT);
|
walk(FRONT);
|
||||||
if (rand() & 1) {
|
if (my_random() & 1) {
|
||||||
words = get_words();
|
words = get_words();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -392,21 +402,21 @@ move(XtPointer _p, XtIntervalId *_id)
|
|||||||
if (!length) {
|
if (!length) {
|
||||||
int tries = 0;
|
int tries = 0;
|
||||||
dir = 0;
|
dir = 0;
|
||||||
if ((rand() & 1) && think()) {
|
if ((my_random() & 1) && think()) {
|
||||||
talk(0); /* sets timeout to itself */
|
talk(0); /* sets timeout to itself */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!(rand() % 3) && (interval = look())) {
|
if (!(my_random() % 3) && (interval = look())) {
|
||||||
timeout_id = XtAppAddTimeOut(app, interval, move, NULL);
|
timeout_id = XtAppAddTimeOut(app, interval, move, NULL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
interval = 20 + rand() % 100;
|
interval = 20 + my_random() % 100;
|
||||||
do {
|
do {
|
||||||
if (!tries)
|
if (!tries)
|
||||||
length = Width/100 + rand() % 90, tries = 8;
|
length = Width/100 + my_random() % 90, tries = 8;
|
||||||
else
|
else
|
||||||
tries--;
|
tries--;
|
||||||
switch (rand() % 8) {
|
switch (my_random() % 8) {
|
||||||
case 0:
|
case 0:
|
||||||
if (x - X_INCR*length >= 5)
|
if (x - X_INCR*length >= 5)
|
||||||
dir = LEFT;
|
dir = LEFT;
|
||||||
@@ -915,21 +925,21 @@ look(void)
|
|||||||
{
|
{
|
||||||
XSetForeground(dpy, gc, White);
|
XSetForeground(dpy, gc, White);
|
||||||
XSetBackground(dpy, gc, Black);
|
XSetBackground(dpy, gc, Black);
|
||||||
if (rand() % 3) {
|
if (my_random() % 3) {
|
||||||
XCopyPlane(dpy, (rand() & 1)? down : front, XtWindow(widget), gc,
|
XCopyPlane(dpy, (my_random() & 1)? down : front, XtWindow(widget), gc,
|
||||||
0, 0, 64,64, x, y, 1L);
|
0, 0, 64,64, x, y, 1L);
|
||||||
return 1000L;
|
return 1000L;
|
||||||
}
|
}
|
||||||
if (!(rand() % 5))
|
if (!(my_random() % 5))
|
||||||
return 0;
|
return 0;
|
||||||
if (rand() % 3) {
|
if (my_random() % 3) {
|
||||||
XCopyPlane(dpy, (rand() & 1)? left_front : right_front,
|
XCopyPlane(dpy, (my_random() & 1)? left_front : right_front,
|
||||||
XtWindow(widget), gc, 0, 0, 64,64, x, y, 1L);
|
XtWindow(widget), gc, 0, 0, 64,64, x, y, 1L);
|
||||||
return 1000L;
|
return 1000L;
|
||||||
}
|
}
|
||||||
if (!(rand() % 5))
|
if (!(my_random() % 5))
|
||||||
return 0;
|
return 0;
|
||||||
XCopyPlane(dpy, (rand() & 1)? left0 : right0, XtWindow(widget), gc,
|
XCopyPlane(dpy, (my_random() & 1)? left0 : right0, XtWindow(widget), gc,
|
||||||
0, 0, 64,64, x, y, 1L);
|
0, 0, 64,64, x, y, 1L);
|
||||||
return 1000L;
|
return 1000L;
|
||||||
}
|
}
|
||||||
@@ -966,9 +976,15 @@ main (int argc, char **argv)
|
|||||||
strlcpy(login, pw->pw_name, sizeof(login));
|
strlcpy(login, pw->pw_name, sizeof(login));
|
||||||
}
|
}
|
||||||
|
|
||||||
srand(getpid());
|
#if defined(HAVE_SRANDOMDEV)
|
||||||
|
srandomdev();
|
||||||
|
#elif defined(HAVE_RANDOM)
|
||||||
|
srandom(time(NULL);
|
||||||
|
#else
|
||||||
|
srand (time(NULL));
|
||||||
|
#endif
|
||||||
for (i = 0; i < STRING_LENGTH; i++)
|
for (i = 0; i < STRING_LENGTH; i++)
|
||||||
STRING[i] = ((unsigned long)rand() % ('~' - ' ')) + ' ';
|
STRING[i] = ((unsigned long)my_random() % ('~' - ' ')) + ' ';
|
||||||
|
|
||||||
locked_at = time(0);
|
locked_at = time(0);
|
||||||
|
|
||||||
|
@@ -402,7 +402,11 @@ arg_match_long(struct getargs *args, size_t num_args,
|
|||||||
*flag = !negate;
|
*flag = !negate;
|
||||||
return 0;
|
return 0;
|
||||||
} else if (*optarg && strcmp(optarg + 1, "maybe") == 0) {
|
} else if (*optarg && strcmp(optarg + 1, "maybe") == 0) {
|
||||||
|
#ifdef HAVE_RANDOM
|
||||||
|
*flag = random() & 1;
|
||||||
|
#else
|
||||||
*flag = rand() & 1;
|
*flag = rand() & 1;
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
*flag = negate;
|
*flag = negate;
|
||||||
return 0;
|
return 0;
|
||||||
@@ -517,7 +521,13 @@ getarg(struct getargs *args, size_t num_args,
|
|||||||
int i;
|
int i;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
|
#if defined(HAVE_SRANDOMDEV)
|
||||||
|
srandomdev();
|
||||||
|
#elif defined(HAVE_RANDOM)
|
||||||
|
srandom(time(NULL);
|
||||||
|
#else
|
||||||
srand (time(NULL));
|
srand (time(NULL));
|
||||||
|
#endif
|
||||||
(*optind)++;
|
(*optind)++;
|
||||||
for(i = *optind; i < argc; i++) {
|
for(i = *optind; i < argc; i++) {
|
||||||
if(argv[i][0] != '-')
|
if(argv[i][0] != '-')
|
||||||
|
Reference in New Issue
Block a user