aboutsummaryrefslogtreecommitdiffstats
path: root/irc.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2006-01-15 16:42:20 +0100
committerWilmer van der Gaast <wilmer@gaast.net>2006-01-15 16:42:20 +0100
commit74c119dd1b066329eba59d057935ba7ec7249555 (patch)
treec46aa45053fab63b071559bd5780473056a953e1 /irc.c
parent13caf0aa5d1e5575b74221e0cd9e4ff9f4cd79a8 (diff)
Better DIE implementation, added SO_REUSEADDR to listening socket.
Diffstat (limited to 'irc.c')
-rw-r--r--irc.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/irc.c b/irc.c
index a00c4192..a0ba6e53 100644
--- a/irc.c
+++ b/irc.c
@@ -433,6 +433,37 @@ char **irc_parse_line( char *line )
return cmd;
}
+char *irc_build_line( char **cmd )
+{
+ int i, len;
+ char *s;
+
+ if( cmd[0] == NULL )
+ return NULL;
+
+ len = 1;
+ for( i = 0; cmd[i]; i ++ )
+ len += strlen( cmd[i] ) + 1;
+
+ if( strchr( cmd[i-1], ' ' ) != NULL )
+ len ++;
+
+ s = g_new0( char, len + 1 );
+ for( i = 0; cmd[i]; i ++ )
+ {
+ if( cmd[i+1] == NULL && strchr( cmd[i], ' ' ) != NULL )
+ strcat( s, ":" );
+
+ strcat( s, cmd[i] );
+
+ if( cmd[i+1] )
+ strcat( s, " " );
+ }
+ strcat( s, "\r\n" );
+
+ return s;
+}
+
void irc_reply( irc_t *irc, int code, char *format, ... )
{
char text[IRC_MAX_LINE];