/**
- * 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>
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");
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"));