[svn:dbd-oracle] r14949 - dbd-oracle/branches/FAN

[email protected] Fri, 14 Oct 2011 20:41:33 -0700 (PDT)
Newsgroups perl.dbd.oracle.changes
Message-ID <[email protected]>
Author: byterock
Date: Fri Oct 14 20:41:33 2011
New Revision: 14949

Modified:
   dbd-oracle/branches/FAN/dbdimp.h
   dbd-oracle/branches/FAN/oci8.c

Log:
just some more

Modified: dbd-oracle/branches/FAN/dbdimp.h
==============================================================================
--- dbd-oracle/branches/FAN/dbdimp.h	(original)
+++ dbd-oracle/branches/FAN/dbdimp.h	Fri Oct 14 20:41:33 2011
@@ -12,6 +12,7 @@
 
 struct ha_context_st {
    PerlInterpreter *ct_perl;
+   imp_dbh_t  *imp_dbh;
    char *function;
 };
 

Modified: dbd-oracle/branches/FAN/oci8.c
==============================================================================
--- dbd-oracle/branches/FAN/oci8.c	(original)
+++ dbd-oracle/branches/FAN/oci8.c	Fri Oct 14 20:41:33 2011
@@ -1284,14 +1284,13 @@
 
  ha_context_t *ctx =(ha_context_t*)ha_ctx;  
   dTHXa(ctx->ct_perl);
-  //dTHX;€
-  //dSP;
+  dSP;
 //        XPUSHs(sv_2mortal(newSViv(evtsource)));
 //        XPUSHs(sv_2mortal(newSViv(evtstatus)));
 //        PUTBACK;
 //  OCIEnv  *envhp = (OCIEnv *)ha_ctx;
-//  imp_dbh_t  *imp_dbh = (imp_dbh_t*)ha_ctx;
-//  sword status;
+  imp_dbh_t  *imp_dbh = (imp_dbh_t*)ctx->imp_dbh;
+  sword status;
 //  OraText *instname;
  // ub4 sizep;
    ub4 atrlen;
@@ -1300,7 +1299,7 @@
    char *function;
 printf ("well this far 1\n\n");
  PERL_SET_CONTEXT(ctx->ct_perl);
-PerlIO_printf(DBILOGFP, " how about this my functio %s",ctx->function);
+PerlIO_printf(DBILOGFP, " how about this my functio %sn",ctx->function);
 //PERL_SET_CONTEXT(my_perl);
 //ENTER;
 //    SAVETMPS;
@@ -1327,8 +1326,8 @@
 
 //OCI_ATTR_HA_SOURCE
 printf ("well this far status=%d\n\n\n",status);
-
-/*  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&evtsource, 0, OCI_ATTR_HA_SOURCE, imp_dbh->errhp, status);
+*/
+  OCIAttrGet_log_stat(eventhp,  OCI_HTYPE_EVENT, (dvoid *)&evtsource, 0, OCI_ATTR_HA_SOURCE, imp_dbh->errhp, status);
 dbd_verbose=0;
 
 //
@@ -1357,6 +1356,12 @@
       break;
     }
 
+
+        XPUSHs(sv_2mortal(newSViv(evtsource)));
+        XPUSHs(sv_2mortal(newSViv(evtstatus)));
+  PUTBACK;
+        call_pv(ctx->function, G_DISCARD);
+
 /*
  checkerr(errhp, OCIAttrGet(eventhp, OCI_HTYPE_EVENT, (dvoid *)&evtsource,
 			     (ub4 *)0,
@@ -1419,6 +1424,7 @@
         Newz(1, ctx, 1, ha_context_t);
         ctx->function= (char*)safemalloc(strlen(imp_dbh->ha_function));
         ctx->ct_perl   = my_perl;
+        ctx->imp_dbh   = imp_dbh;
         strcpy((char *)ctx->function,imp_dbh->ha_function);
 
  /*       OCIFocbkStruct  ha_failover;