summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
Diffstat (limited to 'source4')
-rw-r--r--source4/extra_cflags.txt1
-rw-r--r--source4/heimdal_build/config.m42
-rw-r--r--source4/heimdal_build/config.mk6
-rw-r--r--source4/heimdal_build/glue.c10
-rw-r--r--source4/heimdal_build/replace.c49
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