src/irc_chan.c
changeset 97 d3bc82ee76cb
parent 89 68345a9b99a3
child 127 94e6c3b4230f
--- 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);
+}
+