some nextstep support
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@3378 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		| @@ -57,6 +57,10 @@ RCSID("$Id$"); | ||||
| #include <time.h> | ||||
| #endif | ||||
|  | ||||
| #ifdef HAVE_SYS_TYPES_H | ||||
| #include <sys/types.h> | ||||
| #endif | ||||
|  | ||||
| #ifdef HAVE_UNISTD_H | ||||
| #include <unistd.h> | ||||
| #endif | ||||
| @@ -226,7 +230,11 @@ void | ||||
| des_rand_data(unsigned char *data, int size) | ||||
| { | ||||
|     struct itimerval tv, otv; | ||||
| #ifdef HAVE_SIGACTION | ||||
|     struct sigaction sa, osa; | ||||
| #else | ||||
|     RETSIGTYPE (*osa)(int); | ||||
| #endif | ||||
|     int i, j; | ||||
|     pid_t pid; | ||||
|     char *rnd_devices[] = {"/dev/random", | ||||
| @@ -253,11 +261,15 @@ des_rand_data(unsigned char *data, int size) | ||||
|     gsize = size; | ||||
|     igdata = 0; | ||||
|  | ||||
| #ifdef HAVE_SIGACTION | ||||
|     /* Setup signal handler */ | ||||
|     sa.sa_handler = sigALRM; | ||||
|     sa.sa_flags = 0; | ||||
|     sigemptyset(&sa.sa_mask); | ||||
|     sigaction(SIGALRM, &sa, &osa); | ||||
| #else | ||||
|     osa = signal(SIGALRM, sigALRM); | ||||
| #endif | ||||
|    | ||||
|     /* Start timer */ | ||||
|     tv.it_value.tv_sec = 0; | ||||
| @@ -287,7 +299,11 @@ des_rand_data(unsigned char *data, int size) | ||||
|     kill(pid, SIGKILL); | ||||
|     waitpid(pid, NULL, 0); | ||||
| #endif | ||||
| #ifdef HAVE_SIGACTION | ||||
|     sigaction(SIGALRM, &osa, 0); | ||||
| #else | ||||
|     signal(SIGALRM, osa < 0 ? SIG_DFL : osa); | ||||
| #endif | ||||
| } | ||||
| #else | ||||
| void | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Assar Westerlund
					Assar Westerlund