Mercurial > ~mikael > mcabber > hg
view mcabber/src/events.h @ 1497:35020a2ed115
Do not use srand()/rand() if better alternatives exist (mirabilos)
arc4random(3) is a self-seeding PRNG available on a lot of OSes (all BSDs,
Darwin / Mac OSX, Interix / Microsoft® Services for Unix, Windows® 2003SR1,
Windows® Vista, Debian with the new libbsd package installed, ???) and much
better than srand(3)/rand(3).
Thanks to GNU autoconf, this can be made portable.
http://www.mirbsd.org/man/arc4random.3
//mirabilos
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Mon, 30 Jun 2008 23:13:50 +0200 |
parents | 4a7db2870685 |
children | a087125d8fc8 |
line wrap: on
line source
#ifndef __EVENTS_H__ #define __EVENTS_H__ 1 #include "jabglue.h" #define EVS_DEFAULT_TIMEOUT 90 #define EVS_MAX_TIMEOUT 432000 #define EVS_CONTEXT_TIMEOUT 0U #define EVS_CONTEXT_CANCEL 1U #define EVS_CONTEXT_USER 2U typedef enum { EVS_TYPE_SUBSCRIPTION = 1, EVS_TYPE_INVITATION = 2 } evs_type; /* Common structure for events (evs) and IQ requests (iqs) */ typedef struct { char *id; time_t ts_create; time_t ts_expire; guint8 type; gpointer data; int (*callback)(); xmlnode xmldata; char *desc; } eviqs; typedef struct { char* to; char* from; char* passwd; char* reason; } event_muc_invitation; eviqs *evs_new(guint8 type, time_t timeout); int evs_del(const char *evid); int evs_callback(const char *evid, guint evcontext); void evs_check_timeout(time_t now_t); void evs_display_list(void); GSList *evs_geteventslist(int forcompl); #endif /* __EVENTS_H__ */ /* vim: set expandtab cindent cinoptions=>2\:2(0: For Vim users... */