Merge branch 'v3-stable' into beta

Conflicts:

	runtime/net.c
This commit is contained in:
Rainer Gerhards 2008-10-02 10:55:31 +02:00
commit 9812a2af8c
9 changed files with 140 additions and 13 deletions

View File

@ -163,14 +163,19 @@ Version 3.19.0 (rgerhards), 2008-05-06
for the patch
---------------------------------------------------------------------------
Version 3.18.5 (rgerhards), 2008-10-??
- added doc on malformed messages, cause and how to work-around, to the
doc set
- bugfix: imudp input module could cause segfault on HUP
It did not properly de-init a variable acting as a linked list head.
That resulted in trying to access freed memory blocks after the HUP.
- bugfix: rsyslogd could hang on HUP
because getnameinfo() is not cancel-safe, but was not guarded against
being cancelled. pthread_cancel() is routinely being called during
HUP processing.
- doc bugfix: $ActionExecOnlyWhenPreviousIsSuspended was still misspelled
as $...OnlyIfPrev... in some parts of the documentation. Thanks to
Lorenzo M. Catucci for reporting this bug.
- added doc on malformed messages, cause and how to work-around, to the
doc set
- added doc on how to build from source repository
---------------------------------------------------------------------------
Version 3.18.4 (rgerhards), 2008-09-18
- bugfix: order-of magnitude issue with base-10 size definitions

2
README
View File

@ -1,4 +1,4 @@
This file has been superseeded by the fils in the doc folder.
This file has been superseeded by the files in the doc folder.
Please see doc/manual.html for futher details. If you are
looking for install information doc/install.html is for you!
If you do not have the doc set, see

View File

@ -1,4 +1,5 @@
html_files = \
index.html \
bugs.html \
debug.html \
features.html \
@ -7,6 +8,7 @@ html_files = \
history.html \
how2help.html \
install.html \
build_from_repo.html \
ipv6.html \
log_rotation_fix_size.html \
manual.html \

54
doc/build_from_repo.html Normal file
View File

@ -0,0 +1,54 @@
<html><head>
<title>Building rsyslog from the source repository</title>
</head>
<body>
<h1>Building rsyslog from the source repository</h1>
<p>In most cases, people install rsyslog either via a package or use an "official"
distribution tarball to generate it. But there may be situations where it is desirable
to build directly from the source repository. This is useful for people who would like to
participate in development or who would like to use the latest, not-yet-released code.
The later may especially be the case if you are asked to try out an experimental version.
<p>Building from the repsitory is not much different than building from the source
tarball, but some files are missing because they are output files and thus do not
belong into the repository.
<h2>Obtaining the Source</h2>
<p>First of all, you need to download the sources. Rsyslog is currently kept in a git
repository. You can clone this repository either via http or git protocol (with the later
being much faster. URLS are:
<ul>
<li>git://git.adiscon.com/git/rsyslog.git
<li>http://git.adiscon.com/git/rsyslog.git
</ul>
<p>There is also a browsable version (gitweb) available at
<a href="http://git.adiscon.com/?p=rsyslog.git;a=summary">http://git.adiscon.com/?p=rsyslog.git;a=summary</a>.
This version also offers snapshots of each commit for easy download. You can use these if
you do not have git present on your system.
<p>After you have cloned the repository, you are in the master branch by default. This
is where we keep the devel branch. If you need any other branch, you need to do
a "git checkout --track -b branch origin/branch". For example, the command to check out
the beta branch is "git checkout --track -b beta origin/beta".
<h2>Prequisites</h2>
<p>To build the compilation system, you need the <b>pkg-config</b> package (an utility for
autotools) present on your system. Otherwise, configure will fail with something like
<pre><code>
checking for SYSLOG_UNIXAF support... yes
checking for FSSTND support... yes
./configure: line 25895: syntax error near unexpected token `RELP,'
./configure: line 25895: ` PKG_CHECK_MODULES(RELP, relp >= 0.1.1)'
</code></pre>
<h2>Creating the Build Environment</h2>
<p>This is fairly easy: just issue "<b>autoreconf -fvi</b>", which should do everything you need.
Once this is done, you can follow the usual ./configure steps just like when
you downloaded an official distribution tarball (see the
<a href="install.html">rsyslog install guide</a>, starting at step 2,
for further details about that).
<p>[<a href="manual.html">manual index</a>]
[<a href="http://www.rsyslog.com/">rsyslog site</a>]</p>
<p><font size="2">This documentation is part of the
<a href="http://www.rsyslog.com/">rsyslog</a> project.<br>
Copyright &copy; 2008 by <a href="http://www.gerhards.net/rainer">Rainer Gerhards</a> and
<a href="http://www.adiscon.com/">Adiscon</a>. Released under the GNU GPL
version 1.2 or higher.</font></p>
</body>
</html>

32
doc/index.html Normal file
View File

@ -0,0 +1,32 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Welcome to rsyslog</title></head>
<body>
<h1>Welcome to rsyslog</h1>
<p><b><a href="http://www.rsyslog.com/">Rsyslog</a>
is an enhanced syslogd suitable both for small systems as
well as large enterprises.</b>
<p>This page provide a few quick pointers which hopefully make your
experience with rsyslog a pleasant one. These are
<ul>
<li><b>Most importantly, the <a href="manual.html">rsyslog manual</a></b> - this points to locally
installed documentation which exactly matches the version you have installed.
It is highly suggested to at least briefly look over these files.
<li>The <a href="http://www.rsyslog.com">rsyslog web site</a> which offers
probably every information you'll ever need (ok, just kidding...).
<li>The <a href="http://www.rsyslog.com/doc-status.html">project status page</a> provides
information on current releases
<li>and the <a href="troubleshoot.html">troubleshooting guide</a> hopefully helps if
things do not immediately work out
</ul>
<p>In general, rsyslog supports plain old syslog.conf format, except that the
config file is now called rsyslog.conf. This should help you get started
quickly.
To do the really cool things, though,
you need to learn a bit about its new features.
The man pages offer a bare minimum of information (and are still quite long). Read the
<a href="manual.html">html documentation</a> instead.
When you change the configuration,
remember to restart (or HUP) rsyslogd, because otherwise it won't use your
new settings (and you'll end up totally puzzled why this great config of yours
does not even work a bit...;))
</body></html>

