Relicense to ISC License.
[routeros-api.git] / src / system_resource.c
index 2e1ef85..facdc60 100644 (file)
@@ -1,19 +1,18 @@
 /**
- * librouteros - src/interface.c
+ * librouteros - src/system_resource.c
  * Copyright (C) 2009  Florian octo Forster
  *
- * 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; only version 2 of the License is applicable.
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
  *
- * 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.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
  *
  * Authors:
  *   Florian octo Forster <octo at verplant.org>
@@ -62,7 +61,7 @@ static int rt_reply_to_system_resource (const ros_reply_t *r, /* {{{ */
        if (strcmp ("re", ros_reply_status (r)) != 0)
                return (rt_reply_to_system_resource (ros_reply_next (r), ret));
 
-       /* TODO: Uptime */
+       ret->uptime = sstrtodate (ros_reply_param_val_by_key (r, "uptime"));
 
        ret->version = ros_reply_param_val_by_key (r, "version");
        ret->architecture_name = ros_reply_param_val_by_key (r, "architecture-name");
@@ -71,13 +70,15 @@ static int rt_reply_to_system_resource (const ros_reply_t *r, /* {{{ */
        ret->cpu_model = ros_reply_param_val_by_key (r, "cpu");
        ret->cpu_count = sstrtoui (ros_reply_param_val_by_key (r, "cpu-count"));
        ret->cpu_load = sstrtoui (ros_reply_param_val_by_key (r, "cpu-load"));
-       ret->cpu_frequency = sstrtoui64 (ros_reply_param_val_by_key (r, "cpu-frequency"));
+       ret->cpu_frequency = sstrtoui64 (ros_reply_param_val_by_key (r, "cpu-frequency")) * 1000000;
 
-       ret->free_memory = sstrtoui64 (ros_reply_param_val_by_key (r, "free-memory"));
-       ret->total_memory = sstrtoui64 (ros_reply_param_val_by_key (r, "total-memory"));
+       /* One "kilobyte" is 1024 bytes, according to "janisk", see
+        * <http://forum.mikrotik.com/viewtopic.php?f=2&t=37943> */
+       ret->free_memory = sstrtoui64 (ros_reply_param_val_by_key (r, "free-memory")) * 1024;
+       ret->total_memory = sstrtoui64 (ros_reply_param_val_by_key (r, "total-memory")) * 1024;
 
-       ret->free_hdd_space = sstrtoui64 (ros_reply_param_val_by_key (r, "free-hdd-space"));
-       ret->total_hdd_space = sstrtoui64 (ros_reply_param_val_by_key (r, "total-hdd-space"));
+       ret->free_hdd_space = sstrtoui64 (ros_reply_param_val_by_key (r, "free-hdd-space")) * 1024;
+       ret->total_hdd_space = sstrtoui64 (ros_reply_param_val_by_key (r, "total-hdd-space")) * 1024;
 
        ret->write_sect_since_reboot = sstrtoui64 (ros_reply_param_val_by_key (r, "write-sect-since-reboot"));
        ret->write_sect_total = sstrtoui64 (ros_reply_param_val_by_key (r, "write-sect-total"));