diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/extra_cflags.txt | 1 | ||||
-rw-r--r-- | source4/heimdal_build/config.m4 | 2 | ||||
-rw-r--r-- | source4/heimdal_build/config.mk | 6 | ||||
-rw-r--r-- | source4/heimdal_build/glue.c | 10 | ||||
-rw-r--r-- | source4/heimdal_build/replace.c | 49 |
5 files changed, 66 insertions, 2 deletions
diff --git a/source4/extra_cflags.txt b/source4/extra_cflags.txt index 0a8495e115..6ecb170aa5 100644 --- a/source4/extra_cflags.txt +++ b/source4/extra_cflags.txt @@ -1 +1,2 @@ heimdal -Iheimdal_build -Iheimdal/kdc -Iheimdal/lib/des -Iheimdal/lib/roken -Iheimdal/include -DNO_PRINTF_ATTRIBUTE +heimdal_build/replace.o -Iheimdal_build -Iheimdal/lib/roken diff --git a/source4/heimdal_build/config.m4 b/source4/heimdal_build/config.m4 index 4e521e4cfd..4368825783 100644 --- a/source4/heimdal_build/config.m4 +++ b/source4/heimdal_build/config.m4 @@ -85,6 +85,8 @@ AC_CHECK_FUNCS([ \ unsetenv \ closefrom \ hstrerror \ + err \ + errx \ writev ]) diff --git a/source4/heimdal_build/config.mk b/source4/heimdal_build/config.mk index 572e918b96..49da7f10d2 100644 --- a/source4/heimdal_build/config.mk +++ b/source4/heimdal_build/config.mk @@ -326,7 +326,8 @@ ADD_OBJ_FILES = \ heimdal/lib/roken/strupr.o \ heimdal/lib/roken/getprogname.o \ heimdal/lib/roken/get_window_size.o \ - heimdal/lib/asn1/symbol.o + heimdal/lib/asn1/symbol.o \ + heimdal_build/replace.o NOPROTO = YES # End SUBSYSTEM ASN1_COMPILER ####################### @@ -351,7 +352,8 @@ ADD_OBJ_FILES = \ heimdal/lib/roken/getprogname.o \ heimdal/lib/roken/strupr.o \ heimdal/lib/roken/print_version.o \ - heimdal/lib/roken/setprogname.o + heimdal/lib/roken/setprogname.o \ + heimdal_build/replace.o NOPROTO = YES # End SUBSYSTEM COMPILE_ET ####################### diff --git a/source4/heimdal_build/glue.c b/source4/heimdal_build/glue.c index 106a733a94..d3ac8ee5b2 100644 --- a/source4/heimdal_build/glue.c +++ b/source4/heimdal_build/glue.c @@ -23,6 +23,7 @@ #include "includes.h" #include "system/network.h" #include "system/kerberos.h" +#include "err.h" /* get the list of IP addresses for configured interfaces @@ -48,3 +49,12 @@ krb5_error_code krb5_get_all_client_addrs(krb5_context context, krb5_addresses * return 0; } + + +void errx(int eval, const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + verrx(eval, fmt, ap); + va_end(ap); +} diff --git a/source4/heimdal_build/replace.c b/source4/heimdal_build/replace.c new file mode 100644 index 0000000000..0b7e1943f8 --- /dev/null +++ b/source4/heimdal_build/replace.c @@ -0,0 +1,49 @@ +/* + Unix SMB/CIFS implementation. + + some replacement functions for parts of roken that don't fit easily into + our build system + + Copyright (C) Andrew Tridgell 2005 + + 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 + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "config.h" +#include <stdio.h> +#include "err.h" + +#ifndef HAVE_ERR + void err(int eval, const char *format, ...) +{ + va_list ap; + va_start(ap, format); + vfprintf(stderr, format, ap); + perror(""); + va_end(ap); + exit(eval); +} +#endif + +#ifndef HAVE_ERRX + void errx(int eval, const char *format, ...) +{ + va_list ap; + va_start(ap, format); + vfprintf(stderr, format, ap); + va_end(ap); + exit(eval); +} +#endif |