View File

@ -24,7 +24,11 @@ you volunteer to create one, <a href="mailto:rgerhards@adiscon.com">drop me a
line</a>). Thus, this guide focuses on installing from the source, which
thankfully is <b>quite easy</b>.</p>
<h3>Step 1 - Download Software</h3>
<p>For obvious reasons, you need to download rsyslog. Load the most recent build
<p>For obvious reasons, you need to download rsyslog. Here, I assume that you
use a distribution tarball. If you would like to use a version directly from
the repository, see <a href="build_from_repo.html">build rsyslog from repository</a>
instead.
<p>Load the most recent build
from <a href="http://www.rsyslog.com/downloads">http://www.rsyslog.com/downloads</a>.
Extract the software with &quot;tar xzf -nameOfDownloadSet-&quot;. This will create a new
subdirectory rsyslog-version in the current working directory. CD into that. </p>
@ -150,9 +154,12 @@ comments or bug sighting reports are very welcome. Please
<li>2007-07-13 *
<a href="http://www.adiscon.com/en/people/rainer-gerhards.php">Rainer Gerhards</a>&nbsp;
* updated to new autotools-based build system</li>
<li>2008-10-01 *
<a href="http://www.adiscon.com/en/people/rainer-gerhards.php">Rainer Gerhards</a>&nbsp;
* added info on building from source repository</li>
</ul>
<h3>Copyright</h3>
<p>Copyright (c) 2005, 2007
<p>Copyright &copy; 2005-2008
<a href="http://www.adiscon.com/en/people/rainer-gerhards.php">Rainer Gerhards</a> and
<a href="http://www.adiscon.com/en/">Adiscon</a>.</p>
<p> Permission is granted to copy, distribute and/or modify this document
@ -162,6 +169,12 @@ comments or bug sighting reports are very welcome. Please
Texts. A copy of the license can be viewed at
<a href="http://www.gnu.org/copyleft/fdl.html">
http://www.gnu.org/copyleft/fdl.html</a>.</p>
<p>[<a href="manual.html">manual index</a>]
[<a href="http://www.rsyslog.com/">rsyslog site</a>]</p>
<p><font size="2">This documentation is part of the
<a href="http://www.rsyslog.com/">rsyslog</a> project.<br>
Copyright &copy; 2008 by <a href="http://www.gerhards.net/rainer">Rainer Gerhards</a> and
<a href="http://www.adiscon.com/">Adiscon</a>. Released under the GNU GPL
version 1.2 or higher.</font></p>
</body>
</html>

View File

