projects
/
umurmur.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #66 from omor1/master
[umurmur.git]
/
src
/
channel.c
diff --git
a/src/channel.c
b/src/channel.c
index 54b57a27a21421da214b04d53c8c3d7b05c28af3..fdf4e82df9acab3a9597b56b5449d13508068b23 100644
(file)
--- a/
src/channel.c
+++ b/
src/channel.c
@@
-196,6
+196,7
@@
void Chan_init()
/* Channel links */
for (i = 0; ; i++) {
channel_t *ch_src, *ch_dst, *ch_itr = NULL;
/* Channel links */
for (i = 0; ; i++) {
channel_t *ch_src, *ch_dst, *ch_itr = NULL;
+ channellist_t *chl;
if (Conf_getNextChannelLink(&chlink, i) < 0) {
if (i == 0)
Log_info("No channel links found in configuration file.");
if (Conf_getNextChannelLink(&chlink, i) < 0) {
if (i == 0)
Log_info("No channel links found in configuration file.");
@@
-221,7
+222,12
@@
void Chan_init()
else
ch_dst = ch_itr;
else
ch_dst = ch_itr;
- list_add_tail(&ch_dst->link_node, &ch_src->channel_links);
+ chl = malloc(sizeof(channellist_t));
+ if(!chl)
+ Log_fatal("Out of memory");
+ chl->chan = ch_dst;
+ init_list_entry(&chl->node);
+ list_add_tail(&chl->node, &ch_src->channel_links);
ch_src->linkcount++;
Log_info("Adding channel link '%s' -> '%s'", ch_src->name, ch_dst->name);
}
ch_src->linkcount++;
Log_info("Adding channel link '%s' -> '%s'", ch_src->name, ch_dst->name);
}
@@
-230,6
+236,7
@@
void Chan_init()
void Chan_free()
{
struct dlist *itr, *save;
void Chan_free()
{
struct dlist *itr, *save;
+ struct dlist *linkitr, *linksave;
channel_t *ch;
list_iterate_safe(itr, save, &channels) {
channel_t *ch;
list_iterate_safe(itr, save, &channels) {
@@
-240,6
+247,11
@@
void Chan_free()
free(ch->desc);
if (ch->password)
free(ch->password);
free(ch->desc);
if (ch->password)
free(ch->password);
+ list_iterate_safe(linkitr, linksave, &ch->channel_links) {
+ channellist_t *chl;
+ chl = list_get_entry(linkitr, channellist_t, node);
+ free(chl);
+ }
free(ch);
}
}
free(ch);
}
}
@@
-371,6
+383,8
@@
void Chan_buildTreeList(channel_t *ch, struct dlist *head)
channel_t *sub;
chl = malloc(sizeof(channellist_t));
channel_t *sub;
chl = malloc(sizeof(channellist_t));
+ if(!chl)
+ Log_fatal("Out of memory");
chl->chan = ch;
init_list_entry(&chl->node);
list_add_tail(&chl->node, head);
chl->chan = ch;
init_list_entry(&chl->node);
list_add_tail(&chl->node, head);