--- a/src/irc_chan.c Tue Mar 31 20:33:45 2009 +0300
+++ b/src/irc_chan.c Tue Mar 31 20:57:07 2009 +0300
@@ -161,6 +161,8 @@
{
struct irc_chan *chan = arg;
+ (void) line;
+
// XXX: update state
log_info("channel join sync complete");
}
@@ -358,10 +360,13 @@
err_t irc_chan_join (struct irc_chan *chan)
{
err_t err;
+
+ // correct state
+ if (chan->joining || chan->joined)
+ return ERR_IRC_CHAN_STATE;
- // XXX: error instead?
- assert(!chan->joining && !chan->joined);
- assert(chan->net->conn);
+ if (!chan->net->conn)
+ return ERR_IRC_NET_STATE;
// send JOIN message on the appropriate connection
if ((err = irc_conn_JOIN(chan->net->conn, chan->info.channel)))
@@ -374,3 +379,16 @@
return SUCCESS;
}
+err_t irc_chan_PRIVMSG (struct irc_chan *chan, const char *message)
+{
+ // correct state
+ if (!chan->joined)
+ return ERR_IRC_CHAN_STATE;
+
+ if (!chan->net->conn)
+ return ERR_IRC_NET_STATE;
+
+ // send the PRIVMSG message
+ return irc_conn_PRIVMSG(chan->net->conn, chan->info.channel, message);
+}
+