Mercurial > hg > nnchat
diff libnnchat.h @ 94:6e47426efb6a
Add preliminary userlist data handling functions.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 07 May 2009 06:14:21 +0300 |
parents | acfc4b4bc180 |
children | 218efd2f0641 |
line wrap: on
line diff
--- a/libnnchat.h Thu May 07 03:58:42 2009 +0300 +++ b/libnnchat.h Thu May 07 06:14:21 2009 +0300 @@ -34,11 +34,18 @@ char *data; } nn_editbuf_t; -typedef struct { +typedef struct _nn_user_t { char *name, *encname; time_t lastspoke, joined; + struct _nn_user_t *next; } nn_user_t; +#define NN_NUM_BUCKETS (256) + +typedef struct { + nn_user_t *buckets[NN_NUM_BUCKETS]; +} nn_userhash_t; + #ifdef __WIN32 const char *hstrerror(int err); @@ -53,9 +60,12 @@ BOOL sendToSocket(const int sock, char *buf, const size_t bufLen); BOOL sendUserMsg(const int sock, const char *user, const char *fmt, ...); -int addUser(nn_user_t **list, char *encname); -int freeUser(nn_user_t *); -int freeUserList(nn_user_t *); +int addUserToHash(nn_userhash_t **, char *encname); +void freeUserHash(nn_userhash_t *); +void freeUserList(nn_user_t *); +nn_user_t * copyUser(nn_user_t *src); +nn_user_t * findUserEnc(nn_userhash_t *list, char *encname); +nn_user_t * matchUsersEnc(nn_userhash_t *list, char *encname, int index); char * encodeStr1(const char *str); char * decodeStr1(const char *str);