]> arthur.barton.de Git - ngircd-alex.git/commitdiff
Merge pull request #217 from SaberUK/master+notice-auth
authorAlexander Barton <alex@barton.de>
Sat, 1 Aug 2015 12:51:04 +0000 (14:51 +0200)
committerAlexander Barton <alex@barton.de>
Sat, 1 Aug 2015 12:51:04 +0000 (14:51 +0200)
Use "NOTICE *" before registration instead of "NOTICE AUTH".

21 files changed:
.gitignore
AUTHORS
ChangeLog
NEWS
README
doc/.gitignore [deleted file]
doc/Contributing.txt
doc/GIT.txt [deleted file]
doc/Makefile.am
doc/Modes.txt
doc/src/.gitignore [deleted file]
man/.gitignore [deleted file]
src/.gitignore [deleted file]
src/ipaddr/.gitignore [deleted file]
src/ngircd/.gitignore [deleted file]
src/ngircd/irc-login.c
src/ngircd/irc-mode.c
src/ngircd/messages.h
src/portab/.gitignore [deleted file]
src/testsuite/.gitignore [deleted file]
src/tool/.gitignore [deleted file]

index 183dca2971b159420ecfe8ddefe07078c47109b6..e8b9f315acef97233d356234785969dc25e4ebdf 100644 (file)
@@ -1,4 +1,5 @@
 Makefile
+Makefile.am
 Makefile.in
 aclocal.m4
 ansi2knr.1
@@ -7,6 +8,7 @@ ansi2knr.h
 ar-lib
 autom4te.cache
 build-stamp-ngircd*
+build+*
 compile
 config.cache
 config.log
@@ -24,3 +26,41 @@ ngircd.dest
 .deps
 *.a
 *.o
