From 28d396112d653753e2a4044e06ee52fc4bde219b Mon Sep 17 00:00:00 2001 From: nohar Date: Wed, 20 Sep 2006 20:27:14 +0000 Subject: [PATCH] Rights fix, working multiple on connect send. --- ChangeLog | 1 + src/bip.c | 24 ++++++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index b2d0579..92edbc2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,6 @@ 2006-09-18 Arnaud Cornet + * src/bip.c: umask for better permissions when using in system mode. * src/irc.c: added no_client_away_msg configuration directive and code. diff --git a/src/bip.c b/src/bip.c index f00f1ea..e163532 100644 --- a/src/bip.c +++ b/src/bip.c @@ -458,6 +458,7 @@ static int add_connection(list_t *connectionl, list_t *data, c->away_nick = t->pdata; break; case LEX_ON_CONNECT_SEND: + printf("lex: %s\n", t->pdata); list_add_last(&c->on_connect_send, t->pdata); break; default: @@ -819,11 +820,23 @@ void ircize(list_t *ll) for (list_it_init(&c->on_connect_send, &ocsit); list_it_item(&ocsit); list_it_next(&ocsit)) { - free(list_it_item(&ocsit)); + printf("yo:%s\n", list_it_item(&ocsit)); } - list_init(&link->on_connect_send, NULL); - list_append(&link->on_connect_send, - &c->on_connect_send); + + char *s; + while ((s = list_remove_first( + &link->on_connect_send))) { + free(s); + } + list_append(&c->on_connect_send, + &link->on_connect_send); + + for (list_it_init(&link->on_connect_send, &ocsit); + list_it_item(&ocsit); + list_it_next(&ocsit)) { + printf("fin:%s\n", (char *)list_it_item(&ocsit)); + } + link->away_nick = strmaydup(c->away_nick); link->no_client_away_msg = @@ -932,6 +945,9 @@ int main(int argc, char **argv) usage(argv[0]); } } + + umask(0027); + if (confpath) { conf = fopen(confpath, "r"); if (!conf)