From patchwork Sun Oct 21 22:54:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sven Eckelmann X-Patchwork-Id: 17516 X-Patchwork-Delegate: sw@simonwunderlich.de Return-Path: X-Original-To: patchwork@open-mesh.org Delivered-To: patchwork@open-mesh.org Received: from open-mesh.org (localhost [IPv6:::1]) by open-mesh.org (Postfix) with ESMTP id 3F2328308C; Mon, 22 Oct 2018 00:56:14 +0200 (CEST) Authentication-Results: open-mesh.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=narfation.org header.i=@narfation.org header.b="1+YAOeMO"; dkim-atps=neutral Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2001:4d88:2000:7::2; helo=v3-1039.vlinux.de; envelope-from=sven@narfation.org; receiver= Received: from v3-1039.vlinux.de (narfation.org [IPv6:2001:4d88:2000:7::2]) by open-mesh.org (Postfix) with ESMTPS id 2543C80CD9 for ; Mon, 22 Oct 2018 00:55:58 +0200 (CEST) Received: from sven-desktop.home.narfation.org (p200300C593D704FD0000000000008096.dip0.t-ipconnect.de [IPv6:2003:c5:93d7:4fd::8096]) by v3-1039.vlinux.de (Postfix) with ESMTPSA id B6E01110127; Mon, 22 Oct 2018 00:55:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=narfation.org; s=20121; t=1540162557; bh=ESQK7rDoAt0z4NVcz+AiAr1W3iee3xYTyUU4e58vsCE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=1+YAOeMO3BuDq4TZ3meCE1aPFjG6Obi/zWMezGfpV8iTpNLILcTutXhxDhjXO7duf shWiMsPPixKhRKLMnbSfis5IHdJ4xGAcElzUb85D7MQjL3HCeH13/nULt4C+FQI8xP WmN76XwZXFbbjUgbD8GS1EwQVZk90C4zQFt8zC90= From: Sven Eckelmann To: b.a.t.m.a.n@lists.open-mesh.org Date: Mon, 22 Oct 2018 00:54:51 +0200 Message-Id: <20181021225524.8155-6-sven@narfation.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181021225524.8155-1-sven@narfation.org> References: <20181021225524.8155-1-sven@narfation.org> MIME-Version: 1.0 Subject: [B.A.T.M.A.N.] [PATCH 05/38] batctl: Move log command to separate file X-BeenThere: b.a.t.m.a.n@lists.open-mesh.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: The list for a Better Approach To Mobile Ad-hoc Networking List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The list for a Better Approach To Mobile Ad-hoc Networking Errors-To: b.a.t.m.a.n-bounces@lists.open-mesh.org Sender: "B.A.T.M.A.N" More complex commands in batctl are stored in separate files which are called like the actual command name. This makes it easier to group functionality and detect which parts belong to a more complex construct. Signed-off-by: Sven Eckelmann --- Makefile | 1 + debug.c | 41 --------------------------------- debug.h | 1 - log.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ log.h | 28 +++++++++++++++++++++++ main.c | 1 + 6 files changed, 100 insertions(+), 42 deletions(-) create mode 100644 log.c create mode 100644 log.h diff --git a/Makefile b/Makefile index 1271200..a988058 100755 --- a/Makefile +++ b/Makefile @@ -35,6 +35,7 @@ OBJ += hash.o OBJ += icmp_helper.o OBJ += interface.o OBJ += loglevel.o +OBJ += log.o OBJ += main.o OBJ += netlink.o OBJ += ping.o diff --git a/debug.c b/debug.c index 185e26d..9bc4d0c 100644 --- a/debug.c +++ b/debug.c @@ -268,44 +268,3 @@ int debug_print_routing_algos(void) debugfs_make_path(DEBUG_BATIF_PATH_FMT, "", full_path, sizeof(full_path)); return read_file(full_path, DEBUG_ROUTING_ALGOS, 0, 0, 0, 0); } - -static void log_usage(void) -{ - fprintf(stderr, "Usage: batctl [options] log [parameters]\n"); - fprintf(stderr, "parameters:\n"); - fprintf(stderr, " \t -h print this help\n"); - fprintf(stderr, " \t -n don't replace mac addresses with bat-host names\n"); -} - -int log_print(char *mesh_iface, int argc, char **argv) -{ - int optchar, res, read_opt = USE_BAT_HOSTS | LOG_MODE; - char full_path[MAX_PATH+1]; - char *debugfs_mnt; - - while ((optchar = getopt(argc, argv, "hn")) != -1) { - switch (optchar) { - case 'h': - log_usage(); - return EXIT_SUCCESS; - case 'n': - read_opt &= ~USE_BAT_HOSTS; - break; - default: - log_usage(); - return EXIT_FAILURE; - } - } - - check_root_or_die("batctl log"); - - debugfs_mnt = debugfs_mount(NULL); - if (!debugfs_mnt) { - fprintf(stderr, "Error - can't mount or find debugfs\n"); - return EXIT_FAILURE; - } - - debugfs_make_path(DEBUG_BATIF_PATH_FMT "/", mesh_iface, full_path, sizeof(full_path)); - res = read_file(full_path, DEBUG_LOG, read_opt, 0, 0, 0); - return res; -} diff --git a/debug.h b/debug.h index 5508eaf..d9a2e3a 100644 --- a/debug.h +++ b/debug.h @@ -57,7 +57,6 @@ struct debug_table_data { extern const struct debug_table_data batctl_debug_tables[BATCTL_TABLE_NUM]; int handle_debug_table(char *mesh_iface, int debug_table, int argc, char **argv); -int log_print(char *mesh_iface, int argc, char **argv); int debug_print_routing_algos(void); #endif diff --git a/log.c b/log.c new file mode 100644 index 0000000..fc31c66 --- /dev/null +++ b/log.c @@ -0,0 +1,70 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (C) 2009-2018 B.A.T.M.A.N. contributors: + * + * Marek Lindner + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public + * License as published by the Free Software Foundation. + * + * 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 Street, Fifth Floor, Boston, MA + * 02110-1301, USA + * + * License-Filename: LICENSES/preferred/GPL-2.0 + */ + +#include +#include +#include + +#include "debug.h" +#include "debugfs.h" +#include "functions.h" + +static void log_usage(void) +{ + fprintf(stderr, "Usage: batctl [options] log [parameters]\n"); + fprintf(stderr, "parameters:\n"); + fprintf(stderr, " \t -h print this help\n"); + fprintf(stderr, " \t -n don't replace mac addresses with bat-host names\n"); +} + +int log_print(char *mesh_iface, int argc, char **argv) +{ + int optchar, res, read_opt = USE_BAT_HOSTS | LOG_MODE; + char full_path[MAX_PATH+1]; + char *debugfs_mnt; + + while ((optchar = getopt(argc, argv, "hn")) != -1) { + switch (optchar) { + case 'h': + log_usage(); + return EXIT_SUCCESS; + case 'n': + read_opt &= ~USE_BAT_HOSTS; + break; + default: + log_usage(); + return EXIT_FAILURE; + } + } + + check_root_or_die("batctl log"); + + debugfs_mnt = debugfs_mount(NULL); + if (!debugfs_mnt) { + fprintf(stderr, "Error - can't mount or find debugfs\n"); + return EXIT_FAILURE; + } + + debugfs_make_path(DEBUG_BATIF_PATH_FMT "/", mesh_iface, full_path, sizeof(full_path)); + res = read_file(full_path, DEBUG_LOG, read_opt, 0, 0, 0); + return res; +} diff --git a/log.h b/log.h new file mode 100644 index 0000000..4ba00e3 --- /dev/null +++ b/log.h @@ -0,0 +1,28 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* Copyright (C) 2009-2018 B.A.T.M.A.N. contributors: + * + * Marek Lindner + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public + * License as published by the Free Software Foundation. + * + * 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 Street, Fifth Floor, Boston, MA + * 02110-1301, USA + * + * License-Filename: LICENSES/preferred/GPL-2.0 + */ + +#ifndef _BATCTL_LOG_H +#define _BATCTL_LOG_H + +int log_print(char *mesh_iface, int argc, char **argv); + +#endif diff --git a/main.c b/main.c index ac4bc47..5b3e570 100644 --- a/main.c +++ b/main.c @@ -39,6 +39,7 @@ #include "bisect_iv.h" #include "statistics.h" #include "loglevel.h" +#include "log.h" #include "functions.h" char mesh_dfl_iface[] = "bat0";