helly           Mon Dec 30 08:07:30 2002 EDT

  Modified files:              
    /php4/ext/dba/libcdb        cdb.c cdb.h cdb_make.c cdb_make.h 
    /php4/ext/dba       dba.c dba_cdb.c dba_db2.c dba_db3.c dba_db4.c 
                        dba_dbm.c dba_flatfile.c dba_gdbm.c dba_ndbm.c 
                        php_dba.h 
    /php4/ext/dba/libflatfile   flatfile.c flatfile.h 
  Log:
  Add info function to handlers and return handler info when dba_handlers is
  called with optional parameter full_info set true.
  
Index: php4/ext/dba/libcdb/cdb.c
diff -u php4/ext/dba/libcdb/cdb.c:1.4 php4/ext/dba/libcdb/cdb.c:1.5
--- php4/ext/dba/libcdb/cdb.c:1.4       Mon Nov 18 20:06:41 2002
+++ php4/ext/dba/libcdb/cdb.c   Mon Dec 30 08:07:29 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: cdb.c,v 1.4 2002/11/19 01:06:41 edink Exp $ */
+/* $Id: cdb.c,v 1.5 2002/12/30 13:07:29 helly Exp $ */
 
 /* incorporated from D.J.Bernstein's cdb-0.75 (http://cr.yp.to/cdb.html)*/
 
@@ -191,5 +191,12 @@
 {
        cdb_findstart(c TSRMLS_CC);
        return cdb_findnext(c, key, len TSRMLS_CC);
+}
+/* }}} */
+
+/* {{{ cdb_version */
+char *cdb_version() 
+{
+       return "0.75, $Revision: 1.5 $";
 }
 /* }}} */
Index: php4/ext/dba/libcdb/cdb.h
diff -u php4/ext/dba/libcdb/cdb.h:1.2 php4/ext/dba/libcdb/cdb.h:1.3
--- php4/ext/dba/libcdb/cdb.h:1.2       Mon Nov 18 20:06:41 2002
+++ php4/ext/dba/libcdb/cdb.h   Mon Dec 30 08:07:29 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: cdb.h,v 1.2 2002/11/19 01:06:41 edink Exp $ */
+/* $Id: cdb.h,v 1.3 2002/12/30 13:07:29 helly Exp $ */
 
 /* incorporated from D.J.Bernstein's cdb-0.75 (http://cr.yp.to/cdb.html)*/
 
@@ -51,5 +51,7 @@
 
 #define cdb_datapos(c) ((c)->dpos)
 #define cdb_datalen(c) ((c)->dlen)
+
+char *cdb_version();
 
 #endif
Index: php4/ext/dba/libcdb/cdb_make.c
diff -u php4/ext/dba/libcdb/cdb_make.c:1.3 php4/ext/dba/libcdb/cdb_make.c:1.4
--- php4/ext/dba/libcdb/cdb_make.c:1.3  Mon Nov 18 20:06:41 2002
+++ php4/ext/dba/libcdb/cdb_make.c      Mon Dec 30 08:07:29 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: cdb_make.c,v 1.3 2002/11/19 01:06:41 edink Exp $ */
+/* $Id: cdb_make.c,v 1.4 2002/12/30 13:07:29 helly Exp $ */
 
 /* incorporated from D.J.Bernstein's cdb-0.75 (http://cr.yp.to/cdb.html)*/
 
@@ -238,3 +238,9 @@
        return php_stream_flush(c->fp);
 }
 /* }}} */
+
+/* {{{ cdb_make_version */
+char *cdb_make_version() 
+{
+       return "0.75, $Revision: 1.4 $";
+}
Index: php4/ext/dba/libcdb/cdb_make.h
diff -u php4/ext/dba/libcdb/cdb_make.h:1.2 php4/ext/dba/libcdb/cdb_make.h:1.3
--- php4/ext/dba/libcdb/cdb_make.h:1.2  Mon Nov 18 20:06:41 2002
+++ php4/ext/dba/libcdb/cdb_make.h      Mon Dec 30 08:07:29 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: cdb_make.h,v 1.2 2002/11/19 01:06:41 edink Exp $ */
+/* $Id: cdb_make.h,v 1.3 2002/12/30 13:07:29 helly Exp $ */
 
 /* incorporated from D.J.Bernstein's cdb-0.75 (http://cr.yp.to/cdb.html)*/
 
