presence: Add get_metadata().

This commit is contained in:
William Pitcock 2009-06-02 01:50:40 -05:00
parent 45d1f80189
commit 75ea650c3c
2 changed files with 12 additions and 13 deletions

View file

@ -614,6 +614,7 @@ extern char *generate_uid(void);
void allocate_away(struct Client *);
void free_away(struct Client *);
const char *get_metadata(struct Client *, const char *);
void set_metadata(struct Client *, const char *, const char *);
void delete_metadata(struct Client *, const char *);

View file

@ -1699,8 +1699,6 @@ make_server(struct Client *client_p)
void
free_user(struct User *user, struct Client *client_p)
{
free_away(client_p);
if(--user->refcnt <= 0)
{
if(user->away)
@ -1731,21 +1729,21 @@ free_user(struct User *user, struct Client *client_p)
}
}
void
allocate_away(struct Client *client_p)
const char *
get_metadata(struct Client *client_p, const char *key)
{
if(client_p->user->away == NULL)
client_p->user->away = rb_bh_alloc(away_heap);
}
struct MetadataEntry *md;
if (client_p->user != NULL)
{
md = irc_dictionary_retrieve(client_p->user->metadata, key);
if (md == NULL)
return NULL;
void
free_away(struct Client *client_p)
{
if(client_p->user != NULL && client_p->user->away != NULL) {
rb_bh_free(away_heap, client_p->user->away);
client_p->user->away = NULL;
return md->value;
}
return NULL;
}
void