@ -50,6 +50,7 @@ modules</a></li><li><a href="man_rsyslogd.html">rsyslogd man page</a>
<p><b>We have some in-depth papers on</b></p>
<ul>
<li><a href="install.html">installing rsyslog</a></li>
<li><a href="build_from_repo.html">obtaining rsyslog from the source repository</a></li>
<li><a href="ipv6.html">rsyslog and IPv6</a> (which is fully supported)</li>
<li><a href="rsyslog_tls.html">native TLS encryption for syslog</a></li>
<li><a href="rsyslog_stunnel.html">ssl-encrypting syslog with stunnel</a></li>

View File

@ -29,7 +29,7 @@ what they do (list is currently not complete)</p>
trap output module</li>
<li><a href="omrelp.html">omrelp</a> - RELP
output module</li>
<li>omgss - output module for GSS-enabled syslog</li>
<li>omgssapi - output module for GSS-enabled syslog</li>
<li><a href="ommysql.html">ommysql</a> - output module for MySQL</li>
<li>ompgsql - output module for PostgreSQL</li>
<li><a href="omlibdbi.html">omlibdbi</a> -
@ -45,7 +45,7 @@ input module</li>
<li><a href="imtcp.html">imtcp</a> - input
plugin for plain tcp syslog</li>
<li><a href="imgssapi.html">imgssapi</a> -
input plugin for plain tcp and GSS-enable syslog</li>
input plugin for plain tcp and GSS-enabled syslog</li>
<li>immark - support for mark messages</li>
<li><a href="imklog.html">imklog</a> - kernel logging</li>
<li><a href="imuxsock.html">imuxsock</a> -
@ -1209,6 +1209,5 @@ When compared to syslogd from sysklogd package, rsyslogd offers
additional
<a href="features.html">features</a> (like template
and database support). For obvious reasons, the syntax for defining
such features is available in rsyslogd, only.<br>
&nbsp;</p>
such features is available in rsyslogd, only.</p>
</body></html>

View File

@ -450,6 +450,27 @@ static inline void MaskIP4 (struct in_addr *addr, uint8_t bits) {
#define SIN(sa) ((struct sockaddr_in *)(sa))
#define SIN6(sa) ((struct sockaddr_in6 *)(sa))
/* This is a cancel-safe getnameinfo() version, because we learned
* (via drd/valgrind) that getnameinfo() seems to have some issues
* when being cancelled, at least if the module was dlloaded.
* rgerhards, 2008-09-30
*/
static inline int
mygetnameinfo(const struct sockaddr *sa, socklen_t salen,
char *host, size_t hostlen,
char *serv, size_t servlen, int flags)
{
int iCancelStateSave;
int i;
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &iCancelStateSave);
i = getnameinfo(sa, salen, host, hostlen, serv, servlen, flags);
pthread_setcancelstate(iCancelStateSave, NULL);
return i;
}
/* This function adds an allowed sender entry to the ACL linked list.
* In any case, a single entry is added. If an error occurs, the
* function does its error reporting itself. All validity checks
@ -708,7 +729,7 @@ void PrintAllowedSenders(int iListToPrint)
if (F_ISSET(pSender->allowedSender.flags, ADDR_NAME))
dbgprintf ("\t%s\n", pSender->allowedSender.addr.HostWildcard);
else {
if(getnameinfo (pSender->allowedSender.addr.NetAddr,
if(mygetnameinfo (pSender->allowedSender.addr.NetAddr,
SALEN(pSender->allowedSender.addr.NetAddr),
(char*)szIP, 64, NULL, 0, NI_NUMERICHOST) == 0) {
dbgprintf ("\t%s/%u\n", szIP, pSender->SignificantBits);
@ -982,7 +1003,7 @@ gethname(struct sockaddr_storage *f, uchar *pszHostFQDN, uchar *ip)
assert(f != NULL);
assert(pszHostFQDN != NULL);
error = getnameinfo((struct sockaddr *)f, SALEN((struct sockaddr *)f),
error = mygetnameinfo((struct sockaddr *)f, SALEN((struct sockaddr *)f),
(char*) ip, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);
if (error) {
@ -997,7 +1018,7 @@ gethname(struct sockaddr_storage *f, uchar *pszHostFQDN, uchar *ip)
sigaddset(&nmask, SIGHUP);
pthread_sigmask(SIG_BLOCK, &nmask, &omask);
error = getnameinfo((struct sockaddr *)f, SALEN((struct sockaddr *) f),
error = mygetnameinfo((struct sockaddr *)f, SALEN((struct sockaddr *) f),
(char*)pszHostFQDN, NI_MAXHOST, NULL, 0, NI_NAMEREQD);
if (error == 0) {