X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-perl%2Fclose.c;h=6e16a04daf7a8a7234d29b4894ad0b7fc36a4823;hb=619cebee126b6f3cdee3a336504989566cffa02e;hp=34d5a78f15ce94e3cdcaa79a1abe1298898d0cd4;hpb=b7beec16639919fa80f76f0e72db9afde77d32be;p=openldap diff --git a/servers/slapd/back-perl/close.c b/servers/slapd/back-perl/close.c index 34d5a78f15..6e16a04daf 100644 --- a/servers/slapd/back-perl/close.c +++ b/servers/slapd/back-perl/close.c @@ -1,42 +1,59 @@ -/* - * Copyright 1999, John C. Quillan, All rights reserved. +/* $OpenLDAP$ */ +/* This work is part of OpenLDAP Software . * - * Redistribution and use in source and binary forms are permitted only - * as authorized by the OpenLDAP Public License. A copy of this - * license is available at http://www.OpenLDAP.org/license.html or - * in file LICENSE in the top-level directory of the distribution. + * Copyright 1999-2011 The OpenLDAP Foundation. + * Portions Copyright 1999 John C. Quillan. + * Portions Copyright 2002 myinternet Limited. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted only as authorized by the OpenLDAP + * Public License. + * + * A copy of this license is available in file LICENSE in the + * top-level directory of the distribution or, alternatively, at + * . */ -#include "portable.h" -/* init.c - initialize shell backend */ - -#include -/* #include - #include -*/ - -#include -#include - -#include "slap.h" #include "perl_back.h" - +#include "../config.h" /********************************************************** * * Close * **********************************************************/ -void +int perl_back_close( - Backend *be + BackendInfo *bd ) { - pthread_mutex_lock( &perl_interpreter_mutex ); + perl_destruct(PERL_INTERPRETER); + perl_free(PERL_INTERPRETER); + PERL_INTERPRETER = NULL; +#ifdef PERL_SYS_TERM + PERL_SYS_TERM(); +#endif - perl_destruct(perl_interpreter); - perl_free(perl_interpreter); + ldap_pvt_thread_mutex_destroy( &perl_interpreter_mutex ); - pthread_mutex_unlock( &perl_interpreter_mutex ); + return 0; } +int +perl_back_db_destroy( + BackendDB *be, + ConfigReply *cr +) +{ + PerlBackend *pb = be->be_private; + + ch_free( pb->pb_module_name ); + ber_bvarray_free( pb->pb_module_path ); + ber_bvarray_free( pb->pb_module_config ); + + free( be->be_private ); + be->be_private = NULL; + + return 0; +}