# HG changeset patch # User Matti Hamalainen # Date 1287738435 -10800 # Node ID c587a99e2096efb00d7d293a8b77ca55429812dd # Parent a094a9b8cad9105f76fcff2deae8c5b20241355b Drop internal use and storage of encoded usernames. diff -r a094a9b8cad9 -r c587a99e2096 libnnchat.c --- a/libnnchat.c Fri Oct 22 12:06:55 2010 +0300 +++ b/libnnchat.c Fri Oct 22 12:07:15 2010 +0300 @@ -633,17 +633,17 @@ } -nn_user_t *nn_user_find_enc(const nn_userhash_t *list, const char *encname) +nn_user_t *nn_user_find(const nn_userhash_t *list, const char *name) { uint8_t hash; if (list == NULL) return NULL; - hash = nn_hash_user(encname); + hash = nn_hash_user(name); if (list->buckets[hash] != NULL) { nn_user_t *curr = list->buckets[hash]; while (curr != NULL) { - if (strcasecmp(curr->encname, encname) == 0) + if (strcasecmp(curr->name, name) == 0) return curr; curr = curr->next; } @@ -653,16 +653,16 @@ } -nn_user_t *nn_user_match(const nn_userhash_t *list, const char *str, const char *current) +nn_user_t *nn_user_match(const nn_userhash_t *list, const char *pattern, const char *current) { uint8_t hash; if (list == NULL) return NULL; - hash = nn_hash_user(str); + hash = nn_hash_user(pattern); if (list->buckets[hash] != NULL) { nn_user_t *curr = list->buckets[hash]; - int len = strlen(str); + size_t len = strlen(pattern); if (current != NULL) { nn_user_t *found = NULL; @@ -680,7 +680,7 @@ } while (curr != NULL) { - if (strncasecmp(curr->name, str, len) == 0) + if (len <= strlen(curr->name) && strncasecmp(curr->name, pattern, len) == 0) return curr; curr = curr->next; } @@ -696,51 +696,50 @@ } -int nn_userhash_insert(nn_userhash_t *list, const char *encname) +int nn_userhash_insert(nn_userhash_t *list, const char *name) { uint8_t hash; nn_user_t *user; /* Check arguments */ - if (list == NULL || encname == NULL) + if (list == NULL || name == NULL) return -1; /* Check if username is already there */ - if (nn_user_find_enc(list, encname) != NULL) + if (nn_user_find(list, name) != NULL) return 1; /* No, we'll add it */ if ((user = th_calloc(1, sizeof(nn_user_t))) == NULL) return -3; - user->encname = th_strdup(encname); - user->name = nn_dbldecode_str(encname); - if (user->encname == NULL || user->name == NULL) + user->name = th_strdup(name); + if (user->name == NULL) return -4; - hash = nn_hash_user(encname); + hash = nn_hash_user(name); nn_user_insert(&(list->buckets[hash]), user); return 0; } -int nn_userhash_delete(nn_userhash_t *list, const char *encname) +int nn_userhash_delete(nn_userhash_t *list, const char *name) { uint8_t hash; /* Check arguments */ - if (list == NULL || encname == NULL) + if (list == NULL || name == NULL) return -1; /* Check if username is already there */ - hash = nn_hash_user(encname); + hash = nn_hash_user(name); if (list->buckets[hash] != NULL) { nn_user_t *curr, *prev; curr = list->buckets[hash]; prev = NULL; while (curr != NULL) { - if (strcasecmp(curr->encname, encname) == 0) { + if (strcasecmp(curr->name, name) == 0) { if (prev) prev->next = curr->next; else @@ -770,7 +769,6 @@ return NULL; /* Copy relevant data */ - user->encname = th_strdup(src->encname); user->name = th_strdup(src->name); user->lastspoke = src->lastspoke; user->joined = src->joined; @@ -781,7 +779,6 @@ void nn_user_free(nn_user_t *user) { - th_free(user->encname); th_free(user->name); th_free(user); } diff -r a094a9b8cad9 -r c587a99e2096 libnnchat.h --- a/libnnchat.h Fri Oct 22 12:06:55 2010 +0300 +++ b/libnnchat.h Fri Oct 22 12:07:15 2010 +0300 @@ -38,7 +38,7 @@ typedef struct _nn_user_t { - char *name, *encname; + char *name; time_t lastspoke, joined; struct _nn_user_t *next; } nn_user_t; @@ -67,14 +67,13 @@ nn_userhash_t *nn_userhash_new(void); nn_user_t * nn_userhash_foreach(const nn_userhash_t *, int (*func)(const nn_user_t *)); nn_user_t * nn_user_match(const nn_userhash_t *list, const char *str, const char *current); -int nn_userhash_insert(nn_userhash_t *, const char *encname); -int nn_userhash_delete(nn_userhash_t *, const char *encname); +int nn_userhash_insert(nn_userhash_t *, const char *name); +int nn_userhash_delete(nn_userhash_t *, const char *name); void nn_userhash_free(nn_userhash_t *); void nn_user_free(nn_user_t *); void nn_user_free_list(nn_user_t *); nn_user_t * nn_user_copy(const nn_user_t *src); -nn_user_t * nn_user_find_enc(const nn_userhash_t *list, const char *encname); -nn_user_t * nn_user_match_enc(const nn_userhash_t *list, const char *encname, const int index); +nn_user_t * nn_user_find(const nn_userhash_t *list, const char *name); char * nn_encode_str1(const char *str); char * nn_decode_str1(const char *str);