summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2003-01-15 13:49:20 +0000
committerAlexander Barton <alex@barton.de>2003-01-15 13:49:20 +0000
commit2152e377226509a6b3c5f6cd9c8c4a88a9487091 (patch)
tree5f80f5a1490c79ac392c4778bc7e1302331e6ffb /src
parent28cd2c11914adc102f28eb41be42127f5aab70c0 (diff)
downloadngircd-2152e377226509a6b3c5f6cd9c8c4a88a9487091.tar.gz
ngircd-2152e377226509a6b3c5f6cd9c8c4a88a9487091.zip
- Added "HELP" command.
Diffstat (limited to 'src')
-rw-r--r--src/ngircd/irc.c23
-rw-r--r--src/ngircd/irc.h3
-rw-r--r--src/ngircd/parse.c3
3 files changed, 26 insertions, 3 deletions
diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c
index 7cdb4dad..98ee042e 100644
--- a/src/ngircd/irc.c
+++ b/src/ngircd/irc.c
@@ -14,7 +14,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: irc.c,v 1.117 2003/01/13 18:56:30 alex Exp $";
+static char UNUSED id[] = "$Id: irc.c,v 1.118 2003/01/15 13:49:20 alex Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -226,4 +226,25 @@ IRC_TRACE( CLIENT *Client, REQUEST *Req )
 } /* IRC_TRACE */
 
 
+GLOBAL BOOLEAN
+IRC_HELP( CLIENT *Client, REQUEST *Req )
+{
+	COMMAND *cmd;
+
+	assert( Client != NULL );
+	assert( Req != NULL );
+
+	/* Bad number of arguments? */
+	if( Req->argc > 0 ) return IRC_WriteStrClient( Client, ERR_NORECIPIENT_MSG, Client_ID( Client ), Req->command );
+
+	cmd = Parse_GetCommandStruct( );
+	while( cmd->name )
+	{
+		if( ! IRC_WriteStrClient( Client, "NOTICE %s :%s", Client_ID( Client ), cmd->name )) return DISCONNECTED;
+		cmd++;
+	}
+	return CONNECTED;
+} /* IRC_HELP */
+
+
 /* -eof- */
diff --git a/src/ngircd/irc.h b/src/ngircd/irc.h
index 037bcf58..bca9d029 100644
--- a/src/ngircd/irc.h
+++ b/src/ngircd/irc.h
@@ -8,7 +8,7 @@
  * (at your option) any later version.
  * Please read the file COPYING, README and AUTHORS for more information.
  *
- * $Id: irc.h,v 1.37 2003/01/13 18:56:30 alex Exp $
+ * $Id: irc.h,v 1.38 2003/01/15 13:49:20 alex Exp $
  *
  * IRC commands (header)
  */
@@ -23,6 +23,7 @@ GLOBAL BOOLEAN IRC_KILL PARAMS(( CLIENT *Client, REQUEST *Req ));
 GLOBAL BOOLEAN IRC_NOTICE PARAMS(( CLIENT *Client, REQUEST *Req ));
 GLOBAL BOOLEAN IRC_PRIVMSG PARAMS(( CLIENT *Client, REQUEST *Req ));
 GLOBAL BOOLEAN IRC_TRACE PARAMS(( CLIENT *Client, REQUEST *Req ));
+GLOBAL BOOLEAN IRC_HELP PARAMS(( CLIENT *Client, REQUEST *Req ));
 
 
 #endif
diff --git a/src/ngircd/parse.c b/src/ngircd/parse.c
index 08d47f11..1857e726 100644
--- a/src/ngircd/parse.c
+++ b/src/ngircd/parse.c
@@ -14,7 +14,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: parse.c,v 1.58 2003/01/13 18:56:30 alex Exp $";
+static char UNUSED id[] = "$Id: parse.c,v 1.59 2003/01/15 13:49:20 alex Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -56,6 +56,7 @@ COMMAND My_Commands[] =
 	{ "DIE", IRC_DIE, CLIENT_USER, 0, 0, 0 },
 	{ "DISCONNECT", IRC_DISCONNECT, CLIENT_USER, 0, 0, 0 },
 	{ "ERROR", IRC_ERROR, 0xFFFF, 0, 0, 0 },
+	{ "HELP", IRC_HELP, CLIENT_USER, 0, 0, 0 },
 	{ "INVITE", IRC_INVITE, CLIENT_USER|CLIENT_SERVER, 0, 0, 0 },
 	{ "ISON", IRC_ISON, CLIENT_USER, 0, 0, 0 },
 	{ "JOIN", IRC_JOIN, CLIENT_USER|CLIENT_SERVER, 0, 0, 0 },