syslog2stderr dynamic library

The SoftHSM library writes to the system logs. Preload this library to
make it write to stderr instead.
This commit is contained in:
Andrzej Kurek 2018-01-23 09:09:36 -05:00
parent 753b86c5fd
commit be45cc90b4
3 changed files with 48 additions and 0 deletions

1
programs/.gitignore vendored
View File

@ -49,6 +49,7 @@ test/ssl_cert_test
test/udp_proxy
util/pem2der
util/strerror
util/syslog2stderr.so
x509/cert_app
x509/cert_req
x509/crl_app

View File

@ -277,6 +277,12 @@ x509/req_app$(EXEXT): x509/req_app.c $(DEP)
echo " CC x509/req_app.c"
$(CC) $(LOCAL_CFLAGS) $(CFLAGS) x509/req_app.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
ifndef WINDOWS
util/syslog2stderr.so: util/syslog2stderr.c
echo " CC util/syslog2stderr.c"
$(CC) $(CFLAGS) -fPIC -shared -o $@ $< -ldl
endif
clean:
ifndef WINDOWS
rm -f $(APPS)

View File

@ -0,0 +1,41 @@
#include <dlfcn.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <syslog.h>
void openlog( const char *ident, int option, int facility )
{
(void) ident;
(void) option;
(void) facility;
}
/* POSIX API */
void syslog( int priority, const char *format, ... )
{
va_list args;
va_start( args, format );
vfprintf( stderr, format, args );
va_end( args );
}
/* Linux ABI
* http://refspecs.linux-foundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/libc---syslog-chk-1.html
*/
void __syslog_chk( int priority, int flag, const char *format, ... )
{
va_list args;
(int) flag;
va_start( args, format );
vfprintf( stderr, format, args );
fputc( '\n', stderr );
va_end( args );
}
void closelog( void )
{
/* no-op */
}