misc fixes to get rrdtool working without included libraries.
[rrdtool.git] / bindings / perl-shared / RRDs.xs
index afb55f0..bf108e3 100644 (file)
@@ -176,7 +176,7 @@ void
 rrd_graph(...)
        PROTOTYPE: @    
        PREINIT:
-       char **calcpr;
+       char **calcpr=NULL;
        int i,xsize,ysize;
        char **argv;
        AV *retar;
@@ -272,6 +272,30 @@ rrd_fetch(...)
                PUSHs(sv_2mortal(newRV_noinc((SV*)names)));
                PUSHs(sv_2mortal(newRV_noinc((SV*)retar)));
 
+void
+rrd_times(start, end)
+         char *start
+         char *end
+       PREINIT:
+               struct  rrd_time_value start_tv, end_tv;
+               char    *parsetime_error = NULL;
+               time_t  start_tmp, end_tmp;
+       PPCODE:
+               rrd_clear_error();
+               if( (parsetime_error = parsetime( start, &start_tv))) {
+                       rrd_set_error( "start time: %s", parsetime_error);
+                       XSRETURN_UNDEF;
+               }
+               if( (parsetime_error = parsetime( end, &end_tv))) {
+                       rrd_set_error( "end time: %s", parsetime_error);
+                       XSRETURN_UNDEF;
+               }
+               if( proc_start_end( &start_tv, &end_tv, &start_tmp, &end_tmp) == -1) {
+                       XSRETURN_UNDEF;
+               }
+               EXTEND(sp,2);
+               PUSHs(sv_2mortal(newSVuv(start_tmp)));
+               PUSHs(sv_2mortal(newSVuv(end_tmp)));
 
 int
 rrd_xport(...)