X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=src%2Fngircd%2Firc-oper.c;h=2a753f3a25fe52be52a5ccfe2758a68b08f4c8aa;hp=b58d16fb253ac1384a9a8c46e0ca9375d4ca56cd;hb=a5c92290844a8b6988948cec530da09ae4561d22;hpb=7d4e9a019f435382160bc515f5c423c92513f7d6 diff --git a/src/ngircd/irc-oper.c b/src/ngircd/irc-oper.c index b58d16fb..2a753f3a 100644 --- a/src/ngircd/irc-oper.c +++ b/src/ngircd/irc-oper.c @@ -9,7 +9,7 @@ * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS. * - * $Id: irc-oper.c,v 1.4 2002/04/04 13:03:39 alex Exp $ + * $Id: irc-oper.c,v 1.9 2002/11/22 17:58:41 alex Exp $ * * irc-oper.c: IRC-Operator-Befehle */ @@ -22,16 +22,22 @@ #include #include "ngircd.h" +#include "resolve.h" #include "conf.h" +#include "conn.h" +#include "client.h" +#include "channel.h" #include "irc-write.h" #include "log.h" #include "messages.h" +#include "parse.h" #include #include "irc-oper.h" -GLOBAL BOOLEAN IRC_OPER( CLIENT *Client, REQUEST *Req ) +GLOBAL BOOLEAN +IRC_OPER( CLIENT *Client, REQUEST *Req ) { INT i; @@ -76,7 +82,8 @@ GLOBAL BOOLEAN IRC_OPER( CLIENT *Client, REQUEST *Req ) } /* IRC_OPER */ -GLOBAL BOOLEAN IRC_DIE( CLIENT *Client, REQUEST *Req ) +GLOBAL BOOLEAN +IRC_DIE( CLIENT *Client, REQUEST *Req ) { assert( Client != NULL ); assert( Req != NULL ); @@ -94,7 +101,28 @@ GLOBAL BOOLEAN IRC_DIE( CLIENT *Client, REQUEST *Req ) } /* IRC_DIE */ -GLOBAL BOOLEAN IRC_RESTART( CLIENT *Client, REQUEST *Req ) +GLOBAL BOOLEAN +IRC_RELOAD( CLIENT *Client, REQUEST *Req ) +{ + assert( Client != NULL ); + assert( Req != NULL ); + + if( Client_Type( Client ) != CLIENT_USER ) return IRC_WriteStrClient( Client, ERR_NOTREGISTERED_MSG, Client_ID( Client )); + + /* Falsche Anzahl Parameter? */ + if( Req->argc != 0 ) return IRC_WriteStrClient( Client, ERR_NEEDMOREPARAMS_MSG, Client_ID( Client ), Req->command ); + + if(( ! Client_HasMode( Client, 'o' )) || ( ! Client_OperByMe( Client ))) return IRC_WriteStrClient( Client, ERR_NOPRIVILEGES_MSG, Client_ID( Client )); + + Log( LOG_NOTICE|LOG_snotice, "Got RELOAD command from \"%s\", re-reading configuration ...", Client_Mask( Client )); + NGIRCd_Reload( ); + + return CONNECTED; +} /* IRC_RELOAD */ + + +GLOBAL BOOLEAN +IRC_RESTART( CLIENT *Client, REQUEST *Req ) { assert( Client != NULL ); assert( Req != NULL ); @@ -112,4 +140,25 @@ GLOBAL BOOLEAN IRC_RESTART( CLIENT *Client, REQUEST *Req ) } /* IRC_RESTART */ +GLOBAL BOOLEAN +IRC_CONNECT(CLIENT *Client, REQUEST *Req ) +{ + /* Vorlaeufige Version zu Debug-Zwecken: es wird einfach + * der "passive mode" aufgehoben, mehr passiert nicht ... */ + + assert( Client != NULL ); + assert( Req != NULL ); + + if( Client_Type( Client ) != CLIENT_USER ) return IRC_WriteStrClient( Client, ERR_NOTREGISTERED_MSG, Client_ID( Client )); + + /* Falsche Anzahl Parameter? */ + if( Req->argc != 0 ) return IRC_WriteStrClient( Client, ERR_NEEDMOREPARAMS_MSG, Client_ID( Client ), Req->command ); + if(( ! Client_HasMode( Client, 'o' )) || ( ! Client_OperByMe( Client ))) return IRC_WriteStrClient( Client, ERR_NOPRIVILEGES_MSG, Client_ID( Client )); + + Log( LOG_NOTICE|LOG_snotice, "Got CONNECT command from \"%s\".", Client_Mask( Client )); + NGIRCd_Passive = FALSE; + return CONNECTED; +} /* IRC_CONNECT */ + + /* -eof- */