Hello community,
here is the log from the commit of package syslog-ng
checked in at Thu May 1 15:02:24 CEST 2008.
--------
--- syslog-ng/syslog-ng.changes 2008-03-28 08:12:11.000000000 +0100
+++ /mounts/work_src_done/STABLE/syslog-ng/syslog-ng.changes 2008-04-30 11:40:46.000000000 +0200
@@ -1,0 +2,18 @@
+Wed Apr 30 11:35:30 CEST 2008 - mt@suse.de
+
+- Update to syslog-ng 2.0.9 (fate#303216).
+- Disabled -fPIE/-pie usage, that is not possible any more.
+- Changed the configure path usage in syslog-ng.h to point to
+ the desired installation paths.
+- Increased level of successfull reload message to notice.
+- Disabled parsing of a hostname on afunix (/dev/log) sockets
+ as workaround to not to interpret first part of a broken tag
+ containing spaces as hostname; the glibc syslog functions do
+ not send any hostname (bnc#49521).
+- Reimplemented patch to update own hostname on SIGHUP/reload
+ (bnc#116466).
+- Reimplemented -a <log socket> feature (fate#300891).
+- Mentioned /usr/share/doc/packages/syslog-ng as documentation
+ source in manual pages (bnc#373960).
+
+-------------------------------------------------------------------
Old:
----
syslog-ng-1.6.12.tar.gz
syslog-ng-1.6.12.tar.gz.asc
syslog-ng-additional-log-sockets.dif
syslog-ng-afunix_dest_reconnect.dif
syslog-ng-filter_checks.dif
syslog-ng-handle-line.diff
syslog-ng-man8.dif
syslog-ng-no-perm-change.dif
syslog-ng.pdf
syslog-ng-sigaction.dif
syslog-ng-summarize.dif
New:
----
eventlog-0.2.7.tar.bz2
syslog-ng-2.0.9-strncat.dif
syslog-ng-2.0.9.tar.bz2
syslog-ng-add-log-sockets.dif
syslog-ng-man-pages.dif
syslog-ng-path-defaults.dif
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ syslog-ng.spec ++++++
--- /var/tmp/diff_new_pack.L24607/_old 2008-05-01 15:01:06.000000000 +0200
+++ /var/tmp/diff_new_pack.L24607/_new 2008-05-01 15:01:06.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package syslog-ng (Version 1.6.12)
+# spec file for package syslog-ng (Version 2.0.9)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -12,9 +12,9 @@
Name: syslog-ng
-BuildRequires: bison flex gperf klogd libol-devel tcpd-devel
-Version: 1.6.12
-Release: 63
+%define eventlog_version 0.2.7
+Version: 2.0.9
+Release: 1
License: GPL v2 or later
Group: System/Daemons
Summary: The new-generation syslog-daemon
@@ -22,27 +22,26 @@
PreReq: %insserv_prereq %fillup_prereq /sbin/klogd /etc/init.d/syslog
Provides: syslog
AutoReqProv: on
-Source0: http://www.balabit.com/downloads/syslog-ng/1.6/src/%{name}-%{version}.tar.gz
-Source1: http://www.balabit.com/downloads/syslog-ng/1.6/src/%{name}-%{version}.tar.gz.asc
-Source2: syslog-ng.pdf
-Source3: syslog-ng.README
-Source4: syslog-ng.logrotate
-Source5: syslog-ng.rc-script
-Source6: syslog-ng.sysconfig
-Source7: syslog-ng.conf.default
-#Patch0: syslog-ng-%{version}.dif
-Patch1: syslog-ng-afunix_no_hostname.dif
-Patch2: syslog-ng-update_own_hostname.dif
-Patch3: syslog-ng-afunix_dest_reconnect.dif
-Patch4: syslog-ng-additional-log-sockets.dif
-Patch5: syslog-ng-handle-line.diff
-Patch6: syslog-ng-filter_checks.dif
-Patch7: syslog-ng-sigaction.dif
-Patch8: syslog-ng-verbose_reload.dif
-Patch9: syslog-ng-summarize.dif
-Patch10: syslog-ng-no-perm-change.dif
-Patch11: syslog-ng-man8.dif
+#Source0: http://www.balabit.com/downloads/files/syslog-ng/sources/2.0/src/syslog-ng-%{version}.tar.gz
+#Source1: http://www.balabit.com/downloads/files/syslog-ng/sources/2.0/src/eventlog-%{eventlog_version}.tar.gz
+Source0: http://www.balabit.com/downloads/files/syslog-ng/sources/2.0/src/syslog-ng-%{version}.tar.bz2
+Source1: http://www.balabit.com/downloads/files/syslog-ng/sources/2.0/src/eventlog-%{eventlog_version}.tar.bz2
+Source10: syslog-ng.README
+Source11: syslog-ng.logrotate
+Source12: syslog-ng.rc-script
+Source13: syslog-ng.sysconfig
+Source14: syslog-ng.conf.default
+Patch1: syslog-ng-%{version}-strncat.dif
+Patch10: syslog-ng-path-defaults.dif
+Patch11: syslog-ng-verbose_reload.dif
+Patch12: syslog-ng-add-log-sockets.dif
+Patch13: syslog-ng-afunix_no_hostname.dif
+Patch14: syslog-ng-update_own_hostname.dif
+Patch15: syslog-ng-man-pages.dif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildRequires: bison flex gcc-c++ glib2-devel pkgconfig
+BuildRequires: klogd libnet python tcpd-devel
+BuildRequires: gdb ltrace strace
%description
syslog-ng is a "new-generation" syslogd (replacement) for Unix and
@@ -71,50 +70,86 @@
BalaBit IT Ltd.
%prep
-%setup -q -n syslog-ng-%{version}
-#%patch0 -p0
+%setup -q -n syslog-ng-%{version} -a 1
%patch1 -p0
-%patch2 -p0
-%patch3 -p0
-%patch4 -p0
-%patch5 -p0
-%patch6 -p0
-%patch7 -p0
-%patch8 -p0
-%patch9 -p0
%patch10 -p0
%patch11 -p0
+%patch12 -p0
+%patch13 -p0
+%patch14 -p0
+%patch15 -p0
+cp -a $RPM_SOURCE_DIR/syslog-ng.README README.SuSE
+cp -a $RPM_SOURCE_DIR/syslog-ng.rc-script .
cp -a $RPM_SOURCE_DIR/syslog-ng.conf.default .
%ifarch s390 s390x
sed -i -e 's/tty10/console/g' syslog-ng.conf.default
%endif
%{?suse_update_config:%{suse_update_config -f}}
+pushd eventlog-%{eventlog_version}
+%{?suse_update_config:%{suse_update_config -f}}
+popd
%build
##
## build ####################################################
##
-export CFLAGS="$RPM_OPT_FLAGS -fPIC"
-export LDFLAGS="-pie"
-# update configure scripts & tools:
+export CFLAGS="$RPM_OPT_FLAGS"
+#
+# - build eventlog library first
+#
+pushd eventlog-%{eventlog_version}
+%configure \
+ --enable-ipv6 \
+ --enable-tcp-wrapper \
+ --enable-spoof-source \
+ --disable-shared
+make %_smp_mflags
+popd
+#
+# - install eventlog lib into a local directory
+#
+make -C eventlog-%{eventlog_version} \
+ DESTDIR=$PWD/eventlog install
+#
+# - update configure scripts & tools:
+#
aclocal --force
libtoolize -f
automake --foreign --add-missing --copy --force-missing
autoheader
autoconf
-# avoid regeneration of *.x files:
-touch src/*.c src/*.x
-rm -f src/cfg-grammar.[cho]
-rm -f src/cfg-lex.[co]
-# ok, lets go:
+#
+# - configure syslog-ng using local eventlog library;
+# syslog-ng links it statically by default anyway,
+# so we can avoid to install the eventlog lib at
+# all as long as we are the only app using it...
+#
+export EVTLOG_CFLAGS="-I$PWD/eventlog%_includedir/eventlog"
+export EVTLOG_LIBS="-L$PWD/eventlog%_libdir -levtlog"
./configure \
- --prefix=/usr --sbindir=/sbin --sysconfdir=/etc \
- --localstatedir=/var/run --mandir=%{_mandir} \
- --enable-tcp-wrapper
-make
-install -m644 $RPM_SOURCE_DIR/syslog-ng.pdf doc/sgml/syslog-ng.pdf
-tar xvzf doc/sgml/syslog-ng.html.tar.gz -C doc/sgml
-mv doc/sgml/syslog-ng.html doc/sgml/html
+ --prefix=%_prefix \
+ --bindir=/bin \
+ --sbindir=/sbin \
+ --sysconfdir=%_sysconfdir \
+ --mandir=%_mandir \
+ --datadir=%_datadir \
+ --localstatedir=%_localstatedir \
+ --enable-ipv6 \
+ --enable-tcp-wrapper \
+ --enable-spoof-source
+#
+# - build syslog-ng
+#
+make %_smp_mflags
+
+%check
+##
+## check ####################################################
+##
+pushd eventlog-%{eventlog_version}
+make check
+popd
+make check
%install
##
@@ -124,25 +159,25 @@
for dir in sbin/conf.d \
etc/syslog-ng \
etc/logrotate.d \
+ var/lib/syslog-ng \
var/adm/fillup-templates ;
do
- test -d $RPM_BUILD_ROOT/$dir || mkdir -p $RPM_BUILD_ROOT/$dir
+ test -d $RPM_BUILD_ROOT/$dir || \
+ install -d -m755 $RPM_BUILD_ROOT/$dir
done
#
-make prefix=$RPM_BUILD_ROOT/usr \
- sbindir=$RPM_BUILD_ROOT/sbin \
- sysconfdir=$RPM_BUILD_ROOT/etc \
- localstatedir=$RPM_BUILD_ROOT/var/run \
- mandir=$RPM_BUILD_ROOT/%{_mandir} \
- install
-#
-install -m644 $RPM_SOURCE_DIR/syslog-ng.README README.SuSE
install -m644 syslog-ng.conf.default \
$RPM_BUILD_ROOT/etc/syslog-ng/syslog-ng.conf
install -m644 $RPM_SOURCE_DIR/syslog-ng.sysconfig \
$RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.syslog-ng
install -m644 $RPM_SOURCE_DIR/syslog-ng.logrotate \
$RPM_BUILD_ROOT/etc/logrotate.d/syslog-ng
+#
+make DESTDIR=${RPM_BUILD_ROOT} install
+#
+tar -C doc/reference -xf doc/reference/syslog-ng.html.tar.gz
+mv doc/reference/syslog-ng.html doc/reference/html
+mv doc/reference/html/index.html doc/reference/syslog-ng.html
%clean
##
@@ -248,19 +283,34 @@
##
%defattr(-,root,root)
%doc COPYING AUTHORS README ChangeLog INSTALL NEWS
-%doc doc/stresstest.sh doc/syslog-ng.conf.{sample,demo}
-%doc doc/sgml/syslog-ng.{txt,pdf} doc/sgml/html
-%doc README.SuSE $RPM_SOURCE_DIR/syslog-ng.rc-script
-%doc $RPM_SOURCE_DIR/syslog-ng.conf.default
+%doc README.SuSE syslog-ng.rc-script syslog-ng.conf.default
+%doc doc/examples doc/reference/syslog-ng.txt doc/reference/syslog-ng.html
+%attr(755,root,root) /bin/loggen
%attr(755,root,root) /sbin/syslog-ng
%{_mandir}/man5/syslog-ng.conf.5*
%{_mandir}/man8/syslog-ng.8*
%dir /etc/syslog-ng
%config(noreplace) /etc/syslog-ng/syslog-ng.conf
%config(noreplace) /etc/logrotate.d/syslog-ng
+%dir /var/lib/syslog-ng
/var/adm/fillup-templates/sysconfig.syslog-ng
%changelog
+* Wed Apr 30 2008 mt@suse.de
+- Update to syslog-ng 2.0.9 (fate#303216).
+- Disabled -fPIE/-pie usage, that is not possible any more.
+- Changed the configure path usage in syslog-ng.h to point to
+ the desired installation paths.
+- Increased level of successfull reload message to notice.
+- Disabled parsing of a hostname on afunix (/dev/log) sockets
+ as workaround to not to interpret first part of a broken tag
+ containing spaces as hostname; the glibc syslog functions do
+ not send any hostname (bnc#49521).
+- Reimplemented patch to update own hostname on SIGHUP/reload
+ (bnc#116466).
+- Reimplemented -a <log socket> feature (fate#300891).
+- Mentioned /usr/share/doc/packages/syslog-ng as documentation
+ source in manual pages (bnc#373960).
* Wed Mar 26 2008 mt@suse.de
- Documented -a option in syslog-ng.8 manual page, improved
sentence about usage without root permissions (bnc#358249).
@@ -310,7 +360,7 @@
* Mon May 14 2007 mt@suse.de
- Bug #256671: Added reset of the sysconfig SYSLOG_DAEMON
variable to "" (autodetect daemon) in rpm postun script.
-* Thu Mar 29 2007 ro@suse.de
+* Fri Mar 30 2007 ro@suse.de
- added klogd to BuildRequires
* Thu Mar 29 2007 rguenther@suse.de
- Add flex BuildRequires.
@@ -477,7 +527,7 @@
- added a start-check for to catch exit code on temporary failures
* Fri Feb 01 2002 ro@suse.de
- changed neededforbuild <libpng> to <libpng-devel-packages>
-* Thu Jan 31 2002 ro@suse.de
+* Fri Feb 01 2002 ro@suse.de
- added libgimpprint to neededforbuild
* Tue Jan 15 2002 egmont@suselinux.hu
- removed colons from startup/shutdown messages
++++++ syslog-ng-2.0.9-strncat.dif ++++++
--- src/afuser.c
+++ src/afuser.c 2008/04/30 08:36:54
@@ -86,7 +86,7 @@
strcpy(line, "/dev/");
else
line[0] = 0;
- strncat(line, ut->ut_line, sizeof(line));
+ strncat(line, ut->ut_line, sizeof(line)-strlen(line)-1);
fd = open(line, O_NOCTTY | O_APPEND | O_WRONLY);
if (fd != -1)
{
++++++ syslog-ng-add-log-sockets.dif ++++++
--- src/add_socket.c
+++ src/add_socket.c 2008/02/26 11:16:31
@@ -0,0 +1,282 @@
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+#include
+#include
+#include
+#include
+
+#include "afunix.h"
+#include "sgroup.h"
+#include "messages.h"
+#include "add_socket.h"
+
+#ifndef DEV_LOG_SOCKET
+#define DEV_LOG_SOCKET "/dev/log"
+#endif
+
+struct additional_socket
+{
+ gint skip;
+ gchar *path;
+};
+
+static struct additional_socket *
+make_additional_socket (const gchar *path, gint skip)
+{
+ struct additional_socket *sock;
+ sock = g_new(struct additional_socket, 1);
+ if(sock)
+ {
+ sock->skip = skip;
+ sock->path = g_strdup(path);
+ if( !sock->path)
+ {
+ g_free(sock);
+ sock = NULL;
+ }
+ }
+ return sock;
+}
+
+static void
+free_additional_socket (struct additional_socket *sock)
+{
+ if(sock)
+ {
+ g_free(sock->path);
+ g_free(sock);
+ }
+}
+
+static void
+add_sockets_skip_reset (GSList *socket_list)
+{
+ GSList *ptr;
+ struct additional_socket *sock;
+
+ for(ptr = socket_list; ptr; ptr = g_slist_next(ptr))
+ {
+ sock = (struct additional_socket *)ptr->data;
+ if(sock)
+ {
+ sock->skip = 0;
+ }
+ }
+}
+
+static void
+add_sockets_skip_mark (GSList *socket_list,
+ const gchar *socket_path)
+{
+ GSList *ptr;
+ struct additional_socket *sock;
+
+ for(ptr = socket_list; ptr; ptr = g_slist_next(ptr))
+ {
+ sock = (struct additional_socket *)ptr->data;
+ if(sock && socket_path && !strcmp(sock->path, socket_path))
+ {
+ sock->skip = 1;
+ }
+ }
+}
+
+static LogDriver *
+add_sockets_clone_unix_source(LogDriver *log_drv, char *path)
+{
+ LogDriver *new_drv;
+ AFUnixSourceDriver *log_u_drv;
+ AFUnixSourceDriver *new_u_drv;
+ AFSocketSourceDriver *log_s_drv;
+ AFSocketSourceDriver *new_s_drv;
+
+ log_u_drv = (AFUnixSourceDriver *)log_drv;
+ log_s_drv = (AFSocketSourceDriver *)log_drv;
+
+ new_drv = afunix_sd_new(path, log_u_drv->super.flags);
+ if( !new_drv)
+ return NULL;
+
+ new_drv->optional = log_drv->optional;
+
+ /* unix source driver params */
+ new_u_drv = (AFUnixSourceDriver *)new_drv;
+ new_u_drv->owner = log_u_drv->owner;
+ new_u_drv->group = log_u_drv->group;
+ new_u_drv->perm = log_u_drv->perm;
+
+ /* socket options */
+ new_u_drv->sock_options.sndbuf = log_u_drv->sock_options.sndbuf;
+ new_u_drv->sock_options.rcvbuf = log_u_drv->sock_options.rcvbuf;
+ new_u_drv->sock_options.broadcast = log_u_drv->sock_options.broadcast;
+ new_u_drv->sock_options.keepalive = log_u_drv->sock_options.keepalive;
+
+ /* socket source params */
+ new_s_drv = (AFSocketSourceDriver *)new_drv;
+ afsocket_sd_set_keep_alive(new_drv,
+ log_s_drv->flags & AFSOCKET_KEEP_ALIVE);
+ afsocket_sd_set_max_connections(new_drv,
+ log_s_drv->max_connections);
+
+ /* source reader options */
+ new_s_drv->reader_options.options =
+ log_s_drv->reader_options.options;
+
+ new_s_drv->reader_options.msg_size =
+ log_s_drv->reader_options.msg_size;
+
+ new_s_drv->reader_options.source_opts.init_window_size =
+ log_s_drv->reader_options.source_opts.init_window_size;
+
+ new_s_drv->reader_options.fetch_limit =
+ log_s_drv->reader_options.fetch_limit;
+
+ new_s_drv->reader_options.prefix =
+ g_strdup(log_s_drv->reader_options.prefix);
+
+ new_s_drv->reader_options.padding =
+ log_s_drv->reader_options.padding;
+
+ new_s_drv->reader_options.follow_freq =
+ log_s_drv->reader_options.follow_freq;
+
+ new_s_drv->reader_options.keep_timestamp =
+ log_s_drv->reader_options.keep_timestamp;
+
+ new_s_drv->reader_options.zone_offset =
+ log_s_drv->reader_options.zone_offset;
+
+ return new_drv;
+}
+
+static void
+add_sockets_foreach_src(gpointer key, gpointer value, gpointer user_data)
+{
+ GSList *socket_list = (GSList *)user_data;
+ LogSourceGroup *source_group = (LogSourceGroup *)value;
+ LogDriver *dev_log_drv = NULL;
+ LogDriver *drv;
+
+ if(!socket_list || !source_group)
+ return;
+
+
+ /*
+ ** find /dev/log and set skip mark to all
+ ** sockets that are already in the config.
+ */
+ for(drv = source_group->drivers; drv; drv = drv->drv_next)
+ {
+ LogPipe *pipe = &drv->super;
+
+ if(pipe->free_fn == afunix_sd_free)
+ {
+ AFUnixSourceDriver *udrv;
+ udrv = (AFUnixSourceDriver *)drv;
+
+ if(strcmp(udrv->filename, DEV_LOG_SOCKET) == 0)
+ {
+ dev_log_drv = drv;
+ }
+ else
+ {
+ add_sockets_skip_mark(socket_list,
+ udrv->filename);
+ }
+ }
+ }
+
+ if(dev_log_drv)
+ {
+ GSList *ptr;
+ struct additional_socket *sock;
+
+ for(ptr = socket_list; ptr; ptr = g_slist_next(ptr))
+ {
+ sock = (struct additional_socket *)ptr->data;
+ if(sock && sock->skip == 0)
+ {
+ drv = add_sockets_clone_unix_source(
+ dev_log_drv, sock->path
+ );
+
+ if(drv)
+ {
+ drv->drv_next = source_group->drivers;
+ source_group->drivers = drv;
+ }
+ }
+ }
+ }
+}
+
+void
+add_sockets_to_sources (GSList *socket_list,
+ GHashTable *source_groups)
+{
+ if( !socket_list || !source_groups)
+ return;
+
+ /* reset additional log socket skip flag */
+ add_sockets_skip_reset(socket_list);
+
+ g_hash_table_foreach(
+ source_groups, add_sockets_foreach_src, socket_list
+ );
+}
+
+void
+add_sockets_free_list (GSList **socket_list)
+{
+ if( !socket_list)
+ return;
+
+ GSList *ptr;
+ struct additional_socket *sock;
+ for(ptr = *socket_list; ptr; ptr = g_slist_next(ptr))
+ {
+ sock = (struct additional_socket *)ptr->data;
+ free_additional_socket(sock);
+ }
+ g_slist_free(*socket_list);
+ socket_list = NULL;
+}
+
+gboolean
+add_sockets_append_new (GSList **socket_list,
+ const gchar *socket_path,
+ int debug_flag)
+{
+ struct additional_socket *sock;
+
+ if( !socket_list)
+ return FALSE;
+ if( !socket_path || *socket_path == '\0')
+ return FALSE;
+ if( strcmp(socket_path, DEV_LOG_SOCKET) == 0)
+ return FALSE;
+
+ if( *socket_list)
+ {
+ GSList *ptr;
+ /* just return ok in case we already have it */
+ for(ptr = *socket_list; ptr; ptr = g_slist_next(ptr))
+ {
+ sock = (struct additional_socket *)ptr->data;
+ if(sock && strcmp(sock->path, socket_path) == 0)
+ return TRUE;
+ }
+ }
+
+ sock = make_additional_socket(socket_path, 0);
+ if( sock)
+ {
+ *socket_list = g_slist_append(*socket_list, sock);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+
+/* vim: set tw=80 ts=8 sts=8 sw=8 ai noet: */
--- src/add_socket.h
+++ src/add_socket.h 2008/02/25 10:47:33
@@ -0,0 +1,19 @@
+#ifndef ADD_SOCKET_H
+#define ADD_SOCKET_H
+
+#include
+
+gboolean
+add_sockets_append_new (GSList **socket_list,
+ const gchar *socket_path,
+ int debug_flag);
+
+void
+add_sockets_to_sources (GSList *socket_list,
+ GHashTable *source_groups);
+
+void
+add_sockets_free_list (GSList **socket_list);
+
+#endif /* ADD_SOCKET_H */
+/* vim: set tw=80 ts=8 sts=8 sw=8 ai noet: */
--- src/afunix.c
+++ src/afunix.c 2008/02/25 13:41:38
@@ -77,7 +77,7 @@ afunix_sd_init(LogPipe *s, GlobalConfig
return FALSE;
}
-static void
+void
afunix_sd_free(LogPipe *s)
{
AFUnixSourceDriver *self = (AFUnixSourceDriver *) s;
--- src/afunix.h
+++ src/afunix.h 2008/02/25 13:41:08
@@ -42,6 +42,7 @@ void afunix_sd_set_gid(LogDriver *self,
void afunix_sd_set_perm(LogDriver *self, mode_t perm);
LogDriver *afunix_sd_new(gchar *filename, guint32 flags);
+void afunix_sd_free(LogPipe *s);
typedef struct _AFUnixDestDriver
{
--- src/cfg.c
+++ src/cfg.c 2008/02/25 15:30:12
@@ -31,6 +31,7 @@
#include "misc.h"
#include "logmsg.h"
#include "dnscache.h"
+#include "add_socket.h"
#include
#include
@@ -364,7 +365,7 @@ cfg_free(GlobalConfig *self)
}
GlobalConfig *
-cfg_reload_config(gchar *fname, GlobalConfig *cfg)
+cfg_reload_config(gchar *fname, GlobalConfig *cfg, GSList *additional_sockets)
{
PersistentConfig *persist;
GlobalConfig *new_cfg;
@@ -378,6 +379,7 @@ cfg_reload_config(gchar *fname, GlobalCo
NULL);
return cfg;
}
+ add_sockets_to_sources(additional_sockets, new_cfg->sources);
persist = persist_config_new();
cfg_deinit(cfg, persist);
--- src/cfg.h
+++ src/cfg.h 2008/02/25 15:13:29
@@ -129,7 +129,7 @@ GlobalConfig *cfg_new(gchar *fname);
void cfg_free(GlobalConfig *self);
gboolean cfg_init(GlobalConfig *cfg, PersistentConfig *persist);
gboolean cfg_deinit(GlobalConfig *cfg, PersistentConfig *persist);
-GlobalConfig *cfg_reload_config(gchar *fname, GlobalConfig *cfg);
+GlobalConfig *cfg_reload_config(gchar *fname, GlobalConfig *cfg, GSList *additional_sockets);
PersistentConfig *persist_config_new(void);
void persist_config_add(PersistentConfig *self, gchar *name, gpointer store, GDestroyNotify destroy);
--- src/main.c
+++ src/main.c 2008/02/26 11:26:13
@@ -30,6 +30,7 @@
#include "stats.h"
#include "dnscache.h"
#include "alarms.h"
+#include "add_socket.h"
#include
#include
@@ -59,7 +60,7 @@ static gchar *chroot_dir = NULL;
static gchar *run_as_user = NULL;
static uid_t uid = 0;
static gid_t gid = 0;
-
+static GSList *additional_sockets = NULL;
void usage(void)
{
@@ -81,6 +82,8 @@ void usage(void)
#ifdef YYDEBUG
" -y, --yydebug Turn on yacc debug messages\n"
#endif
+ " -a, --add-socket=<path> Add an additional (chroot) log socket with same\n"
+ " type and to the same log source group as /dev/log.\n"
);
exit(0);
@@ -166,7 +169,7 @@ main_loop_run(GlobalConfig **cfg)
if (sig_hup_received)
{
msg_notice("Configuration reload request received, reloading configuration", NULL);
- (*cfg) = cfg_reload_config(cfgfilename, (*cfg));
+ (*cfg) = cfg_reload_config(cfgfilename, (*cfg), additional_sockets);
sig_hup_received = FALSE;
if ((*cfg)->stats_freq > 0)
{
@@ -322,6 +325,7 @@ main(int argc, char *argv[])
#ifdef YYDEBUG
{ "yydebug", no_argument, NULL, 'y' },
#endif
+ { "add-socket", required_argument, NULL, 'a'},
{ NULL, 0, NULL, 0 }
};
#endif
@@ -333,9 +337,9 @@ main(int argc, char *argv[])
#if HAVE_GETOPT_LONG
- while ((opt = getopt_long(argc, argv, "sFf:p:dvhyVC:u:g:eR:", syslog_ng_options, NULL)) != -1)
+ while ((opt = getopt_long(argc, argv, "sFf:p:dvhyVC:u:g:eR:a:", syslog_ng_options, NULL)) != -1)
#else
- while ((opt = getopt(argc, argv, "sFf:p:dvhyVC:u:g:eR:")) != -1)
+ while ((opt = getopt(argc, argv, "sFf:p:dvhyVC:u:g:eR:a:")) != -1)
#endif
{
switch (opt)
@@ -384,6 +388,14 @@ main(int argc, char *argv[])
case 'R':
persist_file = optarg;
break;
+ case 'a':
+ if( !add_sockets_append_new(&additional_sockets, optarg,
+ (debug_flag && log_to_stderr)))
+ {
+ add_sockets_free_list(&additional_sockets);
+ return 1;
+ }
+ break;
case 'h':
default:
usage();
@@ -404,11 +416,14 @@ main(int argc, char *argv[])
cfg = cfg_new(cfgfilename);
if (!cfg)
{
+ add_sockets_free_list(&additional_sockets);
return 1;
}
+ add_sockets_to_sources(additional_sockets, cfg->sources);
if (syntax_only)
{
+ add_sockets_free_list(&additional_sockets);
return 0;
}
@@ -417,11 +432,13 @@ main(int argc, char *argv[])
if (!cfg_init(cfg, persist))
{
+ add_sockets_free_list(&additional_sockets);
return 2;
}
if (!daemonize())
{
+ add_sockets_free_list(&additional_sockets);
return 2;
}
/* from now on internal messages are written to the system log as well */
@@ -441,6 +458,7 @@ main(int argc, char *argv[])
}
cfg_free(cfg);
+ add_sockets_free_list(&additional_sockets);
child_manager_deinit();
--- src/Makefile.am
+++ src/Makefile.am 2008/02/22 15:04:28
@@ -17,7 +17,7 @@ libsyslog_ng_a_SOURCES = \
afsocket.c afsocket.h afunix.c afunix.h afinet.c afinet.h afinter.c afinter.h \
children.c children.h stats.c stats.h \
gsockaddr.c gsockaddr.h fdwrite.c fdwrite.h fdread.c fdread.h memtrace.c memtrace.h \
- dnscache.c dnscache.h alarms.c alarms.h
+ dnscache.c dnscache.h alarms.c alarms.h add_socket.c add_socket.h
cfg-lex.c: cfg-grammar.c
++++++ syslog-ng-afunix_no_hostname.dif ++++++
--- /var/tmp/diff_new_pack.L24607/_old 2008-05-01 15:01:07.000000000 +0200
+++ /var/tmp/diff_new_pack.L24607/_new 2008-05-01 15:01:07.000000000 +0200
@@ -1,24 +1,62 @@
---- src/afunix.c
-+++ src/afunix.c 2005/01/11 18:39:16
-@@ -51,9 +51,20 @@
- struct persistent_config *persistent)
- {
- CAST(afsocket_source_connection, self, c);
-+ /*
-+ ** Workaround: Bug #49521
-+ **
-+ ** Linux syslog(3) messages do not contain any hostname field,
-+ ** but if the TAG contains spaces, its first word is interpreted
-+ ** as a hostname (in log.c, parse_log_msg function) and discarded
-+ ** in the do_handle_afunix_line function bellow...
-+ ** We force to skip hostname detection in parse_log_msg using a
-+ ** different default for bad_hostname option on afunix sources...
-+ */
-+ UINT8 *bad_hostname = cfg->bad_hostname ? cfg->bad_hostname : (UINT8 *)"^.*$";
-
- io_read(self->client,
-- make_log_reader(!!(self->owner->flags & AFSOCKET_DGRAM), NULL, cfg->log_msg_size, 0, cfg->check_hostname ? LF_CHECK_HOSTNAME : 0, cfg->bad_hostname, c),
-+ make_log_reader(!!(self->owner->flags & AFSOCKET_DGRAM), NULL, cfg->log_msg_size, 0, cfg->check_hostname ? LF_CHECK_HOSTNAME : 0, bad_hostname, c),
- make_afsocket_source_close_callback(self));
-
- return ST_OK | ST_GOON;
+--- src/afsocket.c
++++ src/afsocket.c 2008/02/26 17:27:05
+@@ -224,7 +224,7 @@ afsocket_sc_init(LogPipe *s, GlobalConfi
+ AFSocketSourceConnection *self = (AFSocketSourceConnection *) s;
+
+ self->reader = log_reader_new(fd_read_new(self->sock, (self->owner->flags & AFSOCKET_DGRAM) ? FR_RECV : 0),
+- ((self->owner->flags & AFSOCKET_LOCAL) ? LR_LOCAL : 0) |
++ ((self->owner->flags & AFSOCKET_LOCAL) ? (LR_LOCAL|LR_NO_HOSTNAME) : 0) |
+ ((self->owner->flags & AFSOCKET_DGRAM) ? LR_PKTTERM : 0),
+ s, &self->owner->reader_options);
+ log_pipe_append(self->reader, s);
+--- src/logmsg.c
++++ src/logmsg.c 2008/02/26 17:08:11
+@@ -429,6 +429,7 @@ log_msg_parse(LogMessage *self, gchar *d
+ oldsrc = src;
+ oldleft = left;
+
++ if(!(flags & LP_NO_HOSTNAME)) {
+ while (left && *src != ' ' && *src != ':' && *src != '[' && dst < sizeof(hostname_buf) - 1)
+ {
+ if (flags & LP_CHECK_HOSTNAME &&
+@@ -463,6 +464,7 @@ log_msg_parse(LogMessage *self, gchar *d
+ src = oldsrc;
+ left = oldleft;
+ }
++ }
+
+ /* Skip whitespace. */
+ while (left && *src == ' ')
+--- src/logmsg.h
++++ src/logmsg.h 2008/02/26 16:58:53
+@@ -39,6 +39,7 @@
+ #define LP_CHECK_HOSTNAME 0x0008
+ #define LP_STRICT 0x0010
+ #define LP_KERNEL 0x0020
++#define LP_NO_HOSTNAME 0x0040
+
+ #define LF_UNPARSED 0x0001
+ #define LF_INTERNAL 0x0002
+--- src/logreader.c
++++ src/logreader.c 2008/02/26 17:22:59
+@@ -245,7 +245,9 @@ log_reader_iterate_buf(LogReader *self,
+ if (self->flags & LR_INTERNAL)
+ parse_flags |= LP_INTERNAL;
+ if (self->flags & LR_LOCAL)
+- parse_flags |= LF_LOCAL;
++ parse_flags |= LP_LOCAL;
++ if (self->flags & LR_NO_HOSTNAME)
++ parse_flags |= LP_NO_HOSTNAME;
+
+ if ((self->flags & LR_PKTTERM) ||
+ (!eol && (self->ofs == self->options->msg_size)) ||
+--- src/logreader.h
++++ src/logreader.h 2008/02/26 17:29:31
+@@ -36,6 +36,7 @@
+ #define LR_NOMREAD 0x0008
+ #define LR_FOLLOW 0x0010
+ #define LR_STRICT 0x0020
++#define LR_NO_HOSTNAME 0x0040
+
+ #define LR_COMPLETE_LINE 0x0100
+
++++++ syslog-ng-man-pages.dif ++++++
--- doc/man/syslog-ng.8
+++ doc/man/syslog-ng.8 2008/04/30 09:17:47
@@ -3,7 +3,9 @@
syslog-ng \- logs system messages
.SH SYNOPSIS
-NOTE: This file is not up to date. Please refer to the html documentation.
+.B NOTE:
+This file is not up to date. Please refer to the documentation
+in /usr/share/doc/packages/syslog-ng/.
.B syslog-ng
[
@@ -23,6 +25,9 @@
] [
.B \-g
<\fIgroup\fP>
+] [
+.B \-a
+<\fIlog-socket\fP>
]
.SH DESCRIPTION
.PP
@@ -84,11 +89,16 @@
.TP
.B \-V, \-\-version
Print the version number.
+.TP
+.B \-a, \-\-add-socket=<path>
+SUSE LINUX extension: Add an additional (chroot) log socket with same type
+and to the same log source group as /dev/log.
.SH DIAGNOSTICS
-It is expected that \fBsyslog-ng\fP will run as root, however, if not running
-on a priviledged port of it it owned its own log directories, etc, it might
-run as a non-root user.
+It is expected that \fBsyslog-ng\fP will run as root, however, if not listening
+on a privileged port and owns its log directories, etc, it might run also as a
+non-root user.
.SH SEE ALSO
+.B /usr/share/doc/packages/syslog-ng/
.BR syslog-ng.conf (5),
.BR logger (1),
.BR syslog (2),
--- doc/man/syslog-ng.conf.5
+++ doc/man/syslog-ng.conf.5 2008/04/30 09:16:33
@@ -4,6 +4,8 @@
.SH DESCRIPTION
.PP
+Please refer also to the documentation in /usr/share/doc/packages/syslog-ng/.
+
The configuration file for \fBsyslog-ng\fP
A message route in syslog-ng is made up from three parts: a source,
@@ -224,5 +226,6 @@
were contributed by Jose Pedro Oliveira.
.SH SEE ALSO
-syslog-ng(8), syslogd(8)
-
+.B /usr/share/doc/packages/syslog-ng/
+.BR syslog-ng(8)
+.BR syslogd(8)
++++++ syslog-ng-path-defaults.dif ++++++
--- src/syslog-ng.h
+++ src/syslog-ng.h 2008/02/25 07:09:56
@@ -36,9 +36,9 @@
#include
-#define PATH_SYSLOG_NG_CONF PATH_SYSCONFDIR "/syslog-ng.conf"
-#define PATH_PIDFILE "/var/run/syslog-ng.pid"
-#define PATH_PERSIST_CONFIG PATH_LOCALSTATEDIR "/syslog-ng.persist"
+#define PATH_SYSLOG_NG_CONF PATH_SYSCONFDIR "/syslog-ng/syslog-ng.conf"
+#define PATH_PIDFILE PATH_LOCALSTATEDIR "/run/syslog-ng.pid"
+#define PATH_PERSIST_CONFIG PATH_LOCALSTATEDIR "/lib/syslog-ng/syslog-ng.persist"
#define LOG_PRIORITY_LISTEN 0
#define LOG_PRIORITY_READER 0
++++++ syslog-ng-update_own_hostname.dif ++++++
--- /var/tmp/diff_new_pack.L24607/_old 2008-05-01 15:01:07.000000000 +0200
+++ /var/tmp/diff_new_pack.L24607/_new 2008-05-01 15:01:07.000000000 +0200
@@ -1,45 +1,45 @@
--- src/main.c
-+++ src/main.c 2007/05/22 10:31:07
-@@ -53,6 +53,7 @@
- static char cfgfilename[128] = PATH_SYSLOG_NG_CONF;
- static char pidfilename[128] = PATH_PIDFILE;
- extern int linenum;
-+extern void update_source_hostname();
-
- /* CLASS:
- (class
-@@ -242,6 +243,7 @@ int main_loop(struct syslog_backend *bac
- res_init();
- #endif
- notice("SIGHUP received, restarting syslog-ng\n");
-+ update_source_hostname();
- if (!debug_flag) {
- set_error_stream(2, 0);
- set_internal_cfg(NULL);
---- src/sources.c
-+++ src/sources.c 2007/05/22 10:31:07
-@@ -197,6 +197,11 @@ make_log_reader(UINT32 dgram,
++++ src/main.c 2008/02/27 11:35:38
+@@ -169,6 +169,7 @@ main_loop_run(GlobalConfig **cfg)
+ if (sig_hup_received)
+ {
+ msg_notice("Configuration reload request received, reloading configuration", NULL);
++ update_local_hostname();
+ (*cfg) = cfg_reload_config(cfgfilename, (*cfg), additional_sockets);
+ sig_hup_received = FALSE;
+ if ((*cfg)->stats_freq > 0)
+--- src/misc.c
++++ src/misc.c 2008/02/26 17:46:46
+@@ -124,6 +124,12 @@ get_local_timezone_ofs(time_t when)
+ return tzoff;
}
- /* source_group */
-+static int update_hostname = 0;
-+void update_source_hostname()
++static int update_local_hostname_now = 0;
++void update_local_hostname(void)
+{
-+ update_hostname = 1;
++ update_local_hostname_now = 1;
+}
-
- static struct ol_string *get_source_hostname(struct address_info *a, int usedns, int usefqdn, struct nscache *cache)
++
+ gboolean
+ resolve_hostname(GString *result, GSockAddr *saddr, gboolean usedns, gboolean usefqdn, gboolean use_dns_cache)
{
-@@ -232,6 +237,12 @@ static struct ol_string *get_source_host
- name = c_format_cstring("%z", hname);
- }
- else {
-+ if( update_hostname && hostname)
-+ {
-+ update_hostname = 0;
-+ ol_string_free(hostname);
-+ hostname = NULL;
-+ }
- if (!hostname) {
- char buf[256];
- if (usefqdn) {
+@@ -193,8 +199,9 @@ resolve_hostname(GString *result, GSockA
+ }
+ else
+ {
+- if (!local_hostname[0])
++ if (!local_hostname[0] || update_local_hostname_now)
+ {
++ update_local_hostname_now = 0;
+ if (usefqdn)
+ getlonghostname(local_hostname, sizeof(local_hostname));
+ else
+--- src/misc.h
++++ src/misc.h 2008/02/26 17:46:36
+@@ -43,5 +43,6 @@ gboolean resolve_user(const char *user,
+ gboolean resolve_group(const char *group, gid_t *gid);
+ gboolean resolve_user_group(char *arg, uid_t *uid, gid_t *gid);
+ gboolean resolve_hostname(GString *result, GSockAddr *saddr, gboolean usedns, gboolean usefqdn, gboolean use_dns_cache);
++void update_local_hostname(void);
+
+ #endif
++++++ syslog-ng-verbose_reload.dif ++++++
--- /var/tmp/diff_new_pack.L24607/_old 2008-05-01 15:01:07.000000000 +0200
+++ /var/tmp/diff_new_pack.L24607/_new 2008-05-01 15:01:07.000000000 +0200
@@ -1,64 +1,11 @@
---- src/cfgfile.c
-+++ src/cfgfile.c 2007/05/22 10:57:13
-@@ -335,8 +335,9 @@ struct syslog_config *make_syslog_config
- res = yyparse();
- fclose(cfg);
- if (!res) {
-+ /* successfully parsed, verify it */
-+ linenum = -1;
- if( verify_filter_rules(self->filters) == 0) {
-- /* successfully parsed */
- self->resources = empty_resource_list();
- return self;
- }
---- src/main.c
-+++ src/main.c 2007/05/22 11:07:00
-@@ -209,8 +209,12 @@ int main_loop(struct syslog_backend *bac
- if (backend->newconfig) {
- add_socket_to_sources(backend->add_sockets,
- backend->newconfig->sources);
--
-+
- io_callout_flush(&backend->super);
-+ if (!debug_flag) {
-+ set_error_stream(2, 0);
-+ set_internal_cfg(NULL);
-+ }
+--- src/cfg.c
++++ src/cfg.c 2008/02/27 11:46:10
+@@ -384,7 +384,7 @@ cfg_reload_config(gchar *fname, GlobalCo
- s.timeout = backend->configuration->stats_freq;
- if (s.timeout > 0)
-@@ -221,7 +225,10 @@ int main_loop(struct syslog_backend *bac
- }
- else {
- backend->super.reloading = 0;
-- notice("Syntax error reading config file (line %i), using old configuration\n", linenum);
-+ if(linenum == -1)
-+ notice("Verify error reading config file, using old configuration\n");
-+ else
-+ notice("Syntax error reading config file (line %i), using old configuration\n", linenum);
- }
- reload_config = 0;
- }
-@@ -247,10 +254,6 @@ int main_loop(struct syslog_backend *bac
- #endif
- notice("SIGHUP received, restarting syslog-ng\n");
- update_source_hostname();
-- if (!debug_flag) {
-- set_error_stream(2, 0);
-- set_internal_cfg(NULL);
-- }
- reload_config = 1;
- r.backend = backend;
- r.state = -1;
-@@ -502,7 +505,10 @@ int main(int argc, char **argv)
-
- backend->configuration = make_syslog_config(cfgfilename, &backend->super);
- if (!backend->configuration) {
-- werror("Parse error reading configuration file, exiting. (line %i)\n", linenum);
-+ if(linenum == -1)
-+ werror("Verify error reading configuration file, exiting.\n");
-+ else
-+ werror("Parse error reading configuration file, exiting. (line %i)\n", linenum);
- return 1;
- }
- if (syntax_only) {
+ if (cfg_init(new_cfg, persist))
+ {
+- msg_verbose("New configuration initialized", NULL);
++ msg_notice("New configuration initialized", NULL);
+ cfg_free(cfg);
+ persist_config_free(persist);
+ return new_cfg;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org