+doc/sample-ngircd.conf
+doc/src/html
+man/ngircd.8
+man/ngircd.conf.5
+src/config.h
+src/config.h.in
+src/config.h.in~
+src/stamp-h1
+src/ngircd/check-help
+src/ngircd/check-version
+src/ngircd/ngircd
+src/ngircd/ngircd.exe
+src/portab/portabtest
+src/portab/portabtest.exe
+src/testsuite/*.e_
+src/testsuite/channel-test
+src/testsuite/connect-test
+src/testsuite/invite-test
+src/testsuite/join-test
+src/testsuite/kick-test
+src/testsuite/logs
+src/testsuite/message-test
+src/testsuite/misc-test
+src/testsuite/mode-test
+src/testsuite/ngircd-test1.log
+src/testsuite/ngircd-test1.motd
+src/testsuite/ngircd-test2.log
+src/testsuite/ngircd-test2.motd
+src/testsuite/opless-channel-test
+src/testsuite/server-link-test
+src/testsuite/T-ngircd1
+src/testsuite/T-ngircd1.exe
+src/testsuite/T-ngircd2
+src/testsuite/T-ngircd2.exe
+src/testsuite/tests
+src/testsuite/tests-skipped.lst
+src/testsuite/who-test
+src/testsuite/whois-test
diff --git a/AUTHORS b/AUTHORS
index ce6d113109c748ec3b509318656fd71d594880bb..d12e6518eafad335d125cb38308389c73413509f 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -9,9 +9,11 @@
                        -- AUTHORS and CONTRIBUTORS --
 
 
-Note: If you have critics, patches or something else, please feel free to
-post a mail to the ngIRCd mailing list: <ngircd-ml@arthur.barton.de> (please
-see <http://ngircd.barton.de/#ml> for details).
+Note:
+If you have comments, patches or something else, please feel free to post
+a mail to the ngIRCd mailing list: <ngircd-ml@ngircd.barton.de> (please see
+<http://ngircd.barton.de/support.php> for details) or join the ngIRCd IRC
+channel: <irc://irc.barton.de/ngircd>.
 
 Don't mail the people listed here directly, if possible!
 
index bd6536649d339780dfc4cf284451cb8a2913f00f..477bba4d3bb17c275c83d00d874655df7ab5c505 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,49 @@
                                -- ChangeLog --
 
 
+ngIRCd 23
+
+  - Specify session context for OpenSSL clients. This enables some OpenSSL
+    clients, including Pidgin and stunnel 5.06, to reuse a session.
+    Patch by Tom Ryder <tom@sanctum.geek.nz>, thanks! Closes #182.
+  - Keep track of who placed bans, invites, and excepts.
+    Idee and implementation by LucentW, Thanks! Closes #203.
+  - Make setgroups(3) function optional: For example, Interix is missing
+    this function, which prevented ngIRCd to build on this platform. When
+    setgroups(3) isn't available, a warning message is issued on startup.
+  - Implement numeric RPL_LISTSTART(321). lightIRC and other clients
+    expecting RPL_LISTSTART should now behave correctly.
+    Idee and implementation by LucentW, Thanks! Closes #207.
+  - Update ngircd.conf.5: "CloadUserToNick" hides user _and_ real name.
+    This closes #208.
+  - Fix case insensitive pattern matching: Up to now, only the the input
+    string became lowercased and was then compared to the pattern -- which
+    failed when the pattern itself wasn't all lowercase!
+  - Streamline the effect of "MorePrivacy" option: Update documentation
+    in ngircd.conf(5); don't hide channels for IRC Ops on LIST and don't
+    hide IP addresses/hostnames on WHOIS when "MorePrivacy" is in effect.
+    This closes #198.
+  - IRC operators now can kick anyone when "OperCanMode" is set.
+    Idee and implementation by LucentW, Thanks! Closes #202.
+  - Implement user mode "I": Hide channels on WHOIS: this mode prevents
+    ngIRCd from showing channels on WHOIS (IRC Operators can always see
+    the channel list).
+    Idee and implementation by LucentW, Thanks! Closes #197.
+  - INVITE command: Implement ERR_USERNOTONSERV(504) numeric and make sure
+    that the target user is on the same server when inviting other users
+    to local ("&") channels.
+    Idea by Cahata, thanks! Closes #183.
+  - INVITE command: Enforce 1 second penalty time, which prevents flooding
+    of the target client.
+    This closes #186. Reported by Cahata, thanks!
+  - MODE command: Always report channel creation time. Up to now when
+    receiving a MODE command, ngIRCd only reported the channel creation
+    time to clients that were members of the channel. This patch reports
+    the channel creation time to all clients, regardless if they are joined
+    to that channel or not. At least ircd-seven behaves like this.
+    This closes #188. Reported by Cahata, thanks!
+  - Update Xcode project for latest Xcode version (6.3).
+
 ngIRCd 22.1 (2015-04-06)
 
   - Update doc/Platforms.txt and doc/FAQ.txt.
diff --git a/NEWS b/NEWS
index 578b9f0744ba2e26a920640d6ee9ee73b2c2b835..86958770e08e7789345fc28d417216f77bc60f8f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,34 @@
                                   -- NEWS --
 
 
+ngIRCd 23
+
+  - Keep track of who placed bans, invites, and excepts.
+    Idee and implementation by LucentW, Thanks! Closes #203.
+  - Implement numeric RPL_LISTSTART(321). lightIRC and other clients
+    expecting RPL_LISTSTART should now behave correctly.
+    Idee and implementation by LucentW, Thanks! Closes #207.
+  - Streamline the effect of "MorePrivacy" option: Update documentation
+    in ngircd.conf(5); don't hide channels for IRC Ops on LIST and don't
+    hide IP addresses/hostnames on WHOIS when "MorePrivacy" is in effect.
+    This closes #198.
+  - IRC operators now can kick anyone when "OperCanMode" is set.
+    Idee and implementation by LucentW, Thanks! Closes #202.
+  - Implement user mode "I": Hide channels on WHOIS: this mode prevents
+    ngIRCd from showing channels on WHOIS (IRC Operators can always see
+    the channel list).
+    Idee and implementation by LucentW, Thanks! Closes #197.
+  - INVITE command: Implement ERR_USERNOTONSERV(504) numeric and make sure
+    that the target user is on the same server when inviting other users
+    to local ("&") channels.
+    Idea by Cahata, thanks! Closes #183.
+  - MODE command: Always report channel creation time. Up to now when
+    receiving a MODE command, ngIRCd only reported the channel creation
+    time to clients that were members of the channel. This patch reports
+    the channel creation time to all clients, regardless if they are joined
+    to that channel or not. At least ircd-seven behaves like this.
+    This closes #188. Reported by Cahata, thanks!
+
 ngIRCd 22.1 (2015-04-06)
 
   - Update "CipherList" to not enable SSLv3 by default. Idea, initial patch,
diff --git a/README b/README
index ef71c273cfd9bb596c74cc5214d4a57cf9280986..05644ec744903962da09db4905e552a0d076a072 100644 (file)
--- a/README
+++ b/README
@@ -74,7 +74,7 @@ releases there.
 If you are interested in the latest development versions (which are not
 always stable), then please read the section about "GIT" on the homepage and
 the file "doc/GIT.txt" which describes the use of GIT, the version control
-system used by ngIRCd (homepage: http://git-scm.com/).
+system used by ngIRCd (homepage: <http://git-scm.com/>).
 
 
 VI. Bugs
@@ -83,11 +83,11 @@ VI. Bugs
 If you find bugs in the ngIRCd (which might be there :-), please report
 them at the following URL:
 
-<http://ngircd.barton.de/bugtracker.php>
+<https://github.com/ngircd/ngircd/issues>
 
 There you can read about known bugs and limitations, too.
 
-If you have critics, patches or something else, please feel free to post a
-mail to the ngIRCd mailing list: <ngircd-ml@arthur.barton.de> (please see
-<http://ngircd.barton.de/support.php#ml> for details) or join the ngIRCd
-IRC channel: <irc://irc.barton.de/ngircd>.
+If you have comments, patches or something else, please feel free to post
+a mail to the ngIRCd mailing list: <ngircd-ml@ngircd.barton.de> (please see
+<http://ngircd.barton.de/support.php> for details) or join the ngIRCd IRC
+channel: <irc://irc.barton.de/ngircd>.
diff --git a/doc/.gitignore b/doc/.gitignore
deleted file mode 100644 (file)
index 0035855..0000000
+++ /dev/null
@@ -1 +0,0 @@
-sample-ngircd.conf
index 089afd4cc31839256a34293a6d6d0ce5b81ba5f4..677a1b801d5ee9295ae85c2be31ea9f9d10494d1 100644 (file)
@@ -2,7 +2,7 @@
                      ngIRCd - Next Generation IRC Server
                            http://ngircd.barton.de/
 
-               (c)2001-2011 Alexander Barton and Contributors.
+               (c)2001-2015 Alexander Barton and Contributors.
                ngIRCd is free software and published under the
                    terms of the GNU General Public License.
 
@@ -52,3 +52,9 @@ get an idea of how to do it the best :-)
 
    And this is open source, your work must not be 100% finished and perfect,
    work in progress is interesting, too: "release early, release often"!
+
+- Use GitHub to create "Pull Requests"
+
+  ngIRCd is hosted on GitHub (<https://github.com/ngircd>), so please use the
+  tools available there and open issues (comment!) and create pull requests!
+  See <https://help.github.com/articles/using-pull-requests/> for details.
diff --git a/doc/GIT.txt b/doc/GIT.txt
deleted file mode 100644 (file)
index f3b2e63..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-
-                     ngIRCd - Next Generation IRC Server
-                           http://ngircd.barton.de/
-
-               (c)2001-2011 Alexander Barton and Contributors.
-               ngIRCd is free software and published under the
-                   terms of the GNU General Public License.
-
-                                 -- GIT.txt --
-
-
-The source code of ngIRCd is maintained using GIT, an distributed version
-control system. Homepage including documentation: <http://git-scm.com/>.
-
-
-I. Viewing the source code online
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The ngIRCd "GITweb" interface allows you to browse the GIT repository and
-to see all individual files, tags, branches, commits etc.:
-
- <http://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git>
-
-
-II. Getting the source code
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To access (copy, clone) the source tree repository anonymously, run:
-
- $ git clone git://ngircd.barton.de/ngircd.git
-
-Thereby a new folder "ngircd" will be created containing all the individual
-source files.
-
-The newly created directory ("ngircd") is the "working directory", all
-GIT commands will be executed from within this directory in the future.
-
-Please note: When checking out a fresh copy of ngIRCd using GIT, the
-configure script doesn't exist; you have to run the autogen.sh shell script
-(which is included in the source tree) to generate it. This requires you to
-have GNU automake and GNU autoconf installed on your system. Please see the
-file INSTALL for details!
-
-To update the local GIT repository:
-
- $ git pull
-
-This retrieves all changes and merges them into the current branch.
-
-
-III. Contributing
-~~~~~~~~~~~~~~~~~
-
-Patches should be sent to the ngircd mailing list. List homepage:
-http://arthur.barton.de/mailman/listinfo/ngircd-ml
-
-If you do not want to send them to the list, you can also mail them
-to Alex Barton, <alex@barton.de>.
-
-
-IV. Write Access
-~~~~~~~~~~~~~~~~
-
-If you want to contribute a couple of patches and write access to the GIT
-repository would be handy, please contact Alex Barton, <alex@barton.de>.
index 27942dd3d05c32c0326253d6cadece421506110e..5913c94ee1fdd05fbd34808c80d3e11646e79cb3 100644 (file)
@@ -1,6 +1,6 @@
 #
 # ngIRCd -- The Next Generation IRC Daemon
-# Copyright (c)2001-2013 Alexander Barton (alex@barton.de) and Contributors
+# Copyright (c)2001-2015 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
@@ -23,7 +23,6 @@ static_docs = \
        Commands.txt \
        Contributing.txt \
        FAQ.txt \
-       GIT.txt \
        HowToRelease.txt \
        Modes.txt \
        PAM.txt \
index 07f16eb0489b8a959cddc6cf1205af6027b2310d..d2f6dad78dfea606d898e4ab8819ea0ffbe9379e 100644 (file)
@@ -56,6 +56,7 @@ users to lists (e.g. "invite list", "ban list"), others have parameters
   m    0.3.0   Channel is moderated, only "voiced" users can send messages.
   M    20      Only registered users (and IRC Ops) can send messages.
   n    0.3.0   Channel doesn't allow messages of users not being members.
+  N     23      Users can't change their nickname while on this channel.
   O    18      Only IRC operators are allowed to join this channel.
   P    0.5.0   Channel is "persistent".
   Q    20      Nobody can be kicked from the channel.
diff --git a/doc/src/.gitignore b/doc/src/.gitignore
deleted file mode 100644 (file)
index 1936cc1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-html
diff --git a/man/.gitignore b/man/.gitignore
deleted file mode 100644 (file)
index af7d6f1..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-ngircd.8
-ngircd.conf.5
diff --git a/src/.gitignore b/src/.gitignore
deleted file mode 100644 (file)
index 5f069df..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-config.h
-config.h.in
-config.h.in~
-stamp-h1
diff --git a/src/ipaddr/.gitignore b/src/ipaddr/.gitignore
deleted file mode 100644 (file)
index 08a6d72..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile.am
diff --git a/src/ngircd/.gitignore b/src/ngircd/.gitignore
deleted file mode 100644 (file)
index 39a55e7..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Makefile.am
-check-help
-check-version
-ngircd
-ngircd.exe
index 98ac0e7f5e07ead740eed5297eb8b45802b59b8d..9fca622ba0ea66422940e2d71dc2dff0d5f2eee4 100644 (file)
@@ -172,6 +172,7 @@ GLOBAL bool
 IRC_NICK( CLIENT *Client, REQUEST *Req )
 {
        CLIENT *intr_c, *target, *c;
+       CHANNEL *chan;
        char *nick, *user, *hostname, *modes, *info;
        int token, hops;
 
@@ -259,6 +260,22 @@ IRC_NICK( CLIENT *Client, REQUEST *Req )
                                Client_SetType( Client, CLIENT_GOTNICK );
                } else {
                        /* Nickname change */
