}
#endif
-/** Frees a krb5 context
- *
- * @param instance rlm_krb5 instance.
- * @param handle to destroy.
- * @return 0 (always indicates success).
- */
-int mod_conn_delete(UNUSED void *instance, void *handle)
-{
- return talloc_free((krb5_context *) handle);
-}
-
/** Frees libkrb5 resources associated with the handle
*
* Must not be called directly.
* @param conn to free.
* @return 0 (always indicates success).
*/
-static int _free_handle(rlm_krb5_handle_t *conn) {
+static int _mod_conn_free(rlm_krb5_handle_t *conn) {
krb5_free_context(conn->context);
if (conn->keytab) {
* libkrb5(s) can talk to the KDC over TCP. Were assuming something sane is implemented
* by libkrb5 and that it does connection caching associated with contexts, so it's
* worth using a connection pool to preserve connections when workers die.
- *
- * @param instance rlm_krb5 instance instance.
- * @return A new context or NULL on error.
*/
-void *mod_conn_create(void *instance)
+void *mod_conn_create(TALLOC_CTX *ctx, void *instance)
{
rlm_krb5_t *inst = instance;
rlm_krb5_handle_t *conn;
krb5_error_code ret;
- MEM(conn = talloc_zero(instance, rlm_krb5_handle_t));
+ MEM(conn = talloc_zero(ctx, rlm_krb5_handle_t));
ret = krb5_init_context(&conn->context);
if (ret) {
ERROR("rlm_krb5 (%s): Context initialisation failed: %s", inst->xlat_name,
return NULL;
}
- talloc_set_destructor(conn, _free_handle);
+ talloc_set_destructor(conn, _mod_conn_free);
ret = inst->keytabname ?
krb5_kt_resolve(conn->context, inst->keytabname, &conn->keytab) :