+ int fd, ret;
+
+ i = 0;
+ if((fd = open("/dev/urandom", O_RDONLY)) >= 0) {
+ for(i = 0; i < 24; i += ret) {
+ if((ret = read(fd, idbuf + i, 24 - i)) <= 0) {
+ flog(LOG_WARNING, "could not read random data from /dev/urandom for ADC PID: %s", (errno == 0)?"EOF":strerror(errno));
+ break;
+ }
+ }
+ close(fd);
+ } else {
+ flog(LOG_WARNING, "could not open /dev/urandom: %s", strerror(errno));
+ }
+ if(i != 24) {
+ for(i = 0; i < sizeof(idbuf); i++)
+ idbuf[i] = rand() % 256;
+ }
+}
+
+static int init(int hup)
+{