]> git.sur5r.net Git - openldap/commitdiff
* Removed uneeded cvs keywords
authorBen Collins <bcollins@openldap.org>
Thu, 18 Feb 1999 02:18:39 +0000 (02:18 +0000)
committerBen Collins <bcollins@openldap.org>
Thu, 18 Feb 1999 02:18:39 +0000 (02:18 +0000)
* Fixed unfree'd 'char *results' in all tcl_* functions (only unfree'd in
  certain cases, moved the free to the actual function) so no more mem
  leaks. Tested this with over 500,000 access's for testing :)
* Miscellaneous source style and tabulation fixes

17 files changed:
servers/slapd/back-tcl/TODO
servers/slapd/back-tcl/Version.c
servers/slapd/back-tcl/external.h
servers/slapd/back-tcl/tcl_abandon.c
servers/slapd/back-tcl/tcl_add.c
servers/slapd/back-tcl/tcl_back.h
servers/slapd/back-tcl/tcl_bind.c
servers/slapd/back-tcl/tcl_close.c
servers/slapd/back-tcl/tcl_compare.c
servers/slapd/back-tcl/tcl_config.c
servers/slapd/back-tcl/tcl_delete.c
servers/slapd/back-tcl/tcl_init.c
servers/slapd/back-tcl/tcl_modify.c
servers/slapd/back-tcl/tcl_modrdn.c
servers/slapd/back-tcl/tcl_search.c
servers/slapd/back-tcl/tcl_unbind.c
servers/slapd/back-tcl/tcl_util.c

index 2a85e15e92a97c1accfa733d347353c734a2d251..f118d731e19f89a38027064492ee7b9816deb146 100644 (file)
@@ -2,5 +2,3 @@
 
 * Add a version, callable from the tcl script for checking features
 
-* don't expand tabs for spaces...
-
index 7518460f36ee4b4fd22db7e8f8935d790bbaa092..ad780765331a5eed851544ad1a2a67e21bcfea45 100644 (file)
@@ -1,4 +1,5 @@
-/*
+/* $Id$
+ *
  * Copyright 1999, Ben Collins <bcollins@debian.org>, All rights reserved.
  *
  * Redistribution and use in source and binary forms are permitted only
index e65fb2edc73feb2d947f1286825823faffedcc8f..62b75e80188e4db1e1b50d8ed130dddf4de27a29 100644 (file)
@@ -1,59 +1,56 @@
-/*
- * $Id: external.h,v 1.3 1999/02/16 23:26:05 bcollins Exp $
- */
+/* $Id: external.h,v 1.4 1999/02/17 00:55:03 bcollins Exp $ */
 
 #ifndef _TCL_EXTERNAL_H
 #define _TCL_EXTERNAL_H
 
 LDAP_BEGIN_DECL
 
-extern int     tcl_back_initialize LDAP_P(( BackendInfo *bi ));
-extern int     tcl_back_open LDAP_P(( BackendInfo *bi ));
-extern int     tcl_back_close LDAP_P(( BackendInfo *bi ));
-extern int     tcl_back_destroy LDAP_P(( BackendInfo *bi ));
+extern int tcl_back_initialize LDAP_P ((BackendInfo * bi));
+extern int tcl_back_open LDAP_P ((BackendInfo * bi));
+extern int tcl_back_close LDAP_P ((BackendInfo * bi));
+extern int tcl_back_destroy LDAP_P ((BackendInfo * bi));
 
-extern int     tcl_back_db_init LDAP_P(( BackendDB *bd ));
-extern int     tcl_back_db_open LDAP_P(( BackendDB *bd ));
-extern int     tcl_back_db_close LDAP_P(( BackendDB *bd ));
-extern int     tcl_back_db_destroy LDAP_P(( BackendDB *bd ));
+extern int tcl_back_db_init LDAP_P ((BackendDB * bd));
+extern int tcl_back_db_open LDAP_P ((BackendDB * bd));
+extern int tcl_back_db_close LDAP_P ((BackendDB * bd));
+extern int tcl_back_db_destroy LDAP_P ((BackendDB * bd));
 
-extern int     tcl_back_db_config LDAP_P(( BackendDB *bd,
-       char *fname, int lineno, int argc, char **argv ));
+extern int tcl_back_db_config LDAP_P ((BackendDB * bd,
+               char *fname, int lineno, int argc, char **argv));
 
-extern int tcl_back_bind LDAP_P(( BackendDB *bd,
-       Connection *conn, Operation *op,
-       char *dn, int method, struct berval *cred, char** edn ));
+extern int tcl_back_bind LDAP_P ((BackendDB * bd,
+               Connection * conn, Operation * op,
+               char *dn, int method, struct berval * cred, char **edn));
 
-extern int     tcl_back_unbind LDAP_P(( BackendDB *bd,
-       Connection *conn, Operation *op ));
+extern int tcl_back_unbind LDAP_P ((BackendDB * bd,
+               Connection * conn, Operation * op));
 
-extern int     tcl_back_search LDAP_P(( BackendDB *bd,
-       Connection *conn, Operation *op,
-       char *base, int scope, int deref, int sizelimit, int timelimit,
-       Filter *filter, char *filterstr, char **attrs, int attrsonly ));
+extern int tcl_back_search LDAP_P ((BackendDB * bd,
+               Connection * conn, Operation * op,
+               char *base, int scope, int deref, int sizelimit, int timelimit,
+               Filter * filter, char *filterstr, char **attrs, int attrsonly));
 
-extern int     tcl_back_compare LDAP_P((BackendDB *bd,
-       Connection *conn, Operation *op,
-       char *dn, Ava   *ava ));
+extern int tcl_back_compare LDAP_P ((BackendDB * bd,
+               Connection * conn, Operation * op,
+               char *dn, Ava * ava));
 
-extern int     tcl_back_modify LDAP_P(( BackendDB *bd,
-       Connection *conn, Operation *op,
-       char *dn, LDAPModList *ml ));
+extern int tcl_back_modify LDAP_P ((BackendDB * bd,
+               Connection * conn, Operation * op,
+               char *dn, LDAPModList * ml));
 
-extern int     tcl_back_modrdn LDAP_P(( BackendDB *bd,
-       Connection *conn, Operation *op,
-       char *dn, char*newrdn, int deleteoldrdn ));
+extern int tcl_back_modrdn LDAP_P ((BackendDB * bd,
+               Connection * conn, Operation * op,
+               char *dn, char *newrdn, int deleteoldrdn));
 
-extern int     tcl_back_add LDAP_P(( BackendDB *bd,
-       Connection *conn, Operation *op, Entry *e ));
+extern int tcl_back_add LDAP_P ((BackendDB * bd,
+               Connection * conn, Operation * op, Entry * e));
 
-extern int     tcl_back_delete LDAP_P(( BackendDB *bd,
-       Connection *conn, Operation *op, char *dn ));
+extern int tcl_back_delete LDAP_P ((BackendDB * bd,
+               Connection * conn, Operation * op, char *dn));
 
-extern int     tcl_back_abandon LDAP_P(( BackendDB *bd,
-       Connection *conn, Operation *op, int msgid ));
+extern int tcl_back_abandon LDAP_P ((BackendDB * bd,
+               Connection * conn, Operation * op, int msgid));
 
 LDAP_END_DECL
 
 #endif /* _TCL_EXTERNAL_H */
-
index b563e1b8d8695adb37cae58299740e599b1525b9..dcd07cca812fb5ce4f6bc3ff90b3d057641b05d4 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * abandon.c - tcl abandon routine
+/* abandon.c - tcl abandon routine
+ *
+ * $Id: tcl_abandon.c,v 1.2 1999/02/16 23:32:49 bcollins Exp $
  *
  * Copyright 1999, Ben Collins <bcollins@debian.org>, All rights reserved.
  *
@@ -7,10 +8,6 @@
  * 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.
- *
- * $Id$
- *
- * $Log$
  */
 
 #include "portable.h"
 #include "slap.h"
 #include "tcl_back.h"
 
