summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2009-04-25 09:36:11 +0000
committerKen Raeburn <raeburn@mit.edu>2009-04-25 09:36:11 +0000
commit10c0b36c72eb2b38811494c4fa2adbc734b66237 (patch)
treedd5f4211ea4f75fc2e1f3454e0593da3c1212f7a /src
parent582aabf279c16a3a55cc44c958130ada29e46e41 (diff)
downloadkrb5-10c0b36c72eb2b38811494c4fa2adbc734b66237.tar.gz
krb5-10c0b36c72eb2b38811494c4fa2adbc734b66237.tar.xz
krb5-10c0b36c72eb2b38811494c4fa2adbc734b66237.zip
make installed headers C++-safe
Now that we're installing the kadm5 headers, they should be C++-safe like the others. Wrap the content in 'extern "C"' if compiling as C++. New test program to verify. ticket: 6477 target_version: 1.7 tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@22280 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/lib/kadm5/admin.h14
-rw-r--r--src/tests/misc/Makefile.in11
-rw-r--r--src/tests/misc/deps10
-rw-r--r--src/tests/misc/test_cxx_kadm5.cpp15
4 files changed, 47 insertions, 3 deletions
diff --git a/src/lib/kadm5/admin.h b/src/lib/kadm5/admin.h
index a9e01768fd..57e2586f26 100644
--- a/src/lib/kadm5/admin.h
+++ b/src/lib/kadm5/admin.h
@@ -56,6 +56,18 @@
#include <kadm5/kadm_err.h>
#include <kadm5/chpass_util_strings.h>
+#ifndef KADM5INT_BEGIN_DECLS
+#if defined(__cplusplus)
+#define KADM5INT_BEGIN_DECLS extern "C" {
+#define KADM5INT_END_DECLS }
+#else
+#define KADM5INT_BEGIN_DECLS
+#define KADM5INT_END_DECLS
+#endif
+#endif
+
+KADM5INT_BEGIN_DECLS
+
#define KADM5_ADMIN_SERVICE "kadmin/admin"
#define KADM5_CHANGEPW_SERVICE "kadmin/changepw"
#define KADM5_HIST_PRINCIPAL "kadmin/history"
@@ -790,4 +802,6 @@ ovsec_kadm_ret_t ovsec_kadm_get_policies(void *server_handle,
#endif /* USE_KADM5_API_VERSION == 1 */
+KADM5INT_END_DECLS
+
#endif /* __KADM5_ADMIN_H__ */
diff --git a/src/tests/misc/Makefile.in b/src/tests/misc/Makefile.in
index 1cf2c9e6b0..45c43f44a9 100644
--- a/src/tests/misc/Makefile.in
+++ b/src/tests/misc/Makefile.in
@@ -13,16 +13,18 @@ SRCS=\
$(srcdir)/test_cxx_krb5.cpp \
$(srcdir)/test_cxx_k5int.cpp \
$(srcdir)/test_cxx_gss.cpp \
- $(srcdir)/test_cxx_rpc.cpp
+ $(srcdir)/test_cxx_rpc.cpp \
+ $(srcdir)/test_cxx_kadm5.cpp
all:: test_getpw
-check:: test_getpw test_cxx_krb5 test_cxx_gss test_cxx_rpc test_cxx_k5int
+check:: test_getpw test_cxx_krb5 test_cxx_gss test_cxx_rpc test_cxx_k5int test_cxx_kadm5
$(RUN_SETUP) $(VALGRIND) ./test_getpw
$(RUN_SETUP) $(VALGRIND) ./test_cxx_krb5
$(RUN_SETUP) $(VALGRIND) ./test_cxx_k5int
$(RUN_SETUP) $(VALGRIND) ./test_cxx_gss
$(RUN_SETUP) $(VALGRIND) ./test_cxx_rpc
+ $(RUN_SETUP) $(VALGRIND) ./test_cxx_kadm5
test_getpw: $(OUTPRE)test_getpw.$(OBJEXT) $(SUPPORT_DEPLIB)
$(CC_LINK) $(ALL_CFLAGS) -o test_getpw $(OUTPRE)test_getpw.$(OBJEXT) $(SUPPORT_LIB)
@@ -38,13 +40,16 @@ test_cxx_gss: $(OUTPRE)test_cxx_gss.$(OBJEXT)
$(CXX_LINK) $(ALL_CXXFLAGS) -o test_cxx_gss $(OUTPRE)test_cxx_gss.$(OBJEXT) $(LIBS)
test_cxx_rpc: $(OUTPRE)test_cxx_rpc.$(OBJEXT) $(GSSRPC_DEPLIBS)
$(CXX_LINK) $(ALL_CXXFLAGS) -o test_cxx_rpc $(OUTPRE)test_cxx_rpc.$(OBJEXT) $(GSSRPC_LIBS) $(KRB5_BASE_LIBS) $(LIBS)
+test_cxx_kadm5: $(OUTPRE)test_cxx_kadm5.$(OBJEXT) $(KADMCLNT_DEPLIBS)
+ $(CXX_LINK) $(ALL_CXXFLAGS) -o test_cxx_kadm5 $(OUTPRE)test_cxx_kadm5.$(OBJEXT) $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS) $(LIBS)
test_cxx_krb5.$(OBJEXT): test_cxx_krb5.cpp
test_cxx_gss.$(OBJEXT): test_cxx_gss.cpp
test_cxx_rpc.$(OBJEXT): test_cxx_rpc.cpp
+test_cxx_kadm5.$(OBJEXT): test_cxx_kadm5.cpp
install::
clean::
- $(RM) test_getpw test_cxx_krb5 test_cxx_gss *.o
+ $(RM) test_getpw test_cxx_krb5 test_cxx_gss test_cxx_k5int test_cxx_rpc test_cxx_kadm5 *.o
diff --git a/src/tests/misc/deps b/src/tests/misc/deps
index d720d9f25e..3a7928c092 100644
--- a/src/tests/misc/deps
+++ b/src/tests/misc/deps
@@ -29,3 +29,13 @@ $(OUTPRE)test_cxx_rpc.$(OBJEXT): $(BUILDTOP)/include/gssapi/gssapi.h \
$(SRCTOP)/include/gssrpc/rpc.h $(SRCTOP)/include/gssrpc/rpc_msg.h \
$(SRCTOP)/include/gssrpc/svc.h $(SRCTOP)/include/gssrpc/svc_auth.h \
$(SRCTOP)/include/gssrpc/xdr.h test_cxx_rpc.cpp
+$(OUTPRE)test_cxx_kadm5.$(OBJEXT): $(BUILDTOP)/include/gssapi/gssapi.h \
+ $(BUILDTOP)/include/gssrpc/types.h $(BUILDTOP)/include/kadm5/admin.h \
+ $(BUILDTOP)/include/kadm5/chpass_util_strings.h $(BUILDTOP)/include/kadm5/kadm_err.h \
+ $(BUILDTOP)/include/krb5/krb5.h $(COM_ERR_DEPS) $(SRCTOP)/include/gssrpc/auth.h \
+ $(SRCTOP)/include/gssrpc/auth_gss.h $(SRCTOP)/include/gssrpc/auth_unix.h \
+ $(SRCTOP)/include/gssrpc/clnt.h $(SRCTOP)/include/gssrpc/rename.h \
+ $(SRCTOP)/include/gssrpc/rpc.h $(SRCTOP)/include/gssrpc/rpc_msg.h \
+ $(SRCTOP)/include/gssrpc/svc.h $(SRCTOP)/include/gssrpc/svc_auth.h \
+ $(SRCTOP)/include/gssrpc/xdr.h $(SRCTOP)/include/kdb.h \
+ $(SRCTOP)/include/krb5.h test_cxx_kadm5.cpp
diff --git a/src/tests/misc/test_cxx_kadm5.cpp b/src/tests/misc/test_cxx_kadm5.cpp
new file mode 100644
index 0000000000..59422ed1c7
--- /dev/null
+++ b/src/tests/misc/test_cxx_kadm5.cpp
@@ -0,0 +1,15 @@
+// Test that the kadm5 header is compatible with C++ application code.
+
+#include "kadm5/admin.h"
+
+krb5_context ctx;
+kadm5_config_params p_in, p_out;
+int main (int argc, char *argv[])
+{
+ if (argc == 47 && kadm5_get_config_params(ctx, 1, &p_in, &p_out)) {
+ printf("error\n");
+ return 1;
+ }
+ printf("hello, world\n");
+ return 0;
+}