More updates from Bernhard Fischer
[rrdtool.git] / src / rrd_last.c
index b9caa64..42a8075 100644 (file)
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.1.x  Copyright Tobias Oetiker, 1997 - 2002
+ * RRDtool 1.2.23  Copyright by Tobi Oetiker, 1997-2007
  *****************************************************************************
  * rrd_last.c
  *****************************************************************************
@@ -8,27 +8,34 @@
 
 #include "rrd_tool.h"
 
-time_t
-rrd_last(int argc, char **argv)
+time_t rrd_last(
+    int argc,
+    char **argv)
 {
-    FILE       *in_file;
-    time_t       lastup;
-
-    rrd_t       rrd;
-
-    if(argc < 2){
+    if (argc < 2) {
         rrd_set_error("please specify an rrd");
-        return(-1);
-    }
-    if(rrd_open(argv[1], &in_file, &rrd, RRD_READONLY)==-1){
-        return(-1);
+        return (-1);
     }
-    lastup = rrd.live_head->last_up;
-    rrd_free(&rrd);
-    fclose(in_file);
-    return(lastup);
+
+    return (rrd_last_r(argv[1]));
 }
 
 
+time_t rrd_last_r(
+    const char *filename)
+{
+    time_t    lastup;
+    rrd_file_t *rrd_file;
+
+    rrd_t     rrd;
+
+    rrd_file = rrd_open(filename, &rrd, RRD_READONLY);
+    if (rrd_file == NULL)
+        return (-1);
 
+    lastup = rrd.live_head->last_up;
+    rrd_free(&rrd);
+    close(rrd_file->fd);
+    rrd_close(rrd_file);
+    return (lastup);
+}