Module: ngircd.git
Branch: master
Commit: be6994aece929425a7ac6bbdc770477cc527f2e8
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=be6994ae…
Author: Alexander Barton <alex(a)barton.de>
Date: Tue Aug 23 12:31:17 2011 +0200
New function Proc_Close() to shutdown pipes to child processes
---
src/ngircd/proc.c | 12 +++++++++++-
src/ngircd/proc.h | 5 ++++-
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/ngircd/proc.c b/src/ngircd/proc.c
index 54b3919..2a5eda8 100644
--- a/src/ngircd/proc.c
+++ b/src/ngircd/proc.c
@@ -1,6 +1,6 @@
/*
* ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2010 Alexander Barton (alex(a)barton.de)
+ * Copyright (c)2001-2011 Alexander Barton (alex(a)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
@@ -148,4 +148,14 @@ Proc_Read(PROC_STAT *proc, void *buffer, size_t buflen)
return (size_t)bytes_read;
}
+/**
+ * Close pipe to a forked child process.
+ */
+GLOBAL void
+Proc_Close(PROC_STAT *proc)
+{
+ io_close(proc->pipe_fd);
+ Proc_InitStruct(proc);
+}
+
/* -eof- */
diff --git a/src/ngircd/proc.h b/src/ngircd/proc.h
index 84b61f2..4a80edf 100644
--- a/src/ngircd/proc.h
+++ b/src/ngircd/proc.h
@@ -1,6 +1,6 @@
/*
* ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2010 Alexander Barton (alex(a)barton.de)
+ * Copyright (c)2001-2011 Alexander Barton (alex(a)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
@@ -38,6 +38,9 @@ GLOBAL void Proc_GenericSignalHandler PARAMS((int Signal));
GLOBAL size_t Proc_Read PARAMS((PROC_STAT *proc, void *buffer, size_t buflen));
+GLOBAL void Proc_Close PARAMS((PROC_STAT *proc));
+
+
#endif
/* -eof- */
Module: ngircd.git
Branch: master
Commit: 553e8b6aa3fd7bcf9e8c1f586c16c2b8ae16f877
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=553e8b6a…
Author: Alexander Barton <alex(a)barton.de>
Date: Fri Aug 19 15:51:56 2011 +0200
doc/Platforms.txt: ngIRCd 18 on Nexenta works
Thanks to Götz Hoffart for testing!
---
doc/Platforms.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/doc/Platforms.txt b/doc/Platforms.txt
index 0346ac6..58913c3 100644
--- a/doc/Platforms.txt
+++ b/doc/Platforms.txt
@@ -35,6 +35,7 @@ i386/apple/darwin10.7.0 gcc 4.2.1 18 11-07-05 alex Y Y Y Y (3)
i386/apple/darwin11.0.0 gcc 4.2.1 18 11-07-02 alex Y Y Y Y (3)
i386/pc/solaris2.9 gcc 3.2.2 CVSHEAD 04-02-24 alex Y Y Y Y
i386/pc/solaris2.11 gcc 3.4.3 18 11-07-10 alex Y Y N Y (4)
+i386/pc/solaris2.11 gcc 4.2.3 18 11-08-17 goetz Y Y Y Y (4)
i386/unknown/freebsd5.2.1 gcc 3.3.3 0.8.0 04-05-30 alex Y Y Y Y
i386/unknown/freebsd6.2 gcc 3.4.6 18 11-07-10 alex Y Y Y Y (3)
i386/unknown/freebsd7.3 gcc 4.2.1 18 11-07-10 alex Y Y Y Y (3)
Module: ngircd.git
Branch: master
Commit: 989c9fa531d83c9b1a302b222a4bcfeef767c2b6
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=989c9fa5…
Author: Alexander Barton <alex(a)barton.de>
Date: Mon Aug 1 23:30:55 2011 +0200
Handle channel user modes 'a', 'h', and 'q' from remote servers
These channel user modes aren't used for anything at the moment, but
ngIRCd knows that these three modes are "channel user modes" and not
"channel modes", that is that these modes take an "nick name" argument.
Like unknown user and channel modes, these modes are saved and forwarded,
but ignored otherwise.
---
src/ngircd/irc-mode.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/src/ngircd/irc-mode.c b/src/ngircd/irc-mode.c
index 326c104..3cceaeb 100644
--- a/src/ngircd/irc-mode.c
+++ b/src/ngircd/irc-mode.c
@@ -594,6 +594,16 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel)
Channel_Name(Channel));
break;
/* --- Channel user modes --- */
+ case 'a':
+ case 'h':
+ case 'q':
+ if (Client_Type(Client) != CLIENT_SERVER) {
+ connected = IRC_WriteStrClient(Origin,
+ ERR_CHANOPRIVSNEEDED_MSG,
+ Client_ID(Origin),
+ Channel_Name(Channel));
+ goto chan_exit;
+ }
case 'o': /* Channel operator */
case 'v': /* Voice */
if (arg_arg > mode_arg) {