summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/heimdal_build/config.h5
-rw-r--r--source4/heimdal_build/config.m46
-rw-r--r--source4/heimdal_build/config.mk4
-rw-r--r--source4/heimdal_build/replace.c29
-rw-r--r--source4/lib/replace/replace.h12
5 files changed, 54 insertions, 2 deletions
diff --git a/source4/heimdal_build/config.h b/source4/heimdal_build/config.h
index 02b3705ba1..6bbe947155 100644
--- a/source4/heimdal_build/config.h
+++ b/source4/heimdal_build/config.h
@@ -3,6 +3,9 @@
Samba source tree
*/
+#ifndef HAVE_HEIMDAL_CONFIG_H
+#define HAVE_HEIMDAL_CONFIG_H 1
+
/* bring in the samba4 config.h */
#include "include/config.h"
@@ -42,3 +45,5 @@ static /**/const char *const rcsid[] = { (const char *)rcsid, "\100(#)" msg }
#include <stdarg.h>
#include "lib/replace/replace.h"
#endif
+
+#endif
diff --git a/source4/heimdal_build/config.m4 b/source4/heimdal_build/config.m4
index 90fb7a930d..342ab6901f 100644
--- a/source4/heimdal_build/config.m4
+++ b/source4/heimdal_build/config.m4
@@ -87,6 +87,8 @@ AC_CHECK_FUNCS([ \
hstrerror \
err \
errx \
+ warnx \
+ flock \
writev
])
@@ -174,6 +176,10 @@ SMB_BINARY_ENABLE(compile_et, NO)
AC_PROG_LEX
AC_PROG_YACC
+AC_CHECK_TYPES(u_int32_t)
+AC_CHECK_TYPES(u_int16_t)
+AC_CHECK_TYPES(u_int8_t)
+
# to enable kerberos, unpack a heimdal source tree in the heimdal directory
# of the samba source tree
if test -d heimdal; then
diff --git a/source4/heimdal_build/config.mk b/source4/heimdal_build/config.mk
index 9b1ee96edf..25abfa9542 100644
--- a/source4/heimdal_build/config.mk
+++ b/source4/heimdal_build/config.mk
@@ -179,7 +179,6 @@ ADD_OBJ_FILES = \
heimdal/lib/asn1/der_length.o \
heimdal/lib/asn1/der_copy.o \
heimdal/lib/asn1/der_cmp.o \
- heimdal/lib/asn1/timegm.o \
heimdal/lib/asn1/asn1_AD_IF_RELEVANT.o \
heimdal/lib/asn1/asn1_APOptions.o \
heimdal/lib/asn1/asn1_AP_REP.o \
@@ -282,7 +281,8 @@ ADD_OBJ_FILES = \
heimdal/lib/roken/strlwr.o \
heimdal/lib/roken/strsep_copy.o \
heimdal/lib/roken/strupr.o \
- heimdal/lib/roken/strpool.o
+ heimdal/lib/roken/strpool.o \
+ heimdal_build/replace.o
NOPROTO = YES
# End SUBSYSTEM HEIMDAL_ROKEN
#######################
diff --git a/source4/heimdal_build/replace.c b/source4/heimdal_build/replace.c
index 0b7e1943f8..46019d7bb5 100644
--- a/source4/heimdal_build/replace.c
+++ b/source4/heimdal_build/replace.c
@@ -24,6 +24,7 @@
#include "config.h"
#include <stdio.h>
#include "err.h"
+#include "roken.h"
#ifndef HAVE_ERR
void err(int eval, const char *format, ...)
@@ -47,3 +48,31 @@
exit(eval);
}
#endif
+
+#ifndef HAVE_WARNX
+ void warnx(const char *format, ...)
+{
+ va_list ap;
+ va_start(ap, format);
+ vfprintf(stderr, format, ap);
+ va_end(ap);
+}
+#endif
+
+#ifndef HAVE_FLOCK
+ int flock(int fd, int op)
+{
+ switch (op & (LOCK_UN|LOCK_SH|LOCK_EX)) {
+ case LOCK_UN:
+ return fcntl_lock(fd, F_SETLK, 0, 0, F_UNLCK);
+ case LOCK_SH:
+ return fcntl_lock(fd, (op&LOCK_NB)?F_SETLK:F_SETLKW,
+ 0, 0, F_RDLCK);
+ case LOCK_EX:
+ return fcntl_lock(fd, (op&LOCK_NB)?F_SETLK:F_SETLKW,
+ 0, 0, F_WRLCK);
+ }
+ errno = EINVAL;
+ return -1;
+}
+#endif
diff --git a/source4/lib/replace/replace.h b/source4/lib/replace/replace.h
index 89225d3d65..48e46ba18e 100644
--- a/source4/lib/replace/replace.h
+++ b/source4/lib/replace/replace.h
@@ -119,4 +119,16 @@ int asprintf(char **,const char *, ...) PRINTF_ATTRIBUTE(2,3);
typedef int (*comparison_fn_t)(const void *, const void *);
#endif
+#ifndef HAVE_U_INT32_T
+typedef unsigned u_int32_t;
+#endif
+
+#ifndef HAVE_U_INT16_T
+typedef unsigned short u_int16_t;
+#endif
+
+#ifndef HAVE_U_INT8_T
+typedef unsigned char u_int8_t;
+#endif
+
#endif