patches/kadm5.patch
author Dan Fuhry <dan@fuhry.us>
Sat, 16 Feb 2013 19:02:51 -0500
changeset 6 3ac4e03f28b2
parent 0 3906ca745819
permissions -rw-r--r--
Fixed kerberos path again. Default Ubuntu installs do indeed use /var/lib/krb5kdc. Really should try to autodetect that.

diff -Naur kadm5-0.2.3/config.m4 kadm5-0.2.3~patched/config.m4
--- kadm5-0.2.3/config.m4	2003-05-09 10:28:45.000000000 -0400
+++ kadm5-0.2.3~patched/config.m4	2010-12-13 20:47:12.369457242 -0500
@@ -43,6 +43,7 @@
   # --with-kadm5 -> add include path
   PHP_ADD_INCLUDE($KADM5_DIR)
   PHP_ADD_INCLUDE($KADM5_DIR/krb5)
+  PHP_ADD_INCLUDE($KADM5_DIR/et)
 
   # --with-kadm5 -> chech for lib and symbol presence
   LIBNAME=kadm5srv # you may want to change this
@@ -59,7 +60,7 @@
   PHP_ADD_LIBRARY_WITH_PATH(gssrpc, /usr/lib, KADM5_SHARED_LIBADD)
   PHP_ADD_LIBRARY_WITH_PATH(krb5, /usr/lib, KADM5_SHARED_LIBADD)
   PHP_ADD_LIBRARY_WITH_PATH(k5crypto, /usr/lib, KADM5_SHARED_LIBADD)
-  PHP_ADD_LIBRARY_WITH_PATH(dyn, /usr/lib, KADM5_SHARED_LIBADD)
+  dnl PHP_ADD_LIBRARY_WITH_PATH(dyn, /usr/lib, KADM5_SHARED_LIBADD)
 
   PHP_EXTENSION(kadm5, $ext_shared)
 fi
diff -Naur kadm5-0.2.3/kadm5.c kadm5-0.2.3~patched/kadm5.c
--- kadm5-0.2.3/kadm5.c	2003-05-28 06:51:42.000000000 -0400
+++ kadm5-0.2.3~patched/kadm5.c	2010-12-13 20:39:23.154629086 -0500
@@ -29,7 +29,8 @@
 #include "config.h"
 #endif
 
-#include "kadm5/admin.h"
+#include <kadm5/admin.h>
+#include <kadm5/kadm_err.h>
 
 #include "php.h"
 #include "php_ini.h"
@@ -74,7 +75,7 @@
  *
  * Every user visible function must have an entry in kadm5_functions[].
  */
-function_entry kadm5_functions[] = {
+zend_function_entry kadm5_functions[] = {
 	PHP_FE(kadm5_init_with_password, NULL)
 	PHP_FE(kadm5_destroy, NULL)
 	PHP_FE(kadm5_flush, NULL)
@@ -436,6 +437,7 @@
 		php_error(E_WARNING, "Multiple values for single or folded enctype. (KADM5_SETKEY_DUP_ENCTYPES)");
 		break;
 	default:
+		break;
 	}
 }
 /* }}} */
@@ -465,12 +467,29 @@
 	params.admin_server = admin_server;
 	params.mask |= KADM5_CONFIG_ADMIN_SERVER;
 
-	rc = kadm5_init_with_password(princstr,
+/* prototype:
+kadm5_ret_t    kadm5_init_with_password(krb5_context context,
+                                        char *client_name,
+                                        char *pass,
+                                        char *service_name,
+                                        kadm5_config_params *params,
+                                        krb5_ui_4 struct_version,
+                                        krb5_ui_4 api_version,
+                                        char **db_args,
+                                        void **server_handle);
+*/
+
+	krb5_context context;
+	krb5_init_context(&context);
+	char **db_args = NULL;
+	rc = kadm5_init_with_password(context,
+								  princstr,
 								  password,
 								  KADM5_ADMIN_SERVICE,
 								  &params,
 								  KADM5_STRUCT_VERSION,
 								  KADM5_API_VERSION_2,
+								  db_args,
 								  &handle);
 
 	if (rc) {