mirror of
https://salsa.debian.org/ha-team/libqb
synced 2025-08-25 21:45:49 +00:00

Original "qb_log_ctl" interface had to be extended for passing read-only strings (new parameter), resulting in new "qb_log_ctl2" function, which is what qb_log_ctl calls into with the new parameter set to NULL. This ensures backward compatibility. A new QB_LOG_CONF_IDENT configuration directive for the mentioned interface is added with a goal to set new internal identifier that is, notably, used for syslog sink. This allows for switching the identification without a need to reinitialize logging subsystem, akin to changing target logging facility. Also a brand new concept of testing syslog sink in particular is introduced (finally). During initial trial&error stage, it used LD_PRELOAD hack but it seems that libtool is sophisticated enough that no such extra intervention is needed and the desired symbol resolution Just Works (tm). However, the technique is highly non-portable (there is even a warning about that from libtool, which is partially on purpose as the _syslog_override.so should rather be explicit it is by no mean a regular library) and hence the syslog tests have to be enabled with explicit ./configure --enable-syslog-tests rather than possibly break on untested platforms (far too many). The concept can be extended upon, but initially, just the new feature is being tested. Post-review: thanks Chrissie for a suggestion how to deal with extract-arg-and-forget in a less intrusive way (no defines).
35 lines
1.0 KiB
C
35 lines
1.0 KiB
C
/*
|
|
* Copyright (c) 2016 Red Hat, Inc.
|
|
*
|
|
* All rights reserved.
|
|
*
|
|
* Author: Jan Pokorny <jpokorny@redhat.com>
|
|
*
|
|
* This file is part of libqb.
|
|
*
|
|
* libqb is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation, either version 2.1 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* libqb is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with libqb. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef QB_SYSLOG_OVERRIDE_H_DEFINED
|
|
#define QB_SYSLOG_OVERRIDE_H_DEFINED
|
|
|
|
#include <limits.h>
|
|
|
|
extern int _syslog_opened;
|
|
extern int _syslog_option;
|
|
extern int _syslog_facility;
|
|
extern char _syslog_ident[PATH_MAX];
|
|
|
|
#endif
|