#include "cc_interface.h" struct cc_session session; struct cc_session_node *next; struct cc_session *cc_find_session(struct crazychat *cc, char *handle) struct cc_session_node *curr; struct cc_session *session = &curr->session; if (!strncmp(session->name, handle, strlen(session->name))) { struct cc_session *cc_add_session(struct crazychat *cc, char *handle) struct cc_session_node *curr; cc->sessions = (struct cc_session_node*) malloc(sizeof(*cc->sessions)); memset(cc->sessions, 0, sizeof(*cc->sessions)); cc->sessions->session.cc = cc; cc->sessions->session.name = strdup(handle); return &cc->sessions->session; if (!strncmp(cc->sessions->session.name, handle, strlen(cc->sessions->session.name))) { return &cc->sessions->session; struct cc_session *session = &curr->next->session; if (!strncmp(session->name, handle, strlen(session->name))) { curr->next = (struct cc_session_node*)malloc(sizeof(*curr->next)); memset(curr->next, 0, sizeof(*curr->next)); curr->next->session.cc = cc; curr->next->session.name = strdup(handle); return &curr->next->session; void cc_remove_session(struct crazychat *cc, struct cc_session *session) struct cc_session_node *curr, *prev; if (&curr->session == session) { cc->sessions = curr->next; g_source_remove(session->timer_id);