if (ok && nbytes) {
BEV_RESET_GENERIC_READ_TIMEOUT(bev);
- _bufferevent_derement_read_buckets(&bev_a->bev, nbytes);
+ _bufferevent_decrement_read_buckets(&bev_a->bev, nbytes);
if (bev->readcb != NULL &&
evbuffer_get_length(bev->input) >= bev->wm_read.low)
_bufferevent_run_readcb(bev);
if (ok && nbytes) {
BEV_RESET_GENERIC_WRITE_TIMEOUT(bev);
- _bufferevent_derement_write_buckets(&bev_a->bev, nbytes);
+ _bufferevent_decrement_write_buckets(&bev_a->bev, nbytes);
if (bev->writecb != NULL &&
evbuffer_get_length(bev->output) <= bev->wm_write.low)
_bufferevent_run_writecb(bev);
EVUTIL_ASSERT(! TAILQ_EMPTY(&group->members));
- which = random() % group->n_members;
+ which = _evutil_weakrand() % group->n_members;
bev = TAILQ_FIRST(&group->members);
while (which--)
return getenv(varname);
}
+
+long
+_evutil_weakrand(void)
+{
+#ifdef WIN32
+ return rand();
+#else
+ return random();
+#endif
+}
+
#include <assert.h>
#include <math.h>
+#ifdef WIN32
+#include <winsock2.h>
+#include <ws2tcpip.h>
+#endif
+
#include <event2/bufferevent.h>
#include <event2/buffer.h>
#include <event2/event.h>
struct client_state *cs = ctx;
struct evbuffer *output = bufferevent_get_output(bev);
char buf[1024];
+#ifdef WIN32
+ int r = rand() % 256;
+#else
int r = random() % 256;
+#endif
memset(buf, r, sizeof(buf));
while (evbuffer_get_length(output) < 8192) {
evbuffer_add(output, buf, sizeof(buf));
int i,j;
double ratio;
+#ifdef WIN32
+ WORD wVersionRequested = MAKEWORD(2,2);
+ WSADATA wsaData;
+ int err;
+
+ err = WSAStartup(wVersionRequested, &wsaData);
+#endif
+
+
for (i = 1; i < argc; ++i) {
for (j = 0; options[j].name; ++j) {
if (!strcmp(argv[i],options[j].name)) {
{
struct timeval tv;
evutil_gettimeofday(&tv, NULL);
+#ifdef WIN32
+ srand(tv.tv_usec);
+#else
srandom(tv.tv_usec);
+#endif
}
evthread_enable_lock_debuging();
const char *evutil_getenv(const char *name);
+long _evutil_weakrand(void);
+
/* Evaluates to the same boolean value as 'p', and hints to the compiler that
* we expect this value to be false. */
#ifdef __GNUC__X