Капча не меняется с новой версией GWAN

Почему эта страница captcha.c не меняется с новой версией gwan? (картинка не меняется)

Этот пример отлично работал в старых версиях!

2 ответа

Вот так.

Но httpdate.c пример работает как положено (меняется каждый раз, когда вы вызываете его), так что это не проблема кеша.

Я бросил вызов команде G-WAN, возможно, вы могли бы сделать это самостоятельно.

Марек прав, другие генераторы изображений работают (data_uri.c, fractal.c, charts.c, так далее.).

captcha.c Сервлет - единственный, кто использует PRNG, инициализация которого остается постоянной в этом примере (следовательно, постоянные результаты). Вы можете увидеть это в коде, добавив printf():

   u32 seed = (u32)getns();
   prnd_t rnd; // pseudo-random generator (period: 1 << 158)
   sw_init(&rnd, seed); // EPOCH time in nano-seconds

   printf("seed:%u, sw_rnd:%u getns():%lu\n", seed, sw_rand(&rnd), getns());

Семя всегда равно нулю, потому что результат getns() является постоянным (это, очевидно, ошибка):

seed:0, sw_rnd:4048109956 getns():1358679437704429568
seed:0, sw_rnd:4048109956 getns():1358679437704429568
seed:0, sw_rnd:4048109956 getns():1358679437704429568
...

Кстати, это хороший пример того, что программист должен найти сам (и сообщить об этом авторам программы).

Другие вопросы по тегам