updates.
[crypto.git] / lib / silccrypt / silcrng.c
index f671952c2dd1e9293e73455fce38a72a61046418..7b01e552acdc989cc47eb7bdcab9cab01f6c5e71 100644 (file)
@@ -190,12 +190,20 @@ static void silc_rng_get_soft_noise(SilcRng rng)
   pos = silc_rng_get_position(rng);
 
   silc_rng_xor(rng, clock(), 0);
+#ifdef HAVE_GETPID
   silc_rng_xor(rng, getpid(), 1);
+#ifdef HAVE_GETPGID
   silc_rng_xor(rng, getpgid(getpid() << 8), 2);
   silc_rng_xor(rng, getpgid(getpid() << 8), 3);
+#endif
   silc_rng_xor(rng, getgid(), 4);
+#endif
+#ifdef HAVE_GETPGRP
   silc_rng_xor(rng, getpgrp(), 5);
+#endif
+#ifdef HAVE_GETSID
   silc_rng_xor(rng, getsid(getpid() << 16), 6);
+#endif
   silc_rng_xor(rng, times(&ptime), 7);
   silc_rng_xor(rng, ptime.tms_utime, 8);
   silc_rng_xor(rng, (ptime.tms_utime + ptime.tms_stime), pos++);
@@ -208,12 +216,20 @@ static void silc_rng_get_soft_noise(SilcRng rng)
   silc_rng_xor(rng, (ptime.tms_cutime + ptime.tms_stime), pos++);
   silc_rng_xor(rng, (ptime.tms_stime << 8), pos++);
   silc_rng_xor(rng, clock() << 4, pos++);
+#ifdef HAVE_GETPGID
   silc_rng_xor(rng, getpgid(getpid() << 8), pos++);
+#endif
+#ifdef HAVE_GETPGRP
   silc_rng_xor(rng, getpgrp(), pos++);
+#endif
+#ifdef HAVE_SETSID
   silc_rng_xor(rng, getsid(getpid() << 16), pos++);
+#endif
   silc_rng_xor(rng, times(&ptime), pos++);
   silc_rng_xor(rng, ptime.tms_utime, pos++);
+#ifdef HAVE_GETPGRP
   silc_rng_xor(rng, getpgrp(), pos++);
+#endif
 
 #ifdef SILC_RNG_DEBUG
   SILC_LOG_HEXDUMP(("pool"), rng->pool, sizeof(rng->pool));