]> git.saurik.com Git - wxWidgets.git/blobdiff - src/iodbc/dlproc.c
don't use strlen() to verify the length of the string as it can contain embedded...
[wxWidgets.git] / src / iodbc / dlproc.c
index 24f1bfda9cee849f2de647d89792325ad00876d2..df67ba8ed0f818da9a1176422456cf616049443a 100644 (file)
-/** Load driver and resolve driver's function entry point
-
-    Copyright (C) 1995 by Ke Jin <kejin@empress.com>
+/*
+ *  dlproc.c
+ *
+ *  $Id$
+ *
+ *  Load driver and resolve driver's function entry point
+ *
+ *  The iODBC driver manager.
+ *  
+ *  Copyright (C) 1995 by Ke Jin <kejin@empress.com> 
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public
+ *  License along with this library; if not, write to the Free
+ *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include       "config.h"
+
+#include       "isql.h"
+#include       "isqlext.h"
+
+#include       "dlproc.h"
+
+#include       "herr.h"
+#include       "henv.h"
+#include       "hdbc.h"
+
+#include       "itrace.h"
+
+#include       "henv.ci"
+
+HPROC 
+_iodbcdm_getproc (HDBC hdbc, int idx)
+{
+  DBC_t FAR *pdbc = (DBC_t FAR *) hdbc;
+  ENV_t FAR *penv;
+  HPROC FAR *phproc;
 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
+  if (idx <= 0 || idx > SQL_EXT_API_LAST)
+    /* first entry naver used */
+    {
+      return SQL_NULL_HPROC;
+    }
 
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-**/
+  penv = (ENV_t FAR *) (pdbc->henv);
 
+  if (penv == NULL)
+    {
+      return SQL_NULL_HPROC;
+    }
 
-#include       <../iodbc/iodbc.h>
+  phproc = penv->dllproc_tab + idx;
 
-#include       <../iodbc/isql.h>
-#include       <../iodbc/isqlext.h>
+  if (*phproc == SQL_NULL_HPROC)
+    {
+      int i, en_idx;
 
-#include        <../iodbc/dlproc.h>
+      for (i = 0;; i++)
+       {
+         en_idx = odbcapi_symtab[i].en_idx;
 
-#include       <../iodbc/herr.h>
-#include       <../iodbc/henv.h>
-#include       <../iodbc/hdbc.h>
+         if (en_idx == en_NullProc)
+           {
+             break;
+           }
 
-#include       <../iodbc/itrace.h>
+         if (en_idx == idx)
+           {
+             *phproc = _iodbcdm_dllproc (penv->hdll,
+                 odbcapi_symtab[i].symbol);
 
-#include       "../iodbc/henv.ci"
+             break;
+           }
+       }
+    }
 
-HPROC   _iodbcdm_getproc( HDBC hdbc, int idx )
-{
-        DBC_t FAR*      pdbc    = (DBC_t FAR*)hdbc;
-        ENV_t FAR*      penv;
-        HDLL            hdll;
- static HPROC FAR*      phproc;
-
-        if( idx <= 0 || idx > SQL_EXT_API_LAST )
-        /* first entry never used */
-        {
-                return SQL_NULL_HPROC;
-        }
-
-        penv = (ENV_t FAR*)(pdbc->henv);
-
-        if( penv == NULL )
-        {
-                return SQL_NULL_HPROC;
-        }
-
-        phproc = penv->dllproc_tab + idx;
-
-        if( *phproc == SQL_NULL_HPROC )
-        {
-                int     i, en_idx;
-
-                for( i=0 ; ; i++ )
-                {
-                        en_idx = odbcapi_symtab[i].en_idx;
-
-                        if( en_idx == en_NullProc )
-                        {
-                                break;
-                        }
-
-                        if( en_idx == idx )
-                        {
-                                *phproc = _iodbcdm_dllproc( penv->hdll,
-                                        odbcapi_symtab[i].symbol );
-
-                                break;
-                        }
-                }
-        }
-
-        return *phproc;
+  return *phproc;
 }
 
-HDLL    _iodbcdm_dllopen( char FAR* path )
+
+HDLL 
+_iodbcdm_dllopen (char FAR * path)
 {
-        return  (HDLL)DLL_OPEN( path );
+  return (HDLL) DLL_OPEN (path);
 }
 
-HPROC   _iodbcdm_dllproc( HDLL hdll, char FAR* sym )
+
+HPROC 
+_iodbcdm_dllproc (HDLL hdll, char FAR * sym)
 {
-        return (HPROC)DLL_PROC( hdll, sym );
+  return (HPROC) DLL_PROC (hdll, sym);
 }
 
-int     _iodbcdm_dllclose( HDLL hdll )
+
+int 
+_iodbcdm_dllclose (HDLL hdll)
 {
-        DLL_CLOSE( hdll );
+  DLL_CLOSE (hdll);
 
-        return 0;
+  return 0;
 }
 
-char*   _iodbcdm_dllerror( )
+
+char *
+_iodbcdm_dllerror ()
 {
-        return DLL_ERROR();
+  return DLL_ERROR ();
 }
+