--- kadm5-0.2.3/config.m4 2003-05-09 10:28:45.000000000 -0400 +++ kadm5-0.2.3-r1/config.m4 2011-10-21 13:21:22.000000000 -0400 @@ -43,6 +43,7 @@ # --with-kadm5 -> add include path PHP_ADD_INCLUDE($KADM5_DIR) PHP_ADD_INCLUDE($KADM5_DIR/krb5) + PHP_ADD_INCLUDE(/usr/include/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 --- kadm5-0.2.3/kadm5.c 2003-05-28 06:51:42.000000000 -0400 +++ kadm5-0.2.3-r1/kadm5.c 2011-10-21 13:20:39.000000000 -0400 @@ -435,7 +435,6 @@ case KADM5_SETKEY_DUP_ENCTYPES: php_error(E_WARNING, "Multiple values for single or folded enctype. (KADM5_SETKEY_DUP_ENCTYPES)"); break; - default: } } /* }}} */ @@ -448,6 +447,7 @@ char *admin_server, *realm, *princstr, *password; int admin_server_len, realm_len, princstr_len, password_len; kadm5_config_params params; + krb5_context context; void *handle = NULL; kadm5_ret_t rc; @@ -460,29 +461,40 @@ WRONG_PARAM_COUNT; } + rc = kadm5_init_krb5_context(&context); + if (rc) { + kadm5_error(rc); + RETURN_FALSE; + } + params.realm = realm; params.mask |= KADM5_CONFIG_REALM; params.admin_server = admin_server; params.mask |= KADM5_CONFIG_ADMIN_SERVER; - rc = kadm5_init_with_password(princstr, + rc = kadm5_init_with_password(context, + princstr, password, KADM5_ADMIN_SERVICE, ¶ms, KADM5_STRUCT_VERSION, KADM5_API_VERSION_2, + NULL, &handle); if (rc) { kadm5_error(rc); + krb5_free_context(context); RETURN_FALSE; } if (handle == NULL) { php_error(E_WARNING, "Internal error! handle == NULL!"); + krb5_free_context(context); RETURN_FALSE; } + krb5_free_context(context); ZEND_REGISTER_RESOURCE(return_value, handle, le_handle); } /* }}} */ @@ -492,16 +504,16 @@ Closes the connection to the admin server and releases all related resources. */ PHP_FUNCTION(kadm5_destroy) { - zval **link; + zval *link; void *handle; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &link ) == FAILURE) { + if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &link) == FAILURE) { WRONG_PARAM_COUNT; } - ZEND_FETCH_RESOURCE(handle, void *, link, -1, HANDLE_ID, le_handle); + ZEND_FETCH_RESOURCE(handle, void *, &link, -1, HANDLE_ID, le_handle); - zend_list_delete((*link)->value.lval); + zend_list_delete(link->value.lval); RETURN_TRUE; } /* }}} */ @@ -511,15 +523,15 @@ Flush all changes to the Kerberos database, leaving the connection to the Kerberos admin server open. */ PHP_FUNCTION(kadm5_flush) { - zval **link; + zval *link; void *handle; kadm5_ret_t rc; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &link ) == FAILURE) { + if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &link) == FAILURE) { WRONG_PARAM_COUNT; } - ZEND_FETCH_RESOURCE(handle, void *, link, -1, HANDLE_ID, le_handle); + ZEND_FETCH_RESOURCE(handle, void *, &link, -1, HANDLE_ID, le_handle); rc = kadm5_flush(handle);