5 #include <ccan/list/list.h>
8 #define ANSWER_TO_THE_ULTIMATE_QUESTION_OF_LIFE_THE_UNIVERSE_AND_EVERYTHING \
12 struct ccan_list_node list
;
14 char secret_drawer
[42];
17 static bool not_randomized
= true;
19 struct opaque
*create_opaque_blob(void)
21 struct opaque
*blob
= calloc(1, sizeof(struct opaque
));
24 srandom((int)time(NULL
));
25 not_randomized
= false;
28 blob
->secret_offset
= random() % (sizeof(blob
->secret_drawer
));
29 blob
->secret_drawer
[blob
->secret_offset
] =
30 ANSWER_TO_THE_ULTIMATE_QUESTION_OF_LIFE_THE_UNIVERSE_AND_EVERYTHING
;
35 bool if_blobs_know_the_secret(struct opaque
*blob
)
39 for (i
= 0; i
< sizeof(blob
->secret_drawer
) /
40 sizeof(blob
->secret_drawer
[0]); i
++)
41 if (i
!= blob
->secret_offset
)
42 answer
= answer
&& (blob
->secret_drawer
[i
] == 0);
45 (blob
->secret_drawer
[blob
->secret_offset
] ==
46 ANSWER_TO_THE_ULTIMATE_QUESTION_OF_LIFE_THE_UNIVERSE_AND_EVERYTHING
);
51 void destroy_opaque_blob(struct opaque
*blob
)