/*
* ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2010 Alexander Barton (alex@barton.de)
+ * Copyright (c)2001-2011 Alexander Barton (alex@barton.de) and Contributors.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#include "ngircd.h"
#include "conn-func.h"
+#include "class.h"
#include "conf.h"
#include "channel.h"
#include "io.h"
}
#endif
+ if (Class_IsMember(CLASS_GLINE, Client) ||
+ Class_IsMember(CLASS_KLINE, Client)) {
+ Reject_Client(Client);
+ return DISCONNECTED;
+ }
+
#ifdef PAM
if (!Conf_PAM) {
/* Don't do any PAM authentication at all, instead emulate
} else {
/* Sub process */
Log_Init_Subprocess("Auth");
+ Conn_CloseAllSockets(NONE);
result = PAM_Authenticate(Client);
if (write(pipefd[1], &result, sizeof(result)) != sizeof(result))
Log_Subprocess(LOG_ERR,
/* Read result from pipe */
len = Proc_Read(proc, &result, sizeof(result));
+ Proc_Close(proc);
if (len == 0)
return;
* @param Reason Reason for the KILL.
*/
static void
-Kill_Nick( char *Nick, char *Reason )
+Kill_Nick(char *Nick, char *Reason)
{
REQUEST r;
- assert( Nick != NULL );
- assert( Reason != NULL );
+ assert (Nick != NULL);
+ assert (Reason != NULL);
- r.prefix = (char *)Client_ThisServer( );
+ r.prefix = NULL;
r.argv[0] = Nick;
r.argv[1] = Reason;
r.argc = 2;
- Log( LOG_ERR, "User(s) with nick \"%s\" will be disconnected: %s", Nick, Reason );
- IRC_KILL( Client_ThisServer( ), &r );
+ Log(LOG_ERR, "User(s) with nick \"%s\" will be disconnected: %s",
+ Nick, Reason);
+
+ IRC_KILL(Client_ThisServer(), &r);
} /* Kill_Nick */