summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am2
-rw-r--r--src/sss_client/nss_mc_common.c2
-rw-r--r--src/util/io.c8
-rw-r--r--src/util/io.h33
-rw-r--r--src/util/murmurhash3.h8
-rw-r--r--src/util/util.h4
6 files changed, 52 insertions, 5 deletions
diff --git a/Makefile.am b/Makefile.am
index 4cb8b6436..265da9c79 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -371,6 +371,7 @@ dist_noinst_HEADERS = \
src/util/crypto/sss_crypto.h \
src/util/dlinklist.h \
src/util/util.h \
+ src/util/io.h \
src/util/util_errors.h \
src/util/strtonum.h \
src/util/sss_nss.h \
@@ -1234,6 +1235,7 @@ libnss_sss_la_SOURCES = \
src/sss_client/sss_cli.h \
src/sss_client/nss_compat.h \
src/sss_client/nss_mc_common.c \
+ src/util/io.c \
src/util/murmurhash3.c \
src/sss_client/nss_mc_passwd.c \
src/sss_client/nss_mc_group.c \
diff --git a/src/sss_client/nss_mc_common.c b/src/sss_client/nss_mc_common.c
index 66442b717..5d36c47ad 100644
--- a/src/sss_client/nss_mc_common.c
+++ b/src/sss_client/nss_mc_common.c
@@ -31,7 +31,7 @@
#include <string.h>
#include <stdlib.h>
#include "nss_mc.h"
-#include "util/util.h"
+#include "util/io.h"
/* FIXME: hook up to library destructor to avoid leaks */
/* FIXME: temporarily open passwd file on our own, later we will probably
diff --git a/src/util/io.c b/src/util/io.c
index e07a18c56..4d1f2e74a 100644
--- a/src/util/io.c
+++ b/src/util/io.c
@@ -24,8 +24,14 @@
#include <unistd.h>
#include <fcntl.h>
+#include <errno.h>
-#include "util/util.h"
+#include "util/io.h"
+
+/* CAUTION:
+ * This file have to be minimalist and cannot include DEBUG macros
+ * or header file util.h.
+ */
int sss_open_cloexec(const char *pathname, int flags, int *ret)
{
diff --git a/src/util/io.h b/src/util/io.h
new file mode 100644
index 000000000..8d10ed9c2
--- /dev/null
+++ b/src/util/io.h
@@ -0,0 +1,33 @@
+/*
+ SSSD
+
+ SSSD Utility functions
+
+ Copyright (C) Lukas Slebodnik 2013
+
+ 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 3 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, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef _UTIL_IO_H_
+#define _UTIL_IO_H_
+
+/* CAUTION:
+ * This file is also used in sss_client (pam, nss). Therefore it have to be
+ * minimalist and cannot include DEBUG macros or header file util.h.
+ */
+
+int sss_open_cloexec(const char *pathname, int flags, int *ret);
+int sss_openat_cloexec(int dir_fd, const char *pathname, int flags, int *ret);
+
+#endif /* _UTIL_IO_H_ */
diff --git a/src/util/murmurhash3.h b/src/util/murmurhash3.h
index db7d8a48c..6910e596b 100644
--- a/src/util/murmurhash3.h
+++ b/src/util/murmurhash3.h
@@ -6,7 +6,15 @@
* clients can be both 64 or 32 bit at the same time.
*/
+#ifndef _UTIL_MURMURHASH3_H_
+#define _UTIL_MURMURHASH3_H_
+
#include <stdint.h>
+/* CAUTION:
+ * This file is also used in sss_client (pam, nss). Therefore it have to be
+ * minimalist and cannot include DEBUG macros or header file util.h.
+ */
uint32_t murmurhash3(const char *key, int len, uint32_t seed);
+#endif /* _UTIL_MURMURHASH3_H_ */
diff --git a/src/util/util.h b/src/util/util.h
index e61a94f7f..33725f635 100644
--- a/src/util/util.h
+++ b/src/util/util.h
@@ -584,9 +584,7 @@ errno_t sssd_domain_init(TALLOC_CTX *mem_ctx,
/* from util_lock.c */
errno_t sss_br_lock_file(int fd, size_t start, size_t len,
int num_tries, useconds_t wait);
-/* from io.c */
-int sss_open_cloexec(const char *pathname, int flags, int *ret);
-int sss_openat_cloexec(int dir_fd, const char *pathname, int flags, int *ret);
+#include "io.h"
/* Endianness-compatibility for systems running older versions of glibc */