53b177c5 |
diff -uNr netmgmt-1.1.0/cli/netmgrcli.c netmgmt-1.1.0-2/cli/netmgrcli.c
--- netmgmt-1.1.0/cli/netmgrcli.c 2017-03-11 11:58:08.000000000 +0000
+++ netmgmt-1.1.0-2/cli/netmgrcli.c 2017-04-18 22:12:32.028012184 +0000
@@ -1116,89 +1116,6 @@
}
-static struct option fwRuleOptions[] =
-{
- {"add", no_argument, 0, 'a'},
- {"del", no_argument, 0, 'd'},
- {"get", no_argument, 0, 'g'},
- {"rule", required_argument, 0, 'r'},
- {0, 0, 0, 0}
-};
-
-static uint32_t
-cli_fw_rule(
- int argc,
- char **argv,
- PNETMGR_CMD pCmd
- )
-{
- uint32_t err = 0, valid_rule = 0;
- int nOptionIndex = 0, nOption = 0;
- CMD_OP op = OP_INVALID;
-
- opterr = 0;
- optind = 1;
- while (1)
- {
- nOption = getopt_long(argc,
- argv,
- "adgr:",
- fwRuleOptions,
- &nOptionIndex);
- if (nOption == -1)
- break;
-
- switch(nOption)
- {
- case 'a':
- op = OP_ADD;
- break;
- case 'd':
- op = OP_DEL;
- break;
- case 'g':
- op = OP_GET;
- break;
- case 'r':
- if (strlen(optarg) > 0)
- {
- err = netmgrcli_alloc_keyvalue("rule", optarg, pCmd);
- valid_rule = 1;
- }
- break;
- case '?':
- /* Option not handled here. Ignore. */
- break;
- }
- bail_on_error(err);
- }
-
- if ((op == OP_INVALID) ||
- (((op == OP_DEL) || (op == OP_ADD)) && (valid_rule == 0)))
- {
- err = EDOM;
- bail_on_error(err);
- }
-
- pCmd->id = CMD_FW_RULE;
- pCmd->op = op;
-
-cleanup:
- return err;
-
-error:
- pCmd->op = OP_INVALID;
- if(err == EDOM)
- {
- fprintf(stderr,
- "Usage:\nfw_rule --get\n"
- "fw_rule --add --rule <Firewall Rule>\n"
- "fw_rule --del --rule <Firewall Rule>\n");
- }
- goto cleanup;
-}
-
-
static struct option hostnameOptions[] =
{
{"set", no_argument, 0, 's'},
@@ -1646,35 +1563,35 @@
cli_link_info,
"--set --interface <interface name> --mode <manual|auto> --state <up|down> "
"--macaddr <mac_address> --mtu <mtu>",
- "get or set link mac addr, mtu, state, mode per interface"
+ "get or set interface mac address, mtu, link state, or link mode"
},
{"ip4_address",
cli_ip4_address,
"--set --interface <interface name> --mode <dhcp|static|none> "
"--addr <IPv4Address/prefix> --gateway <default gateway>",
- "get or set IPv4 address and default gateway for interface"
+ "get or set interface IPv4 address and optionally default gateway"
},
{"ip6_address",
cli_ip6_address,
"--add|--del|--set --interface <interface name> --dhcp <1|0> --autoconf <1|0> "
"--addrlist <IPv6 Address/Prefix list> --gateway <Default IPv6 gateway>",
- "add or delete IPv6 addresses and default gateway for interface"
+ "add or delete IPv6 address(es) and optionally default gateway for interface"
},
{"ip_route",
cli_ip_route,
"--add|--del --interface <interface name> --destination <Dest Network/Prefix> "
"--gateway <Gateway IP Addr> -- metric <Route Metric> --scope <scope>",
- "add or delete IP routes for the interface"
+ "add or delete static IP route for the interface"
},
{"dns_servers",
cli_dns_servers,
"--set --mode <dhcp|static> --servers <DNS servers list>",
- "get or set DNS mode, DNS servers list"
+ "get or set DNS mode, list of DNS servers"
},
{"dns_domains",
cli_dns_domains,
"--set --del --add --domains <Domains list>",
- "get or set DNS domains list"
+ "get or set list of DNS domains"
},
{"dhcp_duid",
cli_dhcp_duid,
@@ -1691,26 +1608,21 @@
"--set --del --add --servers <NTP servers list>",
"get or set NTP servers list"
},
- {"fw_rule",
- cli_fw_rule,
- "--add --del --rule <Firewall Rule>",
- "add or delete firewall rules"
- },
{"hostname",
cli_hostname,
- "--set --name <Hostname>",
- "get or set hostname"
+ "--set --name <hostname>",
+ "get or set system hostname"
},
{"wait_for_link",
cli_wait_for_link,
"--interface <interface name> --timeout <timeout>",
- "waits until timeout for the interface to up"
+ "wait for the interface to come up"
},
{"wait_for_ip",
cli_wait_for_ip,
"--interface <interface name> --timeout <timeout> --addrtype <ipv4,ipv6,"
"static_ipv4,static_ipv6,dhcp_ipv4,dhcp_ipv6,auto_ipv6,link_local_ipv6>",
- "waits until timeout for the interface to get a valid IP address"
+ "wait for the interface to acquire a valid IP address"
},
{"error_info",
cli_err_info,
@@ -1721,7 +1633,7 @@
cli_net_info,
"--set --object <ifname or filename> --paramname <param name> "
"--paramvalue <value>",
- "get or set network parameters"
+ "get or set network configuration parameters"
},
};
@@ -1736,14 +1648,13 @@
fprintf(stdout, "For version: netmgr -v or netmgr --version\n");
fprintf(stdout, "\n");
- fprintf(stdout, "List of commands\n");
+ fprintf(stdout, "List of commands:\n");
fprintf(stdout, "\n");
for(i = 0; i < nCmdCount; ++i)
{
- fprintf(stdout, "%s %s\t%s\n",
+ fprintf(stdout, "%s \t%s\n",
cmdMap[i].pszCmdName,
- cmdMap[i].pszParams,
cmdMap[i].pszHelpMessage);
}
return 0;
diff -uNr netmgmt-1.1.0/include/public/netmgr.h netmgmt-1.1.0-2/include/public/netmgr.h
--- netmgmt-1.1.0/include/public/netmgr.h 2017-03-11 11:58:08.000000000 +0000
+++ netmgmt-1.1.0-2/include/public/netmgr.h 2017-04-18 22:12:32.028012184 +0000
@@ -15,6 +15,10 @@
#ifndef __NETMGR_H__
#define __NETMGR_H__
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#define SET_FLAG(v, f) (v) = ((v) | (f))
#define CLEAR_FLAG(v, f) (v) = ((v) & ~(f))
#define TEST_FLAG(v, f) (((v) & (f)) != 0)
@@ -198,6 +202,10 @@
uint32_t nmErrCode
);
+uint32_t
+nm_touch_network_conf_file(
+ const char *pszInterfaceName,
+ char **ppszFilename);
/*
* Interface configuration APIs
@@ -574,6 +582,9 @@
uint32_t
nm_reload_firewall_config();
+#ifdef __cplusplus
+}
+#endif
#endif /* __NETMGR_H__ */
diff -uNr netmgmt-1.1.0/src/netmgr.c netmgmt-1.1.0-2/src/netmgr.c
--- netmgmt-1.1.0/src/netmgr.c 2017-03-11 11:58:08.000000000 +0000
+++ netmgmt-1.1.0-2/src/netmgr.c 2017-04-18 22:12:32.036012184 +0000
@@ -608,6 +608,48 @@
goto cleanup;
}
+uint32_t
+nm_touch_network_conf_file(
+ const char *pszInterfaceName,
+ char **ppszFilename)
+{
+ uint32_t err = 0;
+ char *pszCfgFileName = NULL;
+ int lockId;
+
+ err = nm_acquire_write_lock(0, &lockId);
+ bail_on_error(err);
+
+ if (!IS_VALID_INTERFACE_NAME(pszInterfaceName))
+ {
+ err = NM_ERR_INVALID_INTERFACE;
+ bail_on_error(err);
+ }
+
+ err = nm_get_network_conf_filename_for_update(pszInterfaceName,
+ &pszCfgFileName);
+ bail_on_error(err);
+
+ if (ppszFilename != NULL)
+ {
+ *ppszFilename = pszCfgFileName;
+ }
+ else
+ {
+ netmgr_free(pszCfgFileName);
+ }
+
+cleanup:
+ nm_release_write_lock(lockId);
+ return err;
+error:
+ if (ppszFilename != NULL)
+ {
+ *ppszFilename = NULL;
+ }
+ netmgr_free(pszCfgFileName);
+ goto cleanup;
+}
/*
* Interface configuration APIs
@@ -1311,9 +1353,12 @@
bail_on_error(err);
}
- err = netmgr_alloc_string_printf(&pszArpingCmd, "%s %s -I %s %s",
- ARPING_COMMAND, pszCommandOptions,
- pszInterfaceName, pszDestIPv4Addr);
+ err = netmgr_alloc_string_printf(&pszArpingCmd,
+ "%s %s -I %s %s",
+ ARPING_COMMAND,
+ pszCommandOptions,
+ pszInterfaceName,
+ pszDestIPv4Addr);
bail_on_error(err);
err = nm_run_command(pszArpingCmd);
@@ -2912,8 +2957,8 @@
char **ppszIpAddrList = NULL, **ppszGwAddrList = NULL;
size_t ipCount, gwCount;
- if (!IS_VALID_INTERFACE_NAME(pszInterfaceName) || !pMode ||
- !ppszIPv4AddrPrefix || !ppszIPv4Gateway)
+ if (!IS_VALID_INTERFACE_NAME(pszInterfaceName) ||
+ !(pMode || ppszIPv4AddrPrefix || ppszIPv4Gateway))
{
err = NM_ERR_INVALID_PARAMETER;
bail_on_error(err);
@@ -3001,9 +3046,18 @@
bail_on_error(err);
}
- *pMode = ip4Mode;
- *ppszIPv4AddrPrefix = pszIPv4AddrPrefix;
- *ppszIPv4Gateway = pszIPv4Gateway;
+ if (pMode)
+ {
+ *pMode = ip4Mode;
+ }
+ if (ppszIPv4AddrPrefix)
+ {
+ *ppszIPv4AddrPrefix = pszIPv4AddrPrefix;
+ }
+ if (ppszIPv4Gateway)
+ {
+ *ppszIPv4Gateway = pszIPv4Gateway;
+ }
cleanup:
netmgr_list_free(ipCount, (void **)ppszIpAddrList);
diff -uNr netmgmt-1.1.0/tools/netmgr/main.c netmgmt-1.1.0-2/tools/netmgr/main.c
--- netmgmt-1.1.0/tools/netmgr/main.c 2017-03-11 11:58:08.000000000 +0000
+++ netmgmt-1.1.0-2/tools/netmgr/main.c 2017-04-18 22:12:32.048012185 +0000
@@ -1342,8 +1342,11 @@
netmgrcli_free_cmd(pCmd);
return get_cli_error_code(err);
error:
- pszErrMsg = nm_get_error_info(err);
- fprintf(stderr, "Error: %s\n", pszErrMsg);
+ if (err != EDOM)
+ {
+ pszErrMsg = nm_get_error_info(err);
+ fprintf(stderr, "Error: %s\n", pszErrMsg);
+ }
goto cleanup;
}
|