-int tcl_back_abandon (
-       Backend *be,
-       Connection      *conn,
-       Operation       *op,
-       int             msgid
+int
+tcl_back_abandon (
+       Backend * be,
+       Connection * conn,
+       Operation * op,
+       int msgid
 )
 {
        char *suf_tcl, *results, *command;
@@ -32,27 +30,30 @@ int tcl_back_abandon (
        struct tclinfo *ti = (struct tclinfo *) be->be_private;
 
        if (ti->ti_abandon == NULL) {
-               return;
+               return (-1);
        }
 
-       for ( i = 0; be->be_suffix[i] != NULL; i++ )
-               ;
-       suf_tcl = Tcl_Merge(i, be->be_suffix);
+       for (i = 0; be->be_suffix[i] != NULL; i++);
+       suf_tcl = Tcl_Merge (i, be->be_suffix);
 
-       command = (char *) ch_malloc (strlen(ti->ti_abandon) + strlen(suf_tcl)
+       command = (char *) ch_malloc (strlen (ti->ti_abandon) + strlen (suf_tcl)
                + 20);
-       sprintf(command, "%s ABANDON {%ld} {%s}",
+       sprintf (command, "%s ABANDON {%ld} {%s}",
                ti->ti_abandon, op->o_msgid, suf_tcl);
-       Tcl_Free(suf_tcl);
-
-       ldap_pvt_thread_mutex_lock( &tcl_interpreter_mutex );
-       code = Tcl_GlobalEval(ti->ti_ii->interp, command);
-       results = (char *) strdup(ti->ti_ii->interp->result);
-       ldap_pvt_thread_mutex_unlock( &tcl_interpreter_mutex );
-       free(command);
-
-       if (code != TCL_OK) {
-               Debug(LDAP_DEBUG_ANY, "tcl_abandon_error: %s\n", results, 0, 0);
-       }
-       return( 0 );
+       Tcl_Free (suf_tcl);
+
+       ldap_pvt_thread_mutex_lock (&tcl_interpreter_mutex);
+       code = Tcl_GlobalEval (ti->ti_ii->interp, command);
+       results = (char *) strdup (ti->ti_ii->interp->result);
+       ldap_pvt_thread_mutex_unlock (&tcl_interpreter_mutex);
+       free (command);
+
+        if (code != TCL_OK) {
+                err = LDAP_OPERATIONS_ERROR;
+                Debug (LDAP_DEBUG_ANY, "tcl_abandon_error: %s\n", results,
+                        0, 0);
+        }
+
+        free(results);
+        return (err);
 }
index 531ef0a390b9b400cf412ee51e778f75adbaa11f..2eb0406674f1a5386a769e5a8bc32aeff35e54b5 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * add.c - tcl add routine
+/* add.c - tcl add routine
+ *
+ * $Id: tcl_add.c,v 1.2 1999/02/17 01:05:28 bcollins Exp $
  *
  * Copyright 1999, Ben Collins <bcollins@debian.org>, All rights reserved.
  *
@@ -7,10 +8,6 @@
  * 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.
- *
- * $Id$
- *
- * $Log$
  */
 
 #include "portable.h"
@@ -20,7 +17,8 @@
 #include "slap.h"
 #include "tcl_back.h"
 
-int tcl_back_add (
+int
+tcl_back_add (
        Backend * be,
        Connection * conn,
        Operation * op,
@@ -37,34 +35,36 @@ int tcl_back_add (
                return (-1);
        }
 
-       for ( i = 0; be->be_suffix[i] != NULL; i++ )
-               ;
-       suf_tcl = Tcl_Merge(i, be->be_suffix);
+       for (i = 0; be->be_suffix[i] != NULL; i++);
+       suf_tcl = Tcl_Merge (i, be->be_suffix);
 
-       entrystr = tcl_clean_entry(e);
+       entrystr = tcl_clean_entry (e);
 
-       command = (char *) ch_malloc (strlen(ti->ti_add) + strlen(suf_tcl) + 
-       strlen(entrystr) + 32);
-       sprintf(command, "%s ADD {%ld} {%s} {%s}",
+       command = (char *) ch_malloc (strlen (ti->ti_add) + strlen
+               (suf_tcl) +
+               strlen (entrystr) + 32);
+       sprintf (command, "%s ADD {%ld} {%s} {%s}",
                ti->ti_add, op->o_msgid, suf_tcl, entrystr);
-       Tcl_Free(suf_tcl);
+       Tcl_Free (suf_tcl);
        free (entrystr);
 
-       ldap_pvt_thread_mutex_lock( &tcl_interpreter_mutex );
-       code = Tcl_GlobalEval(ti->ti_ii->interp, command);
-       results = (char *) strdup(ti->ti_ii->interp->result);
-       ldap_pvt_thread_mutex_unlock( &tcl_interpreter_mutex );
-       free(command);
+       ldap_pvt_thread_mutex_lock (&tcl_interpreter_mutex);
+       code = Tcl_GlobalEval (ti->ti_ii->interp, command);
+       results = (char *) strdup (ti->ti_ii->interp->result);
+       ldap_pvt_thread_mutex_unlock (&tcl_interpreter_mutex);
+       free (command);
 
        if (code != TCL_OK) {
                err = LDAP_OPERATIONS_ERROR;
-               Debug(LDAP_DEBUG_ANY, "tcl_add_error: %s\n", results, 0, 0);
+               Debug (LDAP_DEBUG_ANY, "tcl_add_error: %s\n", results, 0, 0);
        } else {
-               interp_send_results ( be, conn, op, results, NULL, 0 );
+               interp_send_results (be, conn, op, results, NULL, 0);
        }
 
        if (err != LDAP_SUCCESS)
-               send_ldap_result (conn, op, err, NULL, "internal backend error");
+               send_ldap_result (conn, op, err, NULL,
+                       "internal backend error");
+
+        free(results);
        return (err);
 }
-
index 60e6cd00dcfa7841f44336b24642258fc2435dd7..3ad290e240d4a8680e6ba692a18f53efce04564c 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * tcl_back.h - tcl backend header (structs, functions)
+/* tcl_back.h - tcl backend header (structs, functions)
+ *
+ * $Id: tcl_back.h,v 1.1 1999/02/17 01:23:18 bcollins Exp $
  *
  * Copyright 1999, Ben Collins <bcollins@debian.org>, All rights reserved.
  *
@@ -7,10 +8,6 @@
  * 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.
- *
- * $Id$
- *
- * $Log$
  */
 
 #include <tcl.h>
 #include <ldap_cdefs.h>
 #include "external.h"
 
-extern ldap_pvt_thread_mutex_t  tcl_interpreter_mutex;
+extern ldap_pvt_thread_mutex_t tcl_interpreter_mutex;
 
 struct i_info {
-    Tcl_Interp *interp;
-    char *name;
-    struct i_info *next;
-    int count;
+       Tcl_Interp *interp;
+       char *name;
+       struct i_info *next;
+       int count;
 };
 
 extern struct i_info *global_i;
 
 struct tclinfo {
-    char *script_path;
-    struct i_info *ti_ii;
-    char *ti_bind;
-    char *ti_unbind;
-    char *ti_search;
-    char *ti_compare;
-    char *ti_modify;
-    char *ti_modrdn;
-    char *ti_add;
-    char *ti_delete;
-    char *ti_abandon;
+       char *script_path;
+       struct i_info *ti_ii;
+       char *ti_bind;
+       char *ti_unbind;
+       char *ti_search;
+       char *ti_compare;
+       char *ti_modify;
+       char *ti_modrdn;
+       char *ti_add;
+       char *ti_delete;
+       char *ti_abandon;
 };
 
 void readtclscript (char *script, Tcl_Interp * my_tcl);
-char *tcl_clean_entry (Entry *e);
+char *tcl_clean_entry (Entry * e);
+
 int tcl_ldap_debug (
-    ClientData clientData,
-    Tcl_Interp *interp,
-    int argc,
-    char *argv[]
+       ClientData clientData,
+       Tcl_Interp * interp,
+       int argc,
+       char *argv[]
 );
 
-int interp_send_results(
-    Backend     *be,
-    Connection  *conn,
-    Operation   *op,
-    char        *result,
-    char        **attrs,
-    int         attrsonly
+int interp_send_results (
+       Backend * be,
+       Connection * conn,
+       Operation * op,
+       char *result,
+       char **attrs,
+       int attrsonly
 );
 
 #endif
-
index f758bf77738691639b894bf017b3b58d7b8ee966..20b4dae301da628badfc733cda5719a75c4f3914 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * bind.c - tcl bind routines
+/* bind.c - tcl bind routines
+ *
+ * $Id: tcl_bind.c,v 1.2 1999/02/17 01:05:28 bcollins Exp $
  *
  * Copyright 1999, Ben Collins <bcollins@debian.org>, All rights reserved.
  *
@@ -7,10 +8,6 @@
  * 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.
- *
- * $Id$
- *
- * $Log$
  */
 
 #include "portable.h"
 #include "slap.h"
 #include "tcl_back.h"
 
-int tcl_back_bind (
+int
+tcl_back_bind (
        Backend * be,
        Connection * conn,
        Operation * op,
        char *dn,
        int method,
        struct berval *cred,
-       char** edn
+       char **edn
 )
 {
        char *command, *suf_tcl, *results;
@@ -42,31 +40,34 @@ int tcl_back_bind (
                return (-1);
        }
 
-       for ( i = 0; be->be_suffix[i] != NULL; i++ )
-               ;
-       suf_tcl = Tcl_Merge(i, be->be_suffix);
+       for (i = 0; be->be_suffix[i] != NULL; i++);
+       suf_tcl = Tcl_Merge (i, be->be_suffix);
 
-       command = (char *) ch_malloc (strlen(ti->ti_bind) + strlen(suf_tcl) +
-               strlen(dn) + strlen(cred->bv_val) + 64);
-       sprintf(command, "%s BIND {%ld} {%s} {%s} {%d} {%lu} {%s}",
+       command = (char *) ch_malloc (strlen (ti->ti_bind) + strlen
+               (suf_tcl) +
+               strlen (dn) + strlen (cred->bv_val) + 64);
+       sprintf (command, "%s BIND {%ld} {%s} {%s} {%d} {%lu} {%s}",
                ti->ti_bind, op->o_msgid, suf_tcl, dn, method, cred->bv_len,
                cred->bv_val);
-       Tcl_Free(suf_tcl);
+       Tcl_Free (suf_tcl);
 
-       ldap_pvt_thread_mutex_lock( &tcl_interpreter_mutex );
-       code = Tcl_GlobalEval(ti->ti_ii->interp, command);
-       results = (char *) strdup(ti->ti_ii->interp->result);
-       ldap_pvt_thread_mutex_unlock( &tcl_interpreter_mutex );
-       free(command);
+       ldap_pvt_thread_mutex_lock (&tcl_interpreter_mutex);
+       code = Tcl_GlobalEval (ti->ti_ii->interp, command);
+       results = (char *) strdup (ti->ti_ii->interp->result);
+       ldap_pvt_thread_mutex_unlock (&tcl_interpreter_mutex);
+       free (command);
 
        if (code != TCL_OK) {
                err = LDAP_OPERATIONS_ERROR;
-               Debug(LDAP_DEBUG_ANY, "tcl_bind_error: %s\n", results, 0, 0);
+               Debug (LDAP_DEBUG_ANY, "tcl_bind_error: %s\n", results, 0, 0);
        } else {
-               err = interp_send_results ( be, conn, op, results, NULL, 0 );
+               err = interp_send_results (be, conn, op, results, NULL, 0);
        }
 
        if (err != LDAP_SUCCESS)
-               send_ldap_result (conn, op, err, NULL, "internal backend error");
+               send_ldap_result (conn, op, err, NULL,
+                       "internal backend error");
+
+       free(results);
        return (err);
 }
index 7f9726f684e23a11abffd5a2302efd40786d5059..f01b9eefa640747acf1c1d54346148904f5c5b8b 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * close.c - tcl close routines
+/* close.c - tcl close routines
+ *
+ * $Id: tcl_close.c,v 1.3 1999/02/17 01:02:11 bcollins Exp $
  *
  * Copyright 1999, Ben Collins <bcollins@debian.org>, All rights reserved.
  *
@@ -7,13 +8,6 @@
  * 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.
- *
- * $Id: tcl_close.c,v 1.2 1999/02/17 00:55:03 bcollins Exp $
- *
- * $Log: tcl_close.c,v $
- * Revision 1.2  1999/02/17 00:55:03  bcollins
- * Implemented all of the (db_)destroy and (db_)close functions
- *
  */
 
 #include "portable.h"
@@ -28,26 +22,26 @@ tcl_back_close (
        BackendInfo * bi
 )
 {
-       Tcl_DeleteInterp(global_i->interp);
+       Tcl_DeleteInterp (global_i->interp);
 
-       return( 0 );
+       return (0);
 }
 
 int
-tcl_back_destroy(
-               BackendInfo *bi
+tcl_back_destroy (
+       BackendInfo * bi
 )
 {
-       Tcl_Free(global_i->interp);
-       free(global_i);
-       ldap_pvt_thread_mutex_destroy( &tcl_interpreter_mutex );
+       free (global_i->interp);
+       free (global_i);
+       ldap_pvt_thread_mutex_destroy (&tcl_interpreter_mutex);
 
-       return( 0 );
+       return (0);
 }
 
 int
-tcl_back_db_close(
-               BackendDB *bd
+tcl_back_db_close (
+       BackendDB * bd
 )
 {
        struct tclinfo *ti = (struct tclinfo *) bd->be_private;
@@ -55,35 +49,35 @@ tcl_back_db_close(
 
        /* Disable the interp and associated struct */
        ti->ti_ii->count--;
-       if (!ti->ti_ii->count && strcasecmp("default", ti->ti_ii->name)) {
+       if (!ti->ti_ii->count && strcasecmp ("default", ti->ti_ii->name)) {
                /* no more db's using this and it's not the default */
-               for(ti_tmp = global_i; ti_tmp->next != ti->ti_ii; ti_tmp = ti_tmp->next)
-                       ;
+               for (ti_tmp = global_i; ti_tmp->next != ti->ti_ii; ti_tmp
+                       = ti_tmp->next);
                /* This bypasses this interp struct in the global hash */
                ti_tmp->next = ti->ti_ii->next;
-               Tcl_DeleteInterp(ti->ti_ii->interp);
+               Tcl_DeleteInterp (ti->ti_ii->interp);
        }
-       return( 0 );
+       return (0);
 }
 
 int
-tcl_back_db_destroy(
-               BackendDB *bd
+tcl_back_db_destroy (
+       BackendDB * bd
 )
 {
        struct tclinfo *ti = (struct tclinfo *) bd->be_private;
 
-       /*
-       * Now free up the allocated memory used
-       */
+       /*
+        * Now free up the allocated memory used
+        */
        ti->ti_ii->count--;
-       if (!ti->ti_ii->count && strcasecmp("default", ti->ti_ii->name)) {
-               Tcl_Free(ti->ti_ii->interp);
-               free(ti->ti_ii);
-               free(ti);
+       if (!ti->ti_ii->count && strcasecmp ("default", ti->ti_ii->name)) {
+               free (ti->ti_ii->interp);
+               free (ti->ti_ii);
+               free (ti);
        }
-       free( bd->be_private );
+       free (bd->be_private);
        bd->be_private = NULL;
 
-       return( 0 );
+       return (0);
 }
index 599fa09239f683a6309b0670ea1dd282b52bb487..1882605e122cb58781948f3ea5c32f981b7a734d 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * compare.c - tcl compare routines
+/* compare.c - tcl compare routines
+ *
+ * $Id: tcl_compare.c,v 1.2 1999/02/17 01:05:28 bcollins Exp $
  *
  * Copyright 1999, Ben Collins <bcollins@debian.org>, All rights reserved.
  *
@@ -7,10 +8,6 @@
  * 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.
- *
- * $Id$
- *
- * $Log$
  */
 
 #include "portable.h"
@@ -39,33 +36,35 @@ tcl_back_compare (
                return (-1);
        }
 
-       for ( i = 0; be->be_suffix[i] != NULL; i++ )
-               ;
-       suf_tcl = Tcl_Merge(i, be->be_suffix);
+       for (i = 0; be->be_suffix[i] != NULL; i++);
+       suf_tcl = Tcl_Merge (i, be->be_suffix);
 
-       command = (char *) ch_malloc (strlen(ti->ti_compare) +
-               strlen(suf_tcl) + strlen(dn) + strlen(ava->ava_type) +
-               strlen(ava->ava_value.bv_val) + 64);
-       sprintf(command, "%s COMPARE {%ld} {%s} {%s} {%s: %s}",
+       command = (char *) ch_malloc (strlen (ti->ti_compare) +
+               strlen (suf_tcl) + strlen (dn) + strlen (ava->ava_type) +
+               strlen (ava->ava_value.bv_val) + 64);
+       sprintf (command, "%s COMPARE {%ld} {%s} {%s} {%s: %s}",
                ti->ti_compare, op->o_msgid, suf_tcl, dn, ava->ava_type,
-       ava->ava_value.bv_val);
-       Tcl_Free(suf_tcl);
+               ava->ava_value.bv_val);
+       Tcl_Free (suf_tcl);
 
-       ldap_pvt_thread_mutex_lock( &tcl_interpreter_mutex );
-       code = Tcl_GlobalEval(ti->ti_ii->interp, command);
-       results = (char *) strdup(ti->ti_ii->interp->result);
-       ldap_pvt_thread_mutex_unlock( &tcl_interpreter_mutex );
-       free(command);
+       ldap_pvt_thread_mutex_lock (&tcl_interpreter_mutex);
+       code = Tcl_GlobalEval (ti->ti_ii->interp, command);
+       results = (char *) strdup (ti->ti_ii->interp->result);
+       ldap_pvt_thread_mutex_unlock (&tcl_interpreter_mutex);
+       free (command);
 
        if (code != TCL_OK) {
                err = LDAP_OPERATIONS_ERROR;
-               Debug(LDAP_DEBUG_ANY, "tcl_compare_error: %s\n", results, 0, 0);
+               Debug (LDAP_DEBUG_ANY, "tcl_compare_error: %s\n", results,
+                       0, 0);
        } else {
-               interp_send_results ( be, conn, op, results, NULL, 0 );
+               interp_send_results (be, conn, op, results, NULL, 0);
        }
 
        if (err != LDAP_SUCCESS)
-               send_ldap_result (conn, op, err, NULL, "internal backend error");
-       return (0);
+               send_ldap_result (conn, op, err, NULL,
+                       "internal backend error");
 
+       free(results);
+       return (err);
 }
index 2b083c9ef7a5dc3bc0aca81fb9a795902348a8ab..d5378e36a700afee8581fa513d49db1bb41456db 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * config.c - tcl backend configuration file routine
+/* config.c - tcl backend configuration file routine
+ *
+ * $Id: tcl_config.c,v 1.3 1999/02/17 00:53:59 bcollins Exp $
  *
  * Copyright 1999, Ben Collins <bcollins@debian.org>, All rights reserved.
  *
@@ -7,13 +8,6 @@
  * 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.
- *
- * $Id: tcl_config.c,v 1.2 1999/02/16 23:30:36 bcollins Exp $
- *
- * $Log: tcl_config.c,v $
- * Revision 1.2  1999/02/16 23:30:36  bcollins
- * fixed exit()'s to be return()'s
- *
  */
 
 #include "portable.h"
@@ -25,7 +19,8 @@
 
 struct i_info *global_i;
 
-int tcl_back_db_config (
+int
+tcl_back_db_config (
        BackendDB * bd,
        char *fname,
        int lineno,
@@ -37,9 +32,10 @@ int tcl_back_db_config (
        int script_loaded = 0;
 
        if (ti == NULL) {
-               fprintf (stderr, "%s: line %d: tcl backend info is null!\n", fname,
+               fprintf (stderr,
+                       "%s: line %d: tcl backend info is null!\n", fname,
                        lineno);
-               return( 1 );
+               return (1);
        }
        if (ti->ti_ii == NULL) {
                ti->ti_ii = global_i;
@@ -51,11 +47,11 @@ int tcl_back_db_config (
                        Debug (LDAP_DEBUG_ANY,
                                "%s: line %d: missing script in \"scriptpath <script>\" line\n",
                                fname, lineno, 0);
-                       return( 1 );
+                       return (1);
                }
                ti->script_path = (char *) strdup (argv[1]);
 
-       /* use local interpreter */
+               /* use local interpreter */
        } else if (strcasecmp (argv[0], "tclrealm") == 0) {
                struct i_info *ii;
 
@@ -63,7 +59,7 @@ int tcl_back_db_config (
                        Debug (LDAP_DEBUG_ANY,
                                "%s: line %d: missing script in \"tclrealm <name>\" line\n",
                                fname, lineno, 0);
-                       return( 1 );
+                       return (1);
                }
                ti->ti_ii = NULL;
 
@@ -71,12 +67,12 @@ int tcl_back_db_config (
                /* Try to see if it already exists */
                do {
                        if (ii != NULL && !strcasecmp (ii->name, argv[1]))
-                       ti->ti_ii = ii;
+                               ti->ti_ii = ii;
                        if (ii->next != NULL)
-                       ii = ii->next;
+                               ii = ii->next;
                } while (ii->next != NULL);
 
-               if (ti->ti_ii == NULL) { /* we need to make a new one */
+               if (ti->ti_ii == NULL) {        /* we need to make a new one */
                        ii->next = (struct i_info *) ch_malloc
                                (sizeof (struct i_info));
 
@@ -87,122 +83,101 @@ int tcl_back_db_config (
                        ti->ti_ii = ii->next;
                }
 
-       /* proc for binds */
+               /* proc for binds */
        } else if (strcasecmp (argv[0], "bind") == 0) {
                if (argc < 2) {
                        Debug (LDAP_DEBUG_ANY,
                                "%s: line %d: missing proc in \"bind <proc>\" line\n",
                                fname, lineno, 0);
-                       return( 1 );
+                       return (1);
                }
                ti->ti_bind = (char *) strdup (argv[1]);
 
-       /* proc for unbinds */
+               /* proc for unbinds */
        } else if (strcasecmp (argv[0], "unbind") == 0) {
                if (argc < 2) {
                        Debug (LDAP_DEBUG_ANY,
-                       "%s: line %d: missing proc in \"unbind <proc>\" line\n",
-                       fname, lineno, 0);
-                       return( 1 );
+                               "%s: line %d: missing proc in \"unbind <proc>\" line\n",
+                               fname, lineno, 0);
+                       return (1);
                }
                ti->ti_unbind = (char *) strdup (argv[1]);
 
-       /* proc for search */
+               /* proc for search */
        } else if (strcasecmp (argv[0], "search") == 0) {
                if (argc < 2) {
                        Debug (LDAP_DEBUG_ANY,
                                "%s: line %d: missing proc in \"search <proc>\" line\n",
                                fname, lineno, 0);
-                       return( 1 );
+                       return (1);
                }
                ti->ti_search = (char *) strdup (argv[1]);
 
-       /* proc for compares */
+               /* proc for compares */
        } else if (strcasecmp (argv[0], "compare") == 0) {
                if (argc < 2) {
                        Debug (LDAP_DEBUG_ANY,
                                "%s: line %d: missing proc in \"compare <proc>\" line\n",
                                fname, lineno, 0);
-                       return( 1 );
+                       return (1);
                }
                ti->ti_compare = (char *) strdup (argv[1]);
 
-       /* proc for modify */
+               /* proc for modify */
        } else if (strcasecmp (argv[0], "modify") == 0) {
                if (argc < 2) {
                        Debug (LDAP_DEBUG_ANY,
                                "%s: line %d: missing proc in \"modify <proc>\" line\n",
                                fname, lineno, 0);
-                       return( 1 );
+                       return (1);
                }
                ti->ti_modify = (char *) strdup (argv[1]);
 
-       /* proc for modrdn */
+               /* proc for modrdn */
        } else if (strcasecmp (argv[0], "modrdn") == 0) {
                if (argc < 2) {
                        Debug (LDAP_DEBUG_ANY,
                                "%s: line %d: missing proc in \"modrdn <proc>\" line\n",
                                fname, lineno, 0);
-                       return( 1 );
+                       return (1);
                }
                ti->ti_modrdn = (char *) strdup (argv[1]);
 
-       /* proc for add */
+               /* proc for add */
        } else if (strcasecmp (argv[0], "add") == 0) {
                if (argc < 2) {
                        Debug (LDAP_DEBUG_ANY,
                                "%s: line %d: missing proc in \"add <proc>\" line\n",
                                fname, lineno, 0);
-                       return( 1 );
+                       return (1);
                }
                ti->ti_add = (char *) strdup (argv[1]);
 
-       /* proc for delete */
+               /* proc for delete */
        } else if (strcasecmp (argv[0], "delete") == 0) {
                if (argc < 2) {
                        Debug (LDAP_DEBUG_ANY,
                                "%s: line %d: missing proc in \"delete <proc>\" line\n",
                                fname, lineno, 0);
-                       return( 1 );
+                       return (1);
                }
                ti->ti_delete = (char *) strdup (argv[1]);
 
-       /* proc for abandon */
+               /* proc for abandon */
        } else if (strcasecmp (argv[0], "abandon") == 0) {
                if (argc < 2) {
                        Debug (LDAP_DEBUG_ANY,
                                "%s: line %d: missing proc in \"abandon <proc>\" line\n",
                                fname, lineno, 0);
-                       return( 1 );
+                       return (1);
                }
                ti->ti_search = (char *) strdup (argv[1]);
 
        } else {
                Debug (LDAP_DEBUG_ANY,
                        "Unknown tcl backend config: %s\n", argv[0], 0, 0);
-               return( 1 );
+               return (1);
        }
 
        return 0;
 }
-
-void readtclscript (char *script, Tcl_Interp * my_tcl)
-{
-       int code;
-       FILE *f;
-       f = fopen (script, "r");
-       if (f == NULL) {
-               Debug (LDAP_DEBUG_ANY, "Could not open scriptpath %s\n", script,
-                       0, 0);
-               return( 1 );
-       }
-       fclose (f);
-       code = Tcl_EvalFile (my_tcl, script);
-       if (code != TCL_OK) {
-               Debug (LDAP_DEBUG_ANY, "%s: %s\n", script,
-                       Tcl_GetVar (my_tcl, "errorInfo", TCL_GLOBAL_ONLY), 0);
-               Debug (LDAP_DEBUG_ANY, "%s: error at line\n", script,
-                       my_tcl->errorLine, 0);
-               return( 1 );
-       }
-}
index 5b9a60ace4e8e5b3c7971df491f1018c8353870a..167e28ab80eace9ba589a6be12dcd13aeed51938 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * delete.c - tcl delete routines
+/* delete.c - tcl delete routines
+ *
+ * $Id: tcl_delete.c,v 1.2 1999/02/17 01:05:28 bcollins Exp $
  *
  * Copyright 1999, Ben Collins <bcollins@debian.org>, All rights reserved.
  *
@@ -7,10 +8,6 @@
  * 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.
- *
- * $Id$
- *
- * $Log$
  */
 
 #include "portable.h"
@@ -37,31 +34,33 @@ tcl_back_delete (
                return (-1);
        }
 
-       for ( i = 0; be->be_suffix[i] != NULL; i++ )
-               ;
-       suf_tcl = Tcl_Merge(i, be->be_suffix);
+       for (i = 0; be->be_suffix[i] != NULL; i++);
+       suf_tcl = Tcl_Merge (i, be->be_suffix);
 
-       command = (char *) ch_malloc (strlen(ti->ti_delete) + strlen(suf_tcl)
-               + strlen(dn) + 64);
-       sprintf(command, "%s DELETE {%ld} {%s} {%s}",
+       command = (char *) ch_malloc (strlen (ti->ti_delete) + strlen (suf_tcl)
+               + strlen (dn) + 64);
+       sprintf (command, "%s DELETE {%ld} {%s} {%s}",
                ti->ti_delete, op->o_msgid, suf_tcl, dn);
-       Tcl_Free(suf_tcl);
+       Tcl_Free (suf_tcl);
 
-       ldap_pvt_thread_mutex_lock( &tcl_interpreter_mutex );
-       code = Tcl_GlobalEval(ti->ti_ii->interp, command);
-       results = (char *) strdup(ti->ti_ii->interp->result);
-       ldap_pvt_thread_mutex_unlock( &tcl_interpreter_mutex );
-       free(command);
+       ldap_pvt_thread_mutex_lock (&tcl_interpreter_mutex);
+       code = Tcl_GlobalEval (ti->ti_ii->interp, command);
+       results = (char *) strdup (ti->ti_ii->interp->result);
+       ldap_pvt_thread_mutex_unlock (&tcl_interpreter_mutex);
+       free (command);
 
        if (code != TCL_OK) {
                err = LDAP_OPERATIONS_ERROR;
-               Debug(LDAP_DEBUG_ANY, "tcl_delete_error: %s\n", results, 0, 0);
+               Debug (LDAP_DEBUG_ANY, "tcl_delete_error: %s\n", results,
+                       0, 0);
        } else {
-               interp_send_results ( be, conn, op, results, NULL, 0 );
+               interp_send_results (be, conn, op, results, NULL, 0);
        }
 
        if (err != LDAP_SUCCESS)
-               send_ldap_result (conn, op, err, NULL, "internal backend error");
+               send_ldap_result (conn, op, err, NULL,
+                       "internal backend error");
 
-       return (0);
+       free(results);
+       return (err);
 }
index 402676dc09bb6c1f326a1b97e0f8685041fd4126..d28b23c796595b218e6beed287cdcbca0d2ca129 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * tcl_init.c - tcl backend initialization
+/* tcl_init.c - tcl backend initialization
+ *
+ * $Id: tcl_init.c,v 1.3 1999/02/17 01:02:11 bcollins Exp $
  *
  * Copyright 1999, Ben Collins <bcollins@debian.org>, All rights reserved.
  *
@@ -7,13 +8,6 @@
  * 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.
- *
- * $Id: tcl_init.c,v 1.2 1999/02/17 00:55:54 bcollins Exp $
- *
- * $Log: tcl_init.c,v $
- * Revision 1.2  1999/02/17 00:55:54  bcollins
- * Implemented the open, init functions correctly
- *
  */
 
 #include "portable.h"
 ldap_pvt_thread_mutex_t tcl_interpreter_mutex;
 
 int
-tcl_back_initialize(
-       BackendInfo     *bi
+tcl_back_initialize (
+       BackendInfo bi
 )
 {
        /* Initialize the global interpreter array */
        global_i = (struct i_info *) ch_malloc (sizeof (struct i_info));
+
        global_i->count = 0;
        global_i->name = "default";
        global_i->next = NULL;
@@ -41,7 +36,7 @@ tcl_back_initialize(
        Tcl_Init (global_i->interp);
 
        /* Initialize the global interpreter lock */
-       ldap_pvt_thread_mutex_init( &tcl_interpreter_mutex );
+       ldap_pvt_thread_mutex_init (&tcl_interpreter_mutex);
 
        bi->bi_open = tcl_back_open;
        bi->bi_config = NULL;
@@ -70,12 +65,13 @@ tcl_back_initialize(
 }
 
 int
-tcl_back_open(
-       BackendInfo     *bi
+tcl_back_open (
+       BackendInfo bi
 )
 {
        /* Initialize the global interpreter array */
        global_i = (struct i_info *) ch_malloc (sizeof (struct i_info));
+
        global_i->count = 0;
        global_i->name = "default";
        global_i->next = NULL;
@@ -83,19 +79,19 @@ tcl_back_open(
        Tcl_Init (global_i->interp);
 
        /* Initialize the global interpreter lock */
-       ldap_pvt_thread_mutex_init( &tcl_interpreter_mutex );
+       ldap_pvt_thread_mutex_init (&tcl_interpreter_mutex);
 
-       return( 0 );
+       return (0);
 }
 
 int
-tcl_back_db_init(
-       Backend *be
+tcl_back_db_init (
+       Backend * be
 )
 {
-       struct tclinfo  *ti;
+       struct tclinfo *ti;
 
-       ti = (struct tclinfo *) ch_calloc( 1, sizeof(struct tclinfo) );
+       ti = (struct tclinfo *) ch_calloc (1, sizeof (struct tclinfo));
 
        /*
         * For some reason this causes problems
@@ -116,15 +112,16 @@ tcl_back_db_init(
        return ti == NULL;
 }
 
-int tcl_back_db_open (
-        BackendDB * bd
+int
+tcl_back_db_open (
+       BackendDB * bd
 )
 {
        struct tclinfo *ti = (struct tclinfo *) bd->be_private;
 
-       if (ti->ti_ii->interp == NULL) { /* we need to make a new one */
+       if (ti->ti_ii->interp == NULL) {        /* we need to make a new one */
                ti->ti_ii->interp = Tcl_CreateInterp ();
-               Tcl_Init (ti->interp);
+               Tcl_Init (ti->ti_ii->interp);
        }
 
        /* raise that count for the interpreter */
@@ -134,7 +131,7 @@ int tcl_back_db_open (
        readtclscript (ti->script_path, ti->ti_ii->interp);
 
        /* Intall the debug command */
-       Tcl_CreateCommandti->ti_ii->interp, "ldap:debug", &tcl_ldap_debug,
+       Tcl_CreateCommand (ti->ti_ii->interp, "ldap:debug", &tcl_ldap_debug,
                NULL, NULL);
 
        return 0;
index d9d380157e56ee5b568d6c9f22234b4e09c3e68d..2bed7731e36e0fff4458c7f866b982fd7bc0c65f 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * modify.c - tcl modify routines
+/* modify.c - tcl modify routines
+ *
+ * $Id: tcl_modify.c,v 1.2 1999/02/17 01:05:28 bcollins Exp $
  *
  * Copyright 1999, Ben Collins <bcollins@debian.org>, All rights reserved.
  *
@@ -7,10 +8,6 @@
  * 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.
- *
- * $Id$
- *
- * $Log$
  */
 
 #include "portable.h"
@@ -20,7 +17,8 @@
 #include "slap.h"
 #include "tcl_back.h"
 
-int tcl_back_modify (
+int
+tcl_back_modify (
        Backend * be,
        Connection * conn,
        Operation * op,
@@ -38,20 +36,19 @@ int tcl_back_modify (
                return (-1);
        }
 
-       for ( i = 0; be->be_suffix[i] != NULL; i++ )
-               ;
-       suf_tcl = Tcl_Merge(i, be->be_suffix);
+       for (i = 0; be->be_suffix[i] != NULL; i++);
+       suf_tcl = Tcl_Merge (i, be->be_suffix);
 
-       tcl_mods = (char *) ch_malloc( BUFSIZ );
+       tcl_mods = (char *) ch_malloc (BUFSIZ);
        tcl_mods[0] = '\0';
        bsize = BUFSIZ;
        bp = tcl_mods;
 
-       for ( ; modlist != NULL; modlist = modlist->ml_next ) {
+       for (; modlist != NULL; modlist = modlist->ml_next) {
                LDAPMod *mods = &modlist->ml_mod;
                char *op = NULL;
 
-               switch ( mods->mod_op & ~LDAP_MOD_BVALUES ) {
+               switch (mods->mod_op & ~LDAP_MOD_BVALUES) {
                case LDAP_MOD_ADD:
                        op = "add";
                        break;
@@ -63,54 +60,58 @@ int tcl_back_modify (
                        break;
                }
 
-               len = strlen( mods->mod_type ) + strlen ( op ) + 7;
-               while ( bp + len - tcl_mods > bsize ) {
+               len = strlen (mods->mod_type) + strlen (op) + 7;
+               while (bp + len - tcl_mods > bsize) {
                        bsize += BUFSIZ;
-                       tcl_mods = (char *) ch_realloc( tcl_mods, bsize );
+                       tcl_mods = (char *) ch_realloc (tcl_mods, bsize);
                }
-               sprintf(bp, "{ {%s: %s} ", op, mods->mod_type);
+               sprintf (bp, "{ {%s: %s} ", op, mods->mod_type);
                bp += len;
-               fori = 0;
-                       mods->mod_bvalues != NULL && mods->mod_bvalues[i] != NULL;
-                       i++ )
-               {
-                       len = strlen( mods->mod_type ) + strlen (
-                               mods->mod_bvalues[i]->bv_val ) + 5 +
-                               (mods->mod_bvalues[i+1] == NULL ? 2 : 0);
-                       while ( bp + len - tcl_mods > bsize ) {
+               for (i = 0;
+                       mods->mod_bvalues != NULL && mods->mod_bvalues[i]
+                       != NULL;
+                       i++) {
+                       len = strlen (mods->mod_type) + strlen (
+                               mods->mod_bvalues[i]->bv_val) + 5 +
+                               (mods->mod_bvalues[i + 1] == NULL ? 2 : 0);
+                       while (bp + len - tcl_mods > bsize) {
                                bsize += BUFSIZ;
-                               tcl_mods = (char *) ch_realloc( tcl_mods, bsize );
+                               tcl_mods = (char *) ch_realloc (tcl_mods, bsize);
                        }
-                       sprintf(bp, "{%s: %s} %s", mods->mod_type,
-                       mods->mod_bvalues[i]->bv_val, mods->mod_bvalues[i+1] ==
-                       NULL ? "} " : "");
+                       sprintf (bp, "{%s: %s} %s", mods->mod_type,
+                               mods->mod_bvalues[i]->bv_val,
+                               mods->mod_bvalues[i + 1] ==
+                               NULL ? "} " : "");
                        bp += len;
                }
        }
 
-       command = (char *) ch_malloc (strlen(ti->ti_modify) + strlen(suf_tcl)
-               + strlen(dn) + strlen(tcl_mods) + 64);
+       command = (char *) ch_malloc (strlen (ti->ti_modify) + strlen (suf_tcl)
+               + strlen (dn) + strlen (tcl_mods) + 64);
        /* This space is simply for aesthetics--\  */
-       sprintf(command, "%s MODIFY {%ld} {%s} {%s} { %s}",
+       sprintf (command, "%s MODIFY {%ld} {%s} {%s} { %s}",
                ti->ti_modify, op->o_msgid, suf_tcl, dn, tcl_mods);
-       Tcl_Free(suf_tcl);
-       free(tcl_mods);
+       Tcl_Free (suf_tcl);
+       free (tcl_mods);
 
-       ldap_pvt_thread_mutex_lock( &tcl_interpreter_mutex );
-       code = Tcl_GlobalEval(ti->ti_ii->interp, command);
-       results = (char *) strdup(ti->ti_ii->interp->result);
-       ldap_pvt_thread_mutex_unlock( &tcl_interpreter_mutex );
-       free(command);
+       ldap_pvt_thread_mutex_lock (&tcl_interpreter_mutex);
+       code = Tcl_GlobalEval (ti->ti_ii->interp, command);
+       results = (char *) strdup (ti->ti_ii->interp->result);
+       ldap_pvt_thread_mutex_unlock (&tcl_interpreter_mutex);
+       free (command);
 
        if (code != TCL_OK) {
                err = LDAP_OPERATIONS_ERROR;
-               Debug(LDAP_DEBUG_ANY, "tcl_modify_error: %s\n", results, 0, 0);
+               Debug (LDAP_DEBUG_ANY, "tcl_modify_error: %s\n", results,
+                       0, 0);
        } else {
-               interp_send_results ( be, conn, op, results, NULL, 0 );
+               interp_send_results (be, conn, op, results, NULL, 0);
        }
 
        if (err != LDAP_SUCCESS)
-               send_ldap_result (conn, op, err, NULL, "internal backend error");
+               send_ldap_result (conn, op, err, NULL,
+                       "internal backend error");
 
-       return (0);
+       free(results);
+       return (err);
 }
index 907cf369a1495b1ab67d5bf3c18178f1179fbcb8..ef979fb33971c6ccf7e621489929f7ec943584a6 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * modrdn.c - tcl modify rdn routines
+/* modrdn.c - tcl modify rdn routines
+ *
+ * $Id: tcl_modrdn.c,v 1.2 1999/02/17 01:05:28 bcollins Exp $
  *
  * Copyright 1999, Ben Collins <bcollins@debian.org>, All rights reserved.
  *
@@ -7,10 +8,6 @@
  * 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.
- *
- * $Id$
- *
- * $Log$
  */
 
 #include "portable.h"
@@ -20,7 +17,8 @@
 #include "slap.h"
 #include "tcl_back.h"
 
-int tcl_back_modrdn (
+int
+tcl_back_modrdn (
        Backend * be,
        Connection * conn,
        Operation * op,
@@ -39,31 +37,34 @@ int tcl_back_modrdn (
                return (-1);
        }
 
-       for ( i = 0; be->be_suffix[i] != NULL; i++ )
-               ;
-       suf_tcl = Tcl_Merge(i, be->be_suffix);
+       for (i = 0; be->be_suffix[i] != NULL; i++);
+       suf_tcl = Tcl_Merge (i, be->be_suffix);
 
-       command = (char *) ch_malloc (strlen(ti->ti_modrdn) + strlen(suf_tcl)
-               + strlen(dn) + strlen(newrdn) + 64);
-       sprintf(command, "%s MODRDN {%ld} {%s} {%s} {%s} %d",
-               ti->ti_add, op->o_msgid, suf_tcl, dn, newrdn, deleteoldrdn ? 1 : 0);
-       Tcl_Free(suf_tcl);
+       command = (char *) ch_malloc (strlen (ti->ti_modrdn) + strlen (suf_tcl)
+               + strlen (dn) + strlen (newrdn) + 64);
+       sprintf (command, "%s MODRDN {%ld} {%s} {%s} {%s} %d",
+               ti->ti_add, op->o_msgid, suf_tcl, dn, newrdn, deleteoldrdn
+               ? 1 : 0);
+       Tcl_Free (suf_tcl);
 
-       ldap_pvt_thread_mutex_lock( &tcl_interpreter_mutex );
-       code = Tcl_GlobalEval(ti->ti_ii->interp, command);
-       results = (char *) strdup(ti->ti_ii->interp->result);
-       ldap_pvt_thread_mutex_unlock( &tcl_interpreter_mutex );
-       free(command);
+       ldap_pvt_thread_mutex_lock (&tcl_interpreter_mutex);
+       code = Tcl_GlobalEval (ti->ti_ii->interp, command);
+       results = (char *) strdup (ti->ti_ii->interp->result);
+       ldap_pvt_thread_mutex_unlock (&tcl_interpreter_mutex);
+       free (command);
 
        if (code != TCL_OK) {
                err = LDAP_OPERATIONS_ERROR;
-               Debug(LDAP_DEBUG_ANY, "tcl_modrdn_error: %s\n", results, 0, 0);
+               Debug (LDAP_DEBUG_ANY, "tcl_modrdn_error: %s\n", results,
+                       0, 0);
        } else {
-               interp_send_results ( be, conn, op, results, NULL, 0 );
+               interp_send_results (be, conn, op, results, NULL, 0);
        }
 
        if (err != LDAP_SUCCESS)
-               send_ldap_result (conn, op, err, NULL, "internal backend error");
+               send_ldap_result (conn, op, err, NULL,
+                       "internal backend error");
 
-       return (0);
+       free(results);
+       return (err);
 }
index 36796345f2823da9499db3811eb966b2fc8bde97..054d855a3d4b6cfb82057c835403ca2c07f6b592 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * search.c - tcl search routines
+/* search.c - tcl search routines
+ *
+ * $Id: tcl_search.c,v 1.2 1999/02/17 01:05:28 bcollins Exp $
  *
  * Copyright 1999, Ben Collins <bcollins@debian.org>, All rights reserved.
  *
@@ -7,10 +8,6 @@
  * 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.
- *
- * $Id$
- *
- * $Log$
  */
 
 #include "portable.h"
@@ -20,7 +17,8 @@
 #include "slap.h"
 #include "tcl_back.h"
 
-int tcl_back_search (
+int
+tcl_back_search (
        Backend * be,
        Connection * conn,
        Operation * op,
@@ -46,40 +44,44 @@ int tcl_back_search (
                return (-1);
        }
 
-       for ( i = 0; attrs != NULL && attrs[i] != NULL; i++ )
-               ;
+       for (i = 0; attrs != NULL && attrs[i] != NULL; i++);
        if (i > 0)
-               attrs_tcl = Tcl_Merge(i, attrs);
+               attrs_tcl = Tcl_Merge (i, attrs);
 
-       for ( i = 0; be->be_suffix[i] != NULL; i++ )
-               ;
-       suf_tcl = Tcl_Merge(i, be->be_suffix);
+       for (i = 0; be->be_suffix[i] != NULL; i++);
+       suf_tcl = Tcl_Merge (i, be->be_suffix);
 
-       command = (char *) ch_malloc (strlen(ti->ti_search) + strlen(suf_tcl)
-               + strlen(base) + 40 + strlen(filterstr) + (attrs_tcl == NULL ? 5
-               : strlen(attrs_tcl)) + 72);
-       sprintf(command, "%s SEARCH {%ld} {%s} {%s} {%d} {%d} {%d} {%d} {%s} {%d} {%s}",
+       command = (char *) ch_malloc (strlen (ti->ti_search) + strlen (suf_tcl)
+               + strlen (base) + 40 + strlen (filterstr) + (attrs_tcl ==
+                       NULL ? 5
+                       : strlen (attrs_tcl)) + 72);
+       sprintf (command,
+               "%s SEARCH {%ld} {%s} {%s} {%d} {%d} {%d} {%d} {%s} {%d} {%s}",
                ti->ti_search, op->o_msgid, suf_tcl, base, scope, deref,
-               sizelimit, timelimit, filterstr, attrsonly ? 1 : 0, attrs_tcl == 
+               sizelimit, timelimit, filterstr, attrsonly ? 1 : 0,
+               attrs_tcl ==
                NULL ? "{all}" : attrs_tcl);
-       Tcl_Free( attrs_tcl );
-       Tcl_Free( suf_tcl );
+       Tcl_Free (attrs_tcl);
+       Tcl_Free (suf_tcl);
 
-       ldap_pvt_thread_mutex_lock( &tcl_interpreter_mutex );
-       code = Tcl_GlobalEval(ti->ti_ii->interp, command);
+       ldap_pvt_thread_mutex_lock (&tcl_interpreter_mutex);
+       code = Tcl_GlobalEval (ti->ti_ii->interp, command);
        results = (char *) strdup(ti->ti_ii->interp->result);
-       ldap_pvt_thread_mutex_unlock( &tcl_interpreter_mutex );
-       free(command);
+       ldap_pvt_thread_mutex_unlock (&tcl_interpreter_mutex);
+       free (command);
 
        if (code != TCL_OK) {
                err = LDAP_OPERATIONS_ERROR;
-               Debug(LDAP_DEBUG_ANY, "tcl_search_error: %s\n", results, 0, 0);
+               Debug (LDAP_DEBUG_ANY, "tcl_search_error: %s\n", results,
+                       0, 0);
        } else {
-               interp_send_results ( be, conn, op, results, NULL, 0 );
+               interp_send_results (be, conn, op, results, NULL, 0);
        }
 
        if (err != LDAP_SUCCESS)
-               send_ldap_result (conn, op, err, NULL, "internal backend error");
-       return (0);
+               send_ldap_result (conn, op, err, NULL,
+                       "internal backend error");
 
+       free(results);
+       return (err);
 }
index ac67581571270f15c3faed4b90e46912426da1a1..dbd6a7d668312b9c61ebcc8edeb1d912ca1e18bf 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * unbind.c - tcl unbind routines
+/* unbind.c - tcl unbind routines
+ *
+ * $Id: tcl_unbind.c,v 1.2 1999/02/17 01:05:28 bcollins Exp $
  *
  * Copyright 1999, Ben Collins <bcollins@debian.org>, All rights reserved.
  *
@@ -7,10 +8,6 @@
  * 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.
- *
- * $Id$
- *
- * $Log$
  */
 
 #include "portable.h"
@@ -20,7 +17,8 @@
 #include "slap.h"
 #include "tcl_back.h"
 
-int tcl_back_unbind (
+int
+tcl_back_unbind (
        Backend * be,
        Connection * conn,
        Operation * op
@@ -33,27 +31,30 @@ int tcl_back_unbind (
        if (ti->ti_unbind == NULL) {
                send_ldap_result (conn, op, LDAP_UNWILLING_TO_PERFORM, NULL,
                        "unbind not implemented");
-               return;
+               return(-1);
        }
 
-       for ( i = 0; be->be_suffix[i] != NULL; i++ )
-               ;
-       suf_tcl = Tcl_Merge(i, be->be_suffix);
+       for (i = 0; be->be_suffix[i] != NULL; i++);
+       suf_tcl = Tcl_Merge (i, be->be_suffix);
 
-       command = (char *) ch_malloc (strlen(ti->ti_unbind) + strlen(suf_tcl)
-               + strlen(conn->c_dn ? conn->c_dn : "") + 64);
-       sprintf(command, "%s UNBIND {%ld} {%s} {%s}",
-               ti->ti_unbind, op->o_msgid, suf_tcl, conn->c_dn ? conn->c_dn : "");
-       Tcl_Free(suf_tcl);
+       command = (char *) ch_malloc (strlen (ti->ti_unbind) + strlen (suf_tcl)
+               + strlen (conn->c_dn ? conn->c_dn : "") + 64);
+       sprintf (command, "%s UNBIND {%ld} {%s} {%s}",
+               ti->ti_unbind, op->o_msgid, suf_tcl, conn->c_dn ?
+               conn->c_dn : "");
+       Tcl_Free (suf_tcl);
 
-       ldap_pvt_thread_mutex_lock( &tcl_interpreter_mutex );
-       code = Tcl_GlobalEval(ti->ti_ii->interp, command);
-       results = (char *) strdup(ti->ti_ii->interp->result);
-       ldap_pvt_thread_mutex_unlock( &tcl_interpreter_mutex );
-       free(command);
+       ldap_pvt_thread_mutex_lock (&tcl_interpreter_mutex);
+       code = Tcl_GlobalEval (ti->ti_ii->interp, command);
+       results = (char *) strdup (ti->ti_ii->interp->result);
+       ldap_pvt_thread_mutex_unlock (&tcl_interpreter_mutex);
+       free (command);
 
        if (code != TCL_OK) {
-               Debug(LDAP_DEBUG_ANY, "tcl_unbind_error: %s\n", results, 0, 0);
+               Debug (LDAP_DEBUG_ANY, "tcl_unbind_error: %s\n", results,
+                       0, 0);
        }
-       return 0;
+
+       free(results);
+       return (err);
 }
index ad2dc9fda4042e6c715d4ed286f680f15a5d4e76..342e75c5f8bb00c63485cc2e35365c5437e1dfdc 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * result.c - tcl backend utility functions
+/* result.c - tcl backend utility functions
+ *
+ * $Id: tcl_util.c,v 1.2 1999/02/17 01:05:28 bcollins Exp $
  *
  * Copyright 1999, Ben Collins <bcollins@debian.org>, All rights reserved.
  *
@@ -7,10 +8,6 @@
  * 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.
- *
- * $Id$
- *
- * $Log$
  */
 
 #include "portable.h"
 #include "tcl_back.h"
 
 int
-interp_send_results(
-    Backend    *be,
-    Connection *conn,
-    Operation  *op,
-    char       *result,
-    char       **attrs,
-    int                attrsonly
+interp_send_results (
+       Backend * be,
+       Connection * conn,
+       Operation * op,
+       char *result,
+       char **attrs,
+       int attrsonly
 )
 {
-       int     bsize, len, argcPtr, i, err, code;
-       char    *buf, *bp, **argvPtr, *line, *matched, *info;
-       Entry   *e;
+       int bsize, len, argcPtr, i, err, code;
+       char *buf, *bp, **argvPtr, *line, *matched, *info;
+       Entry *e;
        struct tclinfo *ti = (struct tclinfo *) be->be_private;
-       /* read in the result and send it along */
-       buf = (char *) ch_malloc( BUFSIZ );
+
+       /*
+        * read in the result and send it along 
+        */
+       buf = (char *) ch_malloc (BUFSIZ);
        buf[0] = '\0';
        bsize = BUFSIZ;
        bp = buf;
-       code = Tcl_SplitList(ti->ti_ii->interp, result, &argcPtr, &argvPtr);
+       code = Tcl_SplitList (ti->ti_ii->interp, result, &argcPtr, &argvPtr);
        if (code != TCL_OK) {
                argcPtr = 0;
                send_ldap_result (conn, op, LDAP_UNWILLING_TO_PERFORM, NULL,
                        "internal backend error");
                return -1;
        }
-       for ( i = 0 ; i < argcPtr ; i++ ) {
+       for (i = 0; i < argcPtr; i++) {
                line = argvPtr[i];
-               Debug( LDAP_DEBUG_ANY, "tcl search reading line (%s)\n",
-                   line, 0, 0 );
-               /* ignore lines beginning with DEBUG: */
-               if ( strncasecmp( line, "DEBUG:", 6 ) == 0 ) {
+
+               /*
+                * ignore lines beginning with DEBUG: 
+                */
+               if (strncasecmp (line, "DEBUG:", 6) == 0) {
                        continue;
                }
-               len = strlen( line ) + 1;
-               while ( bp + len - buf > bsize ) {
+               len = strlen (line) + 1;
+               while (bp + len - buf > bsize) {
                        bsize += BUFSIZ;
-                       buf = (char *) ch_realloc( buf, bsize );
+                       buf = (char *) ch_realloc (buf, bsize);
                }
-               sprintf( bp, "%s\n", line );
+               sprintf (bp, "%s\n", line);
                bp += len;
 
-               /* line marked the end of an entry or result */
-               if ( line[0] == '\0' ) {
-                       if ( strncasecmp( buf, "RESULT", 6 ) == 0 ) {
+               /*
+                * line marked the end of an entry or result 
+                */
+               if (line[0] == '\0') {
+                       if (strncasecmp (buf, "RESULT", 6) == 0) {
                                break;
                        }
-                       if ( (e = str2entry( buf )) == NULL ) {
-                               Debug( LDAP_DEBUG_ANY, "str2entry(%s) failed\n",
-                                   buf, 0, 0 );
+                       if ((e = str2entry (buf)) == NULL) {
+                               Debug (LDAP_DEBUG_ANY,
+                                       "str2entry(%s) failed\n",
+                                       buf, 0, 0);
                        } else {
-                               send_search_entrybe, conn, op, e, attrs,
-                                   attrsonly );
-                               entry_free( e );
+                               send_search_entry (be, conn, op, e, attrs,
+                                       attrsonly);
+                               entry_free (e);
                        }
 
                        bp = buf;
                }
        }
 
-       (void) str2result( buf, &err, &matched, &info );
+       (void) str2result (buf, &err, &matched, &info);
 
-       /* otherwise, front end will send this result */
-       if ( err != 0 || op->o_tag != LDAP_REQ_BIND ) {
-               send_ldap_result( conn, op, err, matched, info );
+       /*
+        * otherwise, front end will send this result 
+        */
+       if (err != 0 || op->o_tag != LDAP_REQ_BIND) {
+               send_ldap_result (conn, op, err, matched, info);
        }
 
-       free( buf );
-       Tcl_Free( result );
-       Tcl_Free( (char *) argvPtr );
-       return( err );
+       free (buf);
+       Tcl_Free ((char *) argvPtr);
+       return (err);
 }
 
-char *tcl_clean_entry (Entry *e)
+char *
+tcl_clean_entry (
+       Entry * e
+)
 {
        char *entrystr, *mark1, *mark2, *buf, *bp, *dup;
        int len, bsize;
 
-       pthread_mutex_lock( &entry2str_mutex );
-       entrystr = entry2str( e, &len, 0 );
-       pthread_mutex_unlock( &entry2str_mutex );
+       pthread_mutex_lock (&entry2str_mutex);
+       entrystr = entry2str (e, &len, 0);
+       pthread_mutex_unlock (&entry2str_mutex);
 
-       buf = (char *) ch_malloc( BUFSIZ );
+       buf = (char *) ch_malloc (BUFSIZ);
        buf[0] = '\0';
        bsize = BUFSIZ;
        bp = buf;
@@ -115,42 +123,68 @@ char *tcl_clean_entry (Entry *e)
        mark1 = entrystr;
        do {
                if (mark1[0] == '\n') {
-                       mark1++;
+                       mark1++;
                }
-               dup = (char *) strdup(mark1);
-                       if (dup[0] != '\0') {
-                       if ((mark2 = (char *) strchr (dup, '\n')) != NULL) {
+               dup = (char *) strdup (mark1);
+               if (dup[0] != '\0') {
+                       if ((mark2 = (char *) strchr (dup, '\n')) != NULL) {
                                mark2[0] = '\0';
-                       }
-                       len = strlen( dup ) + 3;
-                       while ( bp + len - buf > bsize ) {
+                       }
+                       len = strlen (dup) + 3;
+                       while (bp + len - buf > bsize) {
                                bsize += BUFSIZ;
-                               buf = (char *) ch_realloc( buf, bsize );
-                       }
-                       if (mark1[0] == '\0') {
-                               sprintf(bp, "{} ");
-                       } else {
-                               sprintf(bp, "{%s} ", dup);
-                       }
-                       bp += len;
-                       if (mark2 != NULL) {
+                               buf = (char *) ch_realloc (buf, bsize);
+                       }
+                       if (mark1[0] == '\0') {
+                               sprintf (bp, "{} ");
+                       } else {
+                               sprintf (bp, "{%s} ", dup);
+                       }
+                       bp += len;
+                       if (mark2 != NULL) {
                                mark2[0] = '\n';
-                       }
+                       }
                }
-               free(dup);
+               free (dup);
        } while ((mark1 = (char *) strchr (mark1, '\n')) != NULL);
        return buf;
 }
 
-int tcl_ldap_debug (
-    ClientData clientData,
-    Tcl_Interp *interp,
-    int argc,
-    char *argv[]
+int
+tcl_ldap_debug (
+       ClientData clientData,
+       Tcl_Interp * interp,
+       int argc,
+       char *argv[]
 )
 {
        if (argv[1] != NULL) {
-               Debug(LDAP_DEBUG_ANY, "tcl_debug: %s\n", argv[1], 0, 0);
+               Debug (LDAP_DEBUG_ANY, "tcl_debug: %s\n", argv[1], 0, 0);
        }
        return TCL_OK;
 }
+
+void
+readtclscript (
+       char *script,
+       Tcl_Interp * my_tcl)
+{
+       int code;
+       FILE *f;
+
+       f = fopen (script, "r");
+       if (f == NULL) {
+               Debug (LDAP_DEBUG_ANY, "Could not open scriptpath %s\n", script,
+                       0, 0);
+               return;
+       }
+       fclose (f);
+       code = Tcl_EvalFile (my_tcl, script);
+       if (code != TCL_OK) {
+               Debug (LDAP_DEBUG_ANY, "%s: %s\n", script,
+                       Tcl_GetVar (my_tcl, "errorInfo", TCL_GLOBAL_ONLY), 0);
+               Debug (LDAP_DEBUG_ANY, "%s: error at line\n", script,
+                       my_tcl->errorLine, 0);
+               return;
+       }
+}