Alexander Barton
01e40f4b55
Allow IRC ops to change channel modes even without OperServerMode set
2010-07-25 16:44:38 +02:00
Florian Westphal
acb66d6463
Allow IRC operators to use MODE command on any channel ( closes : #100 )
...
This allows IRC operators to change channel modes of ANY channel,
even without joining these channels first.
2010-07-25 16:18:25 +02:00
Alexander Barton
5462c6c50f
Don't #include client.h when conn.h/conn-func.h is already included
...
conn.h and cinn-func.h both already #include client.h, so it is
not needed to do it twice.
2010-06-30 23:49:52 +02:00
Alexander Barton
cc336b7558
Only #include resolve.h if it is really needed
2010-06-29 22:55:27 +02:00
Alexander Barton
c6742192a6
const'ify Send_ListChange() function in irc-mode.c
2010-06-26 00:42:12 +02:00
Alexander Barton
f76e0a1db6
Implement user mode "c": receive connect/disconnect NOTICEs
...
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-25 00:33:01 +02:00
Alexander Barton
9f58418765
Implemented new "secure clients only" channel mode: +z
...
Only clients using a SSL encrypted connection to the server are
allowed to join such a channel.
But please note three things:
a) already joined clients are not checked when setting this mode,
b) IRC operators are always allowed to join every channel, and
c) remote clients using a server not supporting this mode are not
checked either and therefore always allowed to join.
2010-01-17 14:20:07 +01:00
Alexander Barton
66c6458ae7
Channel_Mode(): fix return code of function
...
Fix error handling of Channel_Mode() to return the correct connection
status ("connected"/"disconnected") insted of always returning success.
2009-09-11 00:48:07 +02:00
Florian Westphal
544b9884f4
remove or translate old comments
2009-04-21 20:58:30 +02:00
Florian Westphal
e9e7fc33f1
add and use Channel_IsModeless()
...
avoid "name[0] == '+'" where possible, having Channel_IsModeless()
makes things much more obvious.
2009-03-07 00:13:25 +01:00
Alexander Barton
0a9608a26f
Channel mode changes: break on error
...
Don't echo multiple syntax error messages (461) on invalid commands,
but break after the first one.
In addition, this solves corrupted 'Unknown mode "+' messages.
2009-03-03 16:33:40 +01:00
Alexander Barton
dee89c2355
Channel_Mode(): code cleanup (no functional changes)
2009-03-03 15:06:34 +01:00
Florian Westphal
1c7b9dbe93
remove unneeded LOG_DEBUG when not compiling with DEBUG support
...
when ngircd is build without DEBUG enabled, LOG_DEBUG messages
are always discarded.
To avoid the extra code, ngircd has a LogDebug() wrapper which
gets removed by the compiler when compiling without DEBUG defined.
Update a few functings which were using the
Log(LOG_DEBUG, .. interface directly without #ifdef DEBUG guards.
text data bss dec hex filename
127748 1900 28280 157928 268e8 ngircd.before
126836 1896 28280 157012 26554 ngircd.after
2009-01-10 00:54:07 +01:00
Alexander Barton
2cc21caf32
Implement local channels (prefix "&")
...
This patch implements server-local channels, prefix "&", that are only
visible to users of the same local server and not in the network.
Patch written by Scott Perry (2008-06-04), see:
- http://arthur.barton.de/cgi-bin/bugzilla/show_bug.cgi?id=87
- http://arthur.barton.de/cgi-bin/bugzilla/attachment.cgi?id=24&action=view
2008-11-17 21:52:56 +01:00
Alexander Barton
d93030ad27
Make real use of the CLIENT_SERVICE client type.
...
This patch enables ngIRCd to handle IRC services as real services, and not
as "fake users":
- Set correct client type CLIENT_SERVICE for services,
- Change log messages to include correct client type,
- PRIVMSG: allow users to send messages to services,
- Send services nick names to other servers (as users).
Please note that this patch doesn't announce services as services in the
network, but as regular users (as before). Only the local server knows
of services as services (see LUSERS command, for example). It is up to
one of the next patches to fix this and to introduce the SERVICE command
in server to server communication.
The propagation of services as regular users between servers doesn't limit
the functionality of the IRC services and will be the fallback for servers
that don't support "real" services propagation in the future.
2008-09-23 11:53:15 +02:00
Florian Westphal
f7c2e8223f
Always enable modeless channels.
...
Modeless channels (+channels) are described in RFC 2811;
so my modifications to
530112b114
('Add support for modeless channels')
to disable +channels for --strict-rfc configurations
were wrong. This reverts those changes.
2008-05-01 18:08:07 +02:00
Ali Shemiran
530112b114
Add support for modeless channels
...
Add support for modeless channels (+channels).
[fw@strlen.de:
- integrate test cases
- don't support +channels when compiled with --strict-rfc
- do not set +o mode for channel creator
- force +nt mode when channel is created ]
2008-05-01 15:55:12 +02:00
Florian Westphal
8df445316a
Channel_Mode: Remove duplicate code.
...
Incidentially, this doesn't even change the
generated code...
2008-04-19 16:58:00 +02:00
Florian Westphal
11af32466f
Channel_Mode: change order of if (set) and if (client) check.
2008-04-19 16:51:42 +02:00
Florian Westphal
5538115537
Channel_Mode: Re-indent switch.
...
No functional changes were made.
2008-04-19 16:45:31 +02:00
Florian Westphal
b8643477ba
Channel_Mode: check return type of Invite/Ban Add/Del function
2008-04-19 16:17:11 +02:00
Florian Westphal
796dcf6a62
Channel_Mode: unify 'b' and 'I' switch/case handling.
2008-04-19 14:16:17 +02:00
Florian Westphal
6b0c094809
Channel_Mode: Unify Del_Invite and Del_Ban handler
2008-04-19 14:12:06 +02:00
Florian Westphal
2dd51a98e4
Channel_Mode: Unify Add_Invite and Add_Ban handler
2008-04-19 14:02:54 +02:00
Florian Westphal
e710e8ae37
Channel_Mode cleanups
...
- better indentation
- move answering request into seperate function.
2008-02-26 23:49:33 +01:00
Dana Dahlstrom
1784180bf3
Don't send trailing space in MODE messages
...
Under some circumstances ngIRCd currently issues a channel MODE message
with a trailing space after the last parameter, which isn't permitted by
the grammar in RFC 2812 section 2.3.1:
http://tools.ietf.org/html/rfc2812#section-2.3.1
The following patch modifies mode-test.e to expose this, and modifies
irc-mode.c to correct it.
2008-02-26 23:49:33 +01:00
Alexander Barton
8f162f4e17
Fixed propagation of channel mode 'P' on server links.
2007-10-14 12:08:57 +00:00
Florian Westphal
4b9e52eb4d
implement /WALLOPS as described in RFC 2812, section 4.7.
2007-08-02 10:14:26 +00:00
Florian Westphal
fa7bb2790a
moved invite/ban lists to channel structure
2006-12-07 17:57:20 +00:00
Florian Westphal
6e105bf87e
channel maxusers now unsigned long
2006-10-06 21:32:58 +00:00
Florian Westphal
0eccdbc137
-whitespace damage
2006-08-12 11:56:24 +00:00
Alexander Barton
dd3a3bc603
Use some more specific data types (e. g. pid_t vs. int), make "SPLint" happy :-)
2006-05-10 21:24:01 +00:00
Alexander Barton
77f54693ef
Removed unnecessary #define of "LOCAL", now use plain C "static" instead.
2005-07-31 20:13:07 +00:00
Florian Westphal
b0699efdab
remove unneeded strpy()
2005-06-17 19:14:58 +00:00
Alexander Barton
dd9b4bc956
Away status texts set due to "a"-Modes received from other servers have
...
been fixed: the status text of the server has been set instead of the
away status text of the client (most probably introduced by patch 1.36).
2005-05-14 20:29:34 +00:00
Alexander Barton
aa25cd7da2
Reorder #includes, necessary due to removal of #include "defines.h" in
...
the client.h header file.
2005-04-27 07:38:00 +00:00
Florian Westphal
8adff59223
Remove INT, LONG, BOOLEAN, STATIC, CONST, CHAR datatypes.
...
use stdbool.h / inttypes.h if available.
2005-03-19 18:43:48 +00:00
Alexander Barton
1d08d51e2e
New configuration option "OperServerMode".
2005-03-15 16:56:16 +00:00
Alexander Barton
e618041168
Reduce the number of calls of strlen(). Idea by Florin Westphal.
2005-03-05 11:44:01 +00:00
Alexander Barton
4ef172d603
Implemented support for "secret channels" (channel mode "s").
2005-03-02 16:35:10 +00:00
Alexander Barton
8579b2a1e5
Clean up the mode handling code: remove redundant parts ...
2005-02-27 20:09:44 +00:00
Alexander Barton
967476799f
Don't send MODE changes when origin is a server and
...
mask is already known.
2004-04-25 15:42:05 +00:00
Alexander Barton
64d330b726
Fixed handling of already existent entries in invite and ban lists:
...
the attempt to add an already existent entry is no error, it must
be propagated across servers (but not added to the list!).
2004-04-09 21:41:52 +00:00
Alexander Barton
56227abc5e
Changed the reply of the MODE command to match the syntax of the original
...
ircd exactly: the unnecessary but missing ":" before the last parameter
has been added.
2004-02-29 16:28:44 +00:00
Alexander Barton
7b6e26628a
Fixed and enhanced penalty handling; changed internal time resoluiton of
...
the server to one second. Code cleanup.
2003-11-05 23:24:48 +00:00
Alexander Barton
fbec1f1070
The server didn't validate wheather the "target" client of a channel
...
user mode change is a valid channel member or not.
2003-01-21 21:04:16 +00:00
Alexander Barton
e07542a1ff
- Non-members of a channel could crash the server when trying to change its modes. Fixed.
2003-01-17 19:04:19 +00:00
Alexander Barton
df00b38a0b
- MODE returns the key and user limit for channel members correctly now.
2003-01-08 23:00:12 +00:00
Alexander Barton
8c1df9ef8d
- The server sets a correct away message now when receiving a "MODE +a".
2003-01-02 17:57:09 +00:00
Alexander Barton
b316c380ad
- replaced some calls to sprintf() with snprintf() -- more secure :-)
2002-12-26 17:14:48 +00:00
Alexander Barton
695631b298
- replaced a lot of strcpy() calls with strlcpy() which is more secure.
2002-12-26 17:04:54 +00:00
Alexander Barton
6626395c88
- replaced a lot of strcat() calls with strlcat() which is more secure.
2002-12-26 16:48:14 +00:00
Alexander Barton
8841d87365
- fixed user mode propagation over server-links (IRC operator, away, ...)
2002-12-18 14:16:21 +00:00
Alexander Barton
69ad0e386e
- Implemented channel modes k (key) and l (user limit).
2002-12-16 23:06:46 +00:00
Alexander Barton
7f61f413f4
- fixed broken handling of modes received from other servers.
2002-12-16 10:52:53 +00:00
Alexander Barton
c0d74a3860
- fixed some parsing bugs.
...
- better logging.
2002-12-15 16:29:18 +00:00
Alexander Barton
80c6dc86ed
- new (and much more flexible!) MODE parser
2002-12-15 15:51:24 +00:00
Alexander Barton
25ca2b3cc5
- removed Conf_MaxPChannels and reverted to old behavior.
2002-12-14 13:36:19 +00:00
Alexander Barton
2694017426
- Conf_MaxPChannels is considered properly in channel mode changes now.
2002-12-14 13:24:09 +00:00
Alexander Barton
490f28ffd1
- new file header format (in english);
...
- new file ident semantics.
2002-12-12 12:24:18 +00:00
Alexander Barton
1e59617d2c
- Parser auf Befehlstabelle umgestellt.
2002-11-30 15:04:57 +00:00
Alexander Barton
085a03d107
- Channel-Mode "P" ("persistent") kann nur noch von IRC-Ops gesetzt werden.
2002-11-22 18:28:22 +00:00
Alexander Barton
f3c0c7c0b3
- Parameter von List_Add{Invited|Banned}() erweitert.
2002-09-08 17:05:25 +00:00
Alexander Barton
c2aefbb3e1
- auch Nicht-ChanOps konnten Ban- und Invite-Lists veraendern.
2002-09-08 01:38:36 +00:00
Alexander Barton
296ddebed1
- Bans/Invites: andere Server wurden nicht informiert.
...
- neue Funktion Send_ListChange().
2002-09-08 01:16:58 +00:00
Alexander Barton
19ac723e48
- Invite- und Ban-Lists (MODE +I, MODE +b) implementiert.
2002-09-08 00:51:28 +00:00
Alexander Barton
7e1b3b9157
- neue Konfigurationsoption "OperCanUseMode" (Sektion "Global"):
...
ist sie aktiv, koennen IRC-Operatoren immer Channel-Modes setzen.
2002-09-02 14:59:17 +00:00
Alexander Barton
7d30c8cebc
- Hmpf. "Verfruehtes" CVS-Update einiger Source-Files zurueckgenommen ...
2002-08-26 23:47:58 +00:00
Alexander Barton
d645ce86e9
- Bei einem JOIN in einen persistenten Channel werden nun evtl. zu setzende
...
User-Modes korrekt in den Channel gemeldet.
2002-08-26 23:39:22 +00:00
Alexander Barton
74b1205783
- nicht unterstuetzte Channel-Modes entfernt.
2002-06-02 15:14:22 +00:00
Alexander Barton
c2f60abe55
- Anpassungen an pre-ANSI-Compiler,
...
- Includes aufgeraumt: Header includieren keine anderen mehr.
2002-05-27 13:09:26 +00:00
Alexander Barton
040f5422f2
- persistente und vordefinierte Channels implementiert.
2002-05-21 00:10:16 +00:00
Alexander Barton
d4fca86ae8
- alle Client_GetFromID() durch Client_Search() ersetzt.
...
- neuer Mode "s": Server Messages.
2002-03-25 17:11:45 +00:00
Alexander Barton
ca33cbda05
- externe portab-Header werden nicht mehr benoetigt/benutzt, dadurch
...
einige Aenderungen an diversen Source-Dateien und Headern.
- Dateien enthalten keine CVS-History mehr.
2002-03-12 14:37:51 +00:00
Alexander Barton
802a17b11d
- der AWAY-Mode wurde nicht ueber mehrere Server-Links weitergegeben.
2002-03-04 01:06:24 +00:00
Alexander Barton
c23199d971
- Modul aus irc.c bzw. irc.h ausgegliedert.
2002-02-27 23:26:21 +00:00