about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)Author
2010-08-17Implement user mode "x": hostname cloaking (closes: #102)Alexander Barton
When a client has user mode "x" set, its real hostname is cloaked by substituting it with the server name (as configured in ngircd.conf). Restricted clients (user mode "r") aren't allowed to change mode "x". Please note that hostname cloaking is only in effect in server-client communication! The server still uses the real hostname for its own logging and for all server-server communication -- therefore all servers in the network must support user mode "x" to prevent older servers from leaking the real hostname of a cloaked client!
2010-08-17WHOWAS: respect hostname cloakingAlexander Barton
Store cloaked hostname if user mode "x" is set when the client disconnects from the server.
2010-08-17WHOIS: respect hostname cloakingAlexander Barton
2010-08-17Implement Client_HostnameCloaked() and Client_MaskCloaked()Alexander Barton
These two functions return the cloaked hostname, if the client has enabled hostname cloaking indicated by the -- still to implement -- user mode "x". See furter patches :-)
2010-08-17Clean up an document Client_Hostname() and Client_Mask()Alexander Barton
2010-08-12ngircd: change MOTD file handlingFlorian Westphal
previously, the given MotdFile file was read whenever a client requested it. Change handling to read the MotdFile contents into memory once during config file parsing. Two side effects: - changes to the MOTD file do not have any effect until ngircds configuration is reloaded - MOTD file does no longer have to reside in the chroot directory (the MOTD contents will then not be re-read on reload in that case)
2010-08-01startup: open /dev/null before chrootFlorian Westphal
before people had to create a /dev/null inside the chroot to make redirection work.
2010-07-25Allow IRC ops to change channel modes even without OperServerMode setAlexander Barton
2010-07-25Allow IRC operators to use MODE command on any channel (closes: #100)Florian Westphal
This allows IRC operators to change channel modes of ANY channel, even without joining these channels first.
2010-07-14Remove Proc_Kill(), use timeout to kill child processesAlexander Barton
This avoids a race and potentionally killing the wrong process on systems that use randomized process IDs; now the child itself is responsible to exit in a timely manner using SIGALRM.
2010-07-14New function Conn_CloseAllSockets() to close all open socketsAlexander Barton
This is useful in forked child processes, for example, to make sure that they don't hold connections open that the main process wants to close.
2010-07-13Authenticated users should be registered without the "~" markAlexander Barton
2010-07-13Don't Proc_Kill() childs after Proc_Read(): done there already.Alexander Barton
2010-07-13Don't even fork a PAM-subprocess if "NoPAM" option is setAlexander Barton
2010-07-13Use Proc_GenericSignalHandler() as handler for SIGTERM by defaultAlexander Barton
2010-07-13Mark some variables as "unused" to prevent compiler warningsAlexander Barton
Some variables are only used when compiling with IDENT or PAM support or when the debug code is enabled. Mark them as "unused" so that gcc doesn't generate warnings when neither of these options is enabled.
2010-07-13Set NoPAM=yes in configuration files used for the testsuiteAlexander Barton
2010-07-13New configuration option "NoPAM" to disable PAMAlexander Barton
When the "NoPAM" configuration option is set and ngIRCd is compiled with support for PAM, ngIRCd will not call any PAM functions: all connection attemps without password will succeed instead and all connection attemps with password will fail. If ngIRCd is compiled without PAM support, this option is a dummy option and nothing changes: the global server password will still be in effect.
2010-07-12io.c: Include conn.h when using the select() APIAlexander Barton
2010-07-12Use correct preprocessor syntax when testing for PAM and IDENTAUTHAlexander Barton
2010-07-12Make sure signal.h is #include'd when neededAlexander Barton
2010-07-12Implement asynchronous user authentication using PAMAlexander Barton
For each client connection a child process is forked which handles the actual PAM authentication and reports the result back to the master process using a pipe for communication. While the PAM authentication is in process the daemon does not block.
2010-07-12Add pam.{c|h} to project and implement PAM_Authenticate() functionAlexander Barton
2010-07-11New functions Client_[Set]OrigUser() to get/set user specified by peerAlexander Barton
The Client_SetOrigUser() function is used to store the peer-provided user name (see USER command) in its original form, not changed by IDENT results, for example.
2010-07-11Detect PAM librariesAlexander Barton
2010-07-11Refactor Resolve_Read() into generic Proc_Read() functionAlexander Barton
2010-07-11Make Proc_Kill() more fault-tolerantAlexander Barton
2010-07-11New function Conn_GetProcStat()Alexander Barton
Get PROC_STAT sub-process structure of a given connection.
2010-07-11Code cleanup: don't reset penalty time on DNS resolver resultAlexander Barton
See commit d4632a727fbee6: it's not necessary any more!
2010-07-01New function Proc_GenericSignalHandler()Alexander Barton
2010-07-01Rename Log_[{Init|Exit}_]Resolver to Log_[{Init|Exit}_]SubprocessAlexander Barton
Rename Log_Init_Resolver, Log_Exit_Resolver, and Log_Resolver to Log_Init_Subprocess, Log_Exit_Subprocess, and Log_Subprocess and make it more generic thereby.
2010-06-30Don't #include client.h when conn.h/conn-func.h is already includedAlexander Barton
conn.h and cinn-func.h both already #include client.h, so it is not needed to do it twice.
2010-06-29New function Conn_GetFromProc() to get CONN_ID of a subprocessAlexander Barton
Get CONN_ID from file descriptor associated to a subprocess structure.
2010-06-29Resolver: Implement signal handler and catch TERM signalAlexander Barton
2010-06-29Don't set a penalty time when doing DNS lookupsAlexander Barton
The logic isn't as described in the source and intended by this code: ngIRCd doesn't wait for the asynchronous resolver process until the set penalty time is over, but until the forked process terminates or the initial connection timeout (= PongTimeout) triggers. So don't set the penalty time at all and remove the wrong comment.
2010-06-29Update comments: subprocesses not only can be resolver processesAlexander Barton
2010-06-29Refactoring: Rename CONNECTION.res_stat to .proc_statAlexander Barton
We want to use this process status variable not only for the resolver subprocesses but other asynchronous tasks as well; so let's name it more generic.
2010-06-29New "module" proc.c/proc.h for generic process handlingAlexander Barton
The new "module" proc.c is used for functions dealing with child processes. At the moment, it is only used by the asynchronous resolver. All the functions already implemented habe been migrated from the resolver code base, and the rest of the ngIRCd source code has been adepted to the new namespace and calling conventions. The goal is to develop "generic" process handling functions that can be used for other purposes as well, e.g. running processes on client connects etc.
2010-06-29Only #include resolve.h if it is really neededAlexander Barton
2010-06-26Fix redundant redeclaration of Conn_Count*() functionsAlexander Barton
The wrongly placed #endif lead to the following compiler warnings: conn.h:125: warning: redundant redeclaration of ‘Conn_Count’ conn.h:125: warning: previous declaration of ‘Conn_Count’ was here conn.h:126: warning: redundant redeclaration of ‘Conn_CountMax’ conn.h:126: warning: previous declaration of ‘Conn_CountMax’ was here conn.h:127: warning: redundant redeclaration of ‘Conn_CountAccepted’ conn.h:127: warning: previous declaration of ‘Conn_CountAccepted’ was here
2010-06-26const'ify Conn_WriteStr() functionAlexander Barton
2010-06-26const'ify Send_ListChange() function in irc-mode.cAlexander Barton
2010-06-26const'ify IRC_WriteStrXXX() and Get_Prefix() functionsAlexander Barton
2010-06-26const'ify command name variable in _COMMAND strcutureAlexander Barton
2010-06-26const'ify Client_TypeText()Alexander Barton
2010-06-25Implement user mode "c": receive connect/disconnect NOTICEsAlexander Barton
Users having the user mode "c" set receive NOTICE messages on each new client connection to the local server as well as disconnects. Only IRC operators (users having the mode "o" set) are allowed to set the 'c' user mode. These connect/disconnect messages can be useful for open proxy scanners -- BOPM (http://wiki.blitzed.org/BOPM) is now functional with ngIRCd, for example.
2010-06-25Refactor Wall_ServerNotice() into more generic Log_ServerNotice()Alexander Barton
Log_ServerNotice() sends a messages to all users having a given user mode set.
2010-06-25New function Conn_IPA(): get client IP address as stringAlexander Barton
2010-06-23Show SSL status in WHOIS, numeric 275Neale Pickett
"I've been wanting this for years and finally took the 5 minutes to patch it in. I took the response code (275) from whatever's running OFTC's IRC network." -- Neale Pickett <neale@woozle.org>, Fri, 11 Jun 2010 17:32:41 -0500 (OFTC is running Hybrid ircd.)
2010-05-22Don't access already freed memory in IRC_KILL()Alexander Barton
It is not possible to call Conn_Close() after Client_Destroy() has been called, because Conn_Close wants to access the CLIENT structure which then has been freed already. Fix IRC_KILL to use Conn_Close() for local clients and Client_Destroy() for remote clients only (and never both).