@@ -59,5 +59,6 @@
 int cdb_make_addend(struct cdb_make *, unsigned int, unsigned int, uint32 TSRMLS_DC);
 int cdb_make_add(struct cdb_make *, char *, unsigned int, char *, unsigned int 
TSRMLS_DC);
 int cdb_make_finish(struct cdb_make * TSRMLS_DC);
+char *cdb_make_version();
 
 #endif
Index: php4/ext/dba/dba.c
diff -u php4/ext/dba/dba.c:1.77 php4/ext/dba/dba.c:1.78
--- php4/ext/dba/dba.c:1.77     Mon Dec 30 06:43:18 2002
+++ php4/ext/dba/dba.c  Mon Dec 30 08:07:29 2002
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: dba.c,v 1.77 2002/12/30 11:43:18 helly Exp $ */
+/* $Id: dba.c,v 1.78 2002/12/30 13:07:29 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -92,21 +92,6 @@
 ZEND_GET_MODULE(dba)
 #endif
 
-typedef struct dba_handler {
-       char *name; /* handler name */
-       int flags; /* whether and how dba does locking and other flags*/
-       int (*open)(dba_info *, char **error TSRMLS_DC);
-       void (*close)(dba_info * TSRMLS_DC);
-       char* (*fetch)(dba_info *, char *, int, int, int * TSRMLS_DC);
-       int (*update)(dba_info *, char *, int, char *, int, int TSRMLS_DC);
-       int (*exists)(dba_info *, char *, int TSRMLS_DC);
-       int (*delete)(dba_info *, char *, int TSRMLS_DC);
-       char* (*firstkey)(dba_info *, int * TSRMLS_DC);
-       char* (*nextkey)(dba_info *, int * TSRMLS_DC);
-       int (*optimize)(dba_info * TSRMLS_DC);
-       int (*sync)(dba_info * TSRMLS_DC);
-} dba_handler;
-
 /* {{{ macromania */
 
 #define DBA_ID_PARS                                                                   
                 \
@@ -163,7 +148,7 @@
 {\
        #alias, flags, dba_open_##name, dba_close_##name, dba_fetch_##name, 
dba_update_##name, \
        dba_exists_##name, dba_delete_##name, dba_firstkey_##name, dba_nextkey_##name, 
\
-       dba_optimize_##name, dba_sync_##name \
+       dba_optimize_##name, dba_sync_##name, dba_info_##name \
 },
 
 #define DBA_HND(name, flags) DBA_NAMED_HND(name, name, flags)
@@ -207,7 +192,7 @@
 #if DBA_FLATFILE
        DBA_HND(flatfile, DBA_STREAM_OPEN|DBA_LOCK_ALL) /* No lock in lib */
 #endif
-       { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }
+       { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }
 };
 
 #if DBA_FLATFILE
@@ -844,13 +829,14 @@
 }
 /* }}} */
 
-/* {{{ proto array dba_handlers()
+/* {{{ proto array dba_handlers([bool full_info])
    List configured databases */
 PHP_FUNCTION(dba_handlers)
 {
        dba_handler *hptr;
+       zend_bool full_info = 0;
 
-       if (ZEND_NUM_ARGS()!=0) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &full_info) == 
+FAILURE) {
                ZEND_WRONG_PARAM_COUNT();
                RETURN_FALSE;
        }