+
+                       /* Check that the user isn't on any channels set +N */
+                       if(Client_Type(Client) == CLIENT_USER &&
+                          !Client_HasMode(Client, 'o')) {
+                               chan = Channel_First();
+                               while (chan) {
+                                       if(Channel_HasMode(chan, 'N') &&
+                                          Channel_IsMemberOf(chan, Client))
+                                               return IRC_WriteErrClient(Client,
+                                                                         ERR_NONICKCHANGE_MSG,
+                                                                         Client_ID(Client),
+                                                                         Channel_Name(chan));
+                                       chan = Channel_Next(chan);
+                               }
+                       }
+
                        Change_Nick(Client, target, Req->argv[0],
                                    Client_Type(Client) == CLIENT_USER ? true : false);
                        IRC_SetPenalty(target, 2);
index 2f9225067a4aa503146c142c811ac224243052ed..99255df14a5433f60b3ad56e35f7e8f802175916 100644 (file)
@@ -580,6 +580,7 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel)
                case 'M': /* Only identified nicks can write */
                case 'm': /* Moderated */
                case 'n': /* Only members can write */
+               case 'N': /* Can't change nick while on this channel */
                case 'Q': /* No kicks */
                case 't': /* Topic locked */
                        if(is_oper || is_machine || is_owner ||
index 8a7215b42172464a3f77204225292760fb47af5c..4f1632b09270f7a1c8f3d032f13047fed7851350 100644 (file)
 #define ERR_USERONCHANNEL_MSG          "443 %s %s %s :is already on channel"
 #define ERR_SUMMONDISABLED_MSG         "445 %s :SUMMON has been disabled"
 #define ERR_USERSDISABLED_MSG          "446 %s :USERS has been disabled"
+#define ERR_NONICKCHANGE_MSG           "447 %s :Cannot change nickname while on %s(+N)"
 #define ERR_NOTREGISTERED_MSG          "451 %s :Connection not registered"
 #define ERR_NOTREGISTEREDSERVER_MSG    "451 %s :Connection not registered as server link"
 #define ERR_NEEDMOREPARAMS_MSG         "461 %s %s :Syntax error"
diff --git a/src/portab/.gitignore b/src/portab/.gitignore
deleted file mode 100644 (file)
index 9b94606..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Makefile.am
-portabtest
-portabtest.exe
diff --git a/src/testsuite/.gitignore b/src/testsuite/.gitignore
deleted file mode 100644 (file)
index d6715ae..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-Makefile.am
-T-ngircd1
-T-ngircd1.exe
-T-ngircd2
-T-ngircd2.exe
-channel-test
-connect-test
-invite-test
-join-test
-kick-test
-message-test
-misc-test
-mode-test
-opless-channel-test
-server-link-test
-who-test
-whois-test
-ngircd-test1.log
-ngircd-test2.log
-ngircd-test1.motd
-ngircd-test2.motd
-logs
-tests
-tests-skipped.lst
diff --git a/src/tool/.gitignore b/src/tool/.gitignore
deleted file mode 100644 (file)
index 08a6d72..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile.am