comparison 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
comparison
equal deleted inserted replaced
93:7f9f6af26a65 94:6e47426efb6a
32 typedef struct { 32 typedef struct {
33 ssize_t pos, len, size; 33 ssize_t pos, len, size;
34 char *data; 34 char *data;
35 } nn_editbuf_t; 35 } nn_editbuf_t;
36 36
37 typedef struct { 37 typedef struct _nn_user_t {
38 char *name, *encname; 38 char *name, *encname;
39 time_t lastspoke, joined; 39 time_t lastspoke, joined;
40 struct _nn_user_t *next;
40 } nn_user_t; 41 } nn_user_t;
42
43 #define NN_NUM_BUCKETS (256)
44
45 typedef struct {
46 nn_user_t *buckets[NN_NUM_BUCKETS];
47 } nn_userhash_t;
41 48
42 49
43 #ifdef __WIN32 50 #ifdef __WIN32
44 const char *hstrerror(int err); 51 const char *hstrerror(int err);
45 #endif 52 #endif
51 int openConnection(struct in_addr *addr, const int port); 58 int openConnection(struct in_addr *addr, const int port);
52 void closeConnection(const int sock); 59 void closeConnection(const int sock);
53 BOOL sendToSocket(const int sock, char *buf, const size_t bufLen); 60 BOOL sendToSocket(const int sock, char *buf, const size_t bufLen);
54 BOOL sendUserMsg(const int sock, const char *user, const char *fmt, ...); 61 BOOL sendUserMsg(const int sock, const char *user, const char *fmt, ...);
55 62
56 int addUser(nn_user_t **list, char *encname); 63 int addUserToHash(nn_userhash_t **, char *encname);
57 int freeUser(nn_user_t *); 64 void freeUserHash(nn_userhash_t *);
58 int freeUserList(nn_user_t *); 65 void freeUserList(nn_user_t *);
66 nn_user_t * copyUser(nn_user_t *src);
67 nn_user_t * findUserEnc(nn_userhash_t *list, char *encname);
68 nn_user_t * matchUsersEnc(nn_userhash_t *list, char *encname, int index);
59 69
60 char * encodeStr1(const char *str); 70 char * encodeStr1(const char *str);
61 char * decodeStr1(const char *str); 71 char * decodeStr1(const char *str);
62 char * encodeStr2(const char *str); 72 char * encodeStr2(const char *str);
63 char * decodeStr2(const char *str); 73 char * decodeStr2(const char *str);