Mercurial > hg > nnchat
diff libnnchat.c @ 106:c587a99e2096
Drop internal use and storage of encoded usernames.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 22 Oct 2010 12:07:15 +0300 |
parents | eaa524e153f9 |
children | f323b137ca08 |
line wrap: on
line diff
--- 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); }