@@ -860,7 +846,11 @@
                RETURN_FALSE;
        }
        for(hptr = handler; hptr->name; hptr++) {
-               add_next_index_string(return_value, hptr->name, 1);
+               if (full_info) {
+                       add_assoc_string(return_value, hptr->name, hptr->info(hptr, 
+NULL TSRMLS_CC), 0);
+               } else {
+                       add_next_index_string(return_value, hptr->name, 1);
+               }
        }
 }
 /* }}} */
Index: php4/ext/dba/dba_cdb.c
diff -u php4/ext/dba/dba_cdb.c:1.24 php4/ext/dba/dba_cdb.c:1.25
--- php4/ext/dba/dba_cdb.c:1.24 Fri Dec 20 12:47:58 2002
+++ php4/ext/dba/dba_cdb.c      Mon Dec 30 08:07:29 2002
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: dba_cdb.c,v 1.24 2002/12/20 17:47:58 helly Exp $ */
+/* $Id: dba_cdb.c,v 1.25 2002/12/30 13:07:29 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -322,6 +322,19 @@
 {
        /* this is read-only */
        return SUCCESS;
+}
+
+DBA_INFO_FUNC(cdb)
+{
+#if DBA_CDB_BUILTIN
+       if (!strcmp(hnd->name, "cdb")) {
+               return estrdup(cdb_version());
+       } else {
+               return estrdup(cdb_make_version());
+       }
+#else
+       return estrdup("External");
+#endif
 }
 
 #endif
Index: php4/ext/dba/dba_db2.c
diff -u php4/ext/dba/dba_db2.c:1.31 php4/ext/dba/dba_db2.c:1.32
--- php4/ext/dba/dba_db2.c:1.31 Fri Dec 20 12:47:58 2002
+++ php4/ext/dba/dba_db2.c      Mon Dec 30 08:07:29 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: dba_db2.c,v 1.31 2002/12/20 17:47:58 helly Exp $ */
+/* $Id: dba_db2.c,v 1.32 2002/12/30 13:07:29 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -186,6 +186,11 @@
        DB2_DATA;
 
        return dba->dbp->sync(dba->dbp, 0) ? FAILURE : SUCCESS;
+}
+
+DBA_INFO_FUNC(db2)
+{
+       return estrdup(DB_VERSION_STRING);
 }
 
 #endif
Index: php4/ext/dba/dba_db3.c
diff -u php4/ext/dba/dba_db3.c:1.24 php4/ext/dba/dba_db3.c:1.25
--- php4/ext/dba/dba_db3.c:1.24 Sun Dec 29 10:32:38 2002
+++ php4/ext/dba/dba_db3.c      Mon Dec 30 08:07:29 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: dba_db3.c,v 1.24 2002/12/29 15:32:38 helly Exp $ */
+/* $Id: dba_db3.c,v 1.25 2002/12/30 13:07:29 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -216,6 +216,11 @@
        DB3_DATA;
 
        return dba->dbp->sync(dba->dbp, 0) ? FAILURE : SUCCESS;
+}
+
+DBA_INFO_FUNC(db3)
+{
+       return estrdup(DB_VERSION_STRING);
 }
 
 #endif
Index: php4/ext/dba/dba_db4.c
diff -u php4/ext/dba/dba_db4.c:1.3 php4/ext/dba/dba_db4.c:1.4
--- php4/ext/dba/dba_db4.c:1.3  Sun Dec 29 10:32:38 2002
+++ php4/ext/dba/dba_db4.c      Mon Dec 30 08:07:29 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: dba_db4.c,v 1.3 2002/12/29 15:32:38 helly Exp $ */
+/* $Id: dba_db4.c,v 1.4 2002/12/30 13:07:29 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -215,6 +215,11 @@
        DB4_DATA;
 
        return dba->dbp->sync(dba->dbp, 0) ? FAILURE : SUCCESS;
+}
+
+DBA_INFO_FUNC(db4)
+{
+       return estrdup(DB_VERSION_STRING);
 }
 
 #endif
Index: php4/ext/dba/dba_dbm.c
diff -u php4/ext/dba/dba_dbm.c:1.23 php4/ext/dba/dba_dbm.c:1.24
--- php4/ext/dba/dba_dbm.c:1.23 Fri Dec 20 12:47:58 2002
+++ php4/ext/dba/dba_dbm.c      Mon Dec 30 08:07:29 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: dba_dbm.c,v 1.23 2002/12/20 17:47:58 helly Exp $ */
+/* $Id: dba_dbm.c,v 1.24 2002/12/30 13:07:29 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -175,6 +175,11 @@
 DBA_SYNC_FUNC(dbm)
 {
        return SUCCESS;
+}
+
+DBA_INFO_FUNC(dbm)
+{
+       return estrdup("DBM");
 }
 
 #endif
Index: php4/ext/dba/dba_flatfile.c
diff -u php4/ext/dba/dba_flatfile.c:1.9 php4/ext/dba/dba_flatfile.c:1.10
--- php4/ext/dba/dba_flatfile.c:1.9     Fri Dec 20 12:47:58 2002
+++ php4/ext/dba/dba_flatfile.c Mon Dec 30 08:07:29 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: dba_flatfile.c,v 1.9 2002/12/20 17:47:58 helly Exp $ */
+/* $Id: dba_flatfile.c,v 1.10 2002/12/30 13:07:29 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -161,6 +161,11 @@
 {
        /* dummy */
        return SUCCESS;
+}
+
+DBA_INFO_FUNC(flatfile)
+{
+       return estrdup(flatfile_version());
 }
 
 #endif
Index: php4/ext/dba/dba_gdbm.c
diff -u php4/ext/dba/dba_gdbm.c:1.17 php4/ext/dba/dba_gdbm.c:1.18
--- php4/ext/dba/dba_gdbm.c:1.17        Fri Dec 20 12:47:58 2002
+++ php4/ext/dba/dba_gdbm.c     Mon Dec 30 08:07:29 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: dba_gdbm.c,v 1.17 2002/12/20 17:47:58 helly Exp $ */
+/* $Id: dba_gdbm.c,v 1.18 2002/12/30 13:07:29 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -180,6 +180,12 @@
        gdbm_sync(dba->dbf);
        return SUCCESS;
 }
+
+DBA_INFO_FUNC(gdbm)
+{
+       return estrdup(gdbm_version);
+}
+
 #endif
 
 /*
Index: php4/ext/dba/dba_ndbm.c
diff -u php4/ext/dba/dba_ndbm.c:1.14 php4/ext/dba/dba_ndbm.c:1.15
--- php4/ext/dba/dba_ndbm.c:1.14        Wed Nov  6 12:59:03 2002
+++ php4/ext/dba/dba_ndbm.c     Mon Dec 30 08:07:29 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: dba_ndbm.c,v 1.14 2002/11/06 17:59:03 sas Exp $ */
+/* $Id: dba_ndbm.c,v 1.15 2002/12/30 13:07:29 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -153,6 +153,12 @@
 {
        return SUCCESS;
 }
+
+DBA_INFO_FUNC(ndbm)
+{
+       return estrdup("NDBM");
+}
+
 #endif
 
 /*
Index: php4/ext/dba/php_dba.h
diff -u php4/ext/dba/php_dba.h:1.21 php4/ext/dba/php_dba.h:1.22
--- php4/ext/dba/php_dba.h:1.21 Fri Dec 20 12:47:58 2002
+++ php4/ext/dba/php_dba.h      Mon Dec 30 08:07:29 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_dba.h,v 1.21 2002/12/20 17:47:58 helly Exp $ */
+/* $Id: php_dba.h,v 1.22 2002/12/30 13:07:29 helly Exp $ */
 
 #ifndef PHP_DBA_H
 #define PHP_DBA_H
@@ -68,6 +68,23 @@
 extern zend_module_entry dba_module_entry;
 #define dba_module_ptr &dba_module_entry
 
+typedef struct dba_handler {
+       char *name; /* handler name */
+       int flags; /* whether and how dba does locking and other flags*/
+       int (*open)(dba_info *, char **error TSRMLS_DC);
+       void (*close)(dba_info * TSRMLS_DC);
+       char* (*fetch)(dba_info *, char *, int, int, int * TSRMLS_DC);
+       int (*update)(dba_info *, char *, int, char *, int, int TSRMLS_DC);
+       int (*exists)(dba_info *, char *, int TSRMLS_DC);
+       int (*delete)(dba_info *, char *, int TSRMLS_DC);
+       char* (*firstkey)(dba_info *, int * TSRMLS_DC);
+       char* (*nextkey)(dba_info *, int * TSRMLS_DC);
+       int (*optimize)(dba_info * TSRMLS_DC);
+       int (*sync)(dba_info * TSRMLS_DC);
+       char* (*info)(struct dba_handler *hnd, dba_info * TSRMLS_DC);
+               /* dba_info==NULL: Handler info, dba_info!=NULL: Database info */
+} dba_handler;
+
 /* common prototypes which must be supplied by modules */
 
 #define DBA_OPEN_FUNC(x) \
@@ -90,6 +107,8 @@
        int dba_optimize_##x(dba_info *info TSRMLS_DC)
 #define DBA_SYNC_FUNC(x) \
        int dba_sync_##x(dba_info *info TSRMLS_DC)
+#define DBA_INFO_FUNC(x) \
+       char *dba_info_##x(dba_handler *hnd, dba_info *info TSRMLS_DC)
 
 #define DBA_FUNCS(x) \
        DBA_OPEN_FUNC(x); \
@@ -101,7 +120,8 @@
        DBA_FIRSTKEY_FUNC(x); \
        DBA_NEXTKEY_FUNC(x); \
        DBA_OPTIMIZE_FUNC(x); \
-       DBA_SYNC_FUNC(x)
+       DBA_SYNC_FUNC(x); \
+       DBA_INFO_FUNC(x)
 
 #define VALLEN(p) Z_STRVAL_PP(p), Z_STRLEN_PP(p)
        
Index: php4/ext/dba/libflatfile/flatfile.c
diff -u php4/ext/dba/libflatfile/flatfile.c:1.6 php4/ext/dba/libflatfile/flatfile.c:1.7
--- php4/ext/dba/libflatfile/flatfile.c:1.6     Mon Nov 18 20:06:42 2002
+++ php4/ext/dba/libflatfile/flatfile.c Mon Dec 30 08:07:30 2002
@@ -19,7 +19,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: flatfile.c,v 1.6 2002/11/19 01:06:42 edink Exp $ */
+/* $Id: flatfile.c,v 1.7 2002/12/30 13:07:30 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -294,6 +294,13 @@
        return(buf);
 }      
 /* }}} */
+
+/* {{{ flatfile_version */
+char *flatfile_version() 
+{
+       return "1.0, $Revision: 1.7 $";
+}
+/* }}} */ 
 
 /*
  * Local variables:
Index: php4/ext/dba/libflatfile/flatfile.h
diff -u php4/ext/dba/libflatfile/flatfile.h:1.5 php4/ext/dba/libflatfile/flatfile.h:1.6
--- php4/ext/dba/libflatfile/flatfile.h:1.5     Mon Nov 18 20:06:42 2002
+++ php4/ext/dba/libflatfile/flatfile.h Mon Dec 30 08:07:30 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: flatfile.h,v 1.5 2002/11/19 01:06:42 edink Exp $ */
+/* $Id: flatfile.h,v 1.6 2002/12/30 13:07:30 helly Exp $ */
 
 #ifndef PHP_LIBDBM_H
 #define PHP_LIBDBM_H
@@ -43,5 +43,6 @@
 int flatfile_findkey(flatfile *dba, datum key_datum TSRMLS_DC);
 datum flatfile_firstkey(flatfile *dba TSRMLS_DC);
 datum flatfile_nextkey(flatfile *dba TSRMLS_DC);
+char *flatfile_version();
 
 #endif

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to