diff options
-rw-r--r-- | src/gsql_conn.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gsql_conn.c b/src/gsql_conn.c index 4a48de7..3a44c18 100644 --- a/src/gsql_conn.c +++ b/src/gsql_conn.c @@ -19,13 +19,13 @@ # include <config.h> #endif #include <string.h> #include <guile-sql.h> #include <app.h> -int num_iface; +static int num_iface; struct sql_iface sql_iftab[MAX_IFACES]; SCM_GLOBAL_SYMBOL (gsql_error, "gsql-error"); long sql_connect_tag; @@ -202,12 +202,15 @@ SCM_DEFINE (sql_query, "sql-query", 2, 0, 0, } #undef FUNC_NAME int sql_register_iface(struct sql_iface *ifp) { + int n = sql_find_iface(ifp->name); + if (n != -1) + return n; if (num_iface >= MAX_IFACES) scm_misc_error("sql_register_iface", "Too many ifaces registered", SCM_EOL); memcpy(&sql_iftab[num_iface], ifp, sizeof sql_iftab[0]); sql_iftab[num_iface].name = strdup(ifp->name); |