X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fros.c;h=770b84e056f1f5d35f55c7abe3b80e7d4d15005f;hb=HEAD;hp=bcd72de0351da00786905528bd7f0f56d37935cc;hpb=4d50bd54fa77d0d140624a5220a6fa39104d8f99;p=routeros-api.git diff --git a/src/ros.c b/src/ros.c index bcd72de..770b84e 100644 --- a/src/ros.c +++ b/src/ros.c @@ -2,18 +2,17 @@ * libmikrotik - src/ros.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 @@ -175,19 +174,20 @@ static int system_resource_handler (__attribute__((unused)) ros_connection_t *c, "CPU model: %15s\n" "CPU count: %15u\n" "CPU load: %15u\n" - "CPU frequency: %11"PRIu64" MHz\n" - "Memory free: %9"PRIu64" kByte (%4.1f %%)\n" - "Memory used: %9"PRIu64" kByte (%4.1f %%)\n" - "Memory total: %9"PRIu64" kByte\n" - "Space free: %9"PRIu64" kByte (%4.1f %%)\n" - "Space used: %9"PRIu64" kByte (%4.1f %%)\n" - "Space total: %9"PRIu64" kByte\n" + "CPU frequency: %11g MHz\n" + "Memory free: %10"PRIu64" Byte (%4.1f %%)\n" + "Memory used: %10"PRIu64" Byte (%4.1f %%)\n" + "Memory total: %10"PRIu64" Byte\n" + "Space free: %10"PRIu64" Byte (%4.1f %%)\n" + "Space used: %10"PRIu64" Byte (%4.1f %%)\n" + "Space total: %10"PRIu64" Byte\n" "Sectors written: %13"PRIu64" (%"PRIu64")\n" "Bad blocks: %15"PRIu64"\n" "==============================\n", ((double) r->uptime) / 86400.0, r->version, r->architecture_name, r->board_name, - r->cpu_model, r->cpu_count, r->cpu_load, r->cpu_frequency, + r->cpu_model, r->cpu_count, r->cpu_load, + ((double) r->cpu_frequency) / 1000000.0, r->free_memory, 100.0 * (((double) r->free_memory) / ((double) r->total_memory)), used_memory, @@ -242,7 +242,12 @@ static char *read_password (void) /* {{{ */ return (NULL); } - fgets (buffer, sizeof (buffer), tty); + if (fgets (buffer, sizeof (buffer), tty) == NULL) + { + fprintf (stderr, "fgets failed: %s\n", strerror (errno)); + fclose (tty); + return (NULL); + } buffer[sizeof (buffer) - 1] = 0; buffer_len = strlen (buffer); @@ -323,7 +328,7 @@ int main (int argc, char **argv) /* {{{ */ if (passwd == NULL) exit (EXIT_FAILURE); - c = ros_connect (argv[optind], ROUTEROS_API_PORT, + c = ros_connect (host, ROUTEROS_API_PORT, opt_username, passwd); memset (passwd, 0, strlen (passwd)); if (c == NULL)