From: "Andrew Lutomirski" <luto@myrealbox.com>
To: linux-wireless@vger.kernel.org
Subject: [PATCH] make iw usable for mere mortals
Date: Thu, 20 Dec 2007 11:10:05 -0500 [thread overview]
Message-ID: <cb0375e10712200810n4c12e2dldbf67c17ebcd34d0@mail.gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 396 bytes --]
[Sorry for attached patch, but I fully expect my mailer to butcher it
otherwise.]
iw currently works, but the error handling is a bit off, many error
messages are absent, and the help text is flat-out wrong. This
partially fixes the above and should make it possible for noobs to add
and remove interfaces without reading the entire source.
Signed-Off-By: Andy Lutomirski <luto@myrealbox.com>
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: iw_usability.patch --]
[-- Type: text/x-patch; name=iw_usability.patch, Size: 1733 bytes --]
diff --git a/interface.c b/interface.c
index b54a66c..efc2d93 100644
--- a/interface.c
+++ b/interface.c
@@ -55,7 +55,7 @@ static int get_if_type(int *argc, char ***argv, enum nl80211_iftype *type)
static int handle_interface_add(struct nl80211_state *state,
char *phy, char *dev, int argc, char **argv)
{
- char *name = argv[0];
+ char *name;
enum nl80211_iftype type;
int tpset, err;
struct nl_msg *msg;
@@ -65,14 +65,15 @@ static int handle_interface_add(struct nl80211_state *state,
return -1;
}
+ name = argv[0];
argc--;
argv++;
- if (argc) {
- tpset = get_if_type(&argc, &argv, &type);
- if (tpset < 0)
- return -1;
- }
+ tpset = get_if_type(&argc, &argv, &type);
+ if (tpset == 0)
+ fprintf(stderr, "you must specify an interface type\n");
+ if (tpset <= 0)
+ return -1;
if (argc) {
fprintf(stderr, "too many arguments\n");
@@ -150,8 +151,10 @@ int handle_interface(struct nl80211_state *state,
{
char *cmd = argv[0];
- if (argc < 1)
+ if (argc < 1) {
+ fprintf(stderr, "you must specify an interface command\n");
return -1;
+ }
argc--;
argv++;
diff --git a/iw.c b/iw.c
index c2b53ee..469bf0e 100644
--- a/iw.c
+++ b/iw.c
@@ -92,8 +92,11 @@ static int get_phy_or_dev(int *argc, char ***argv, char **name)
void usage(char *argv0)
{
- fprintf(stderr, "Usage: %s [options] {dev <phydev>} {interface <interface> } {COMMAND}\n"
- "where COMMAND := { add | del }\n", argv0);
+ fprintf(stderr, "Usage: %s dev <phydev> interface <COMMAND> [OPTIONS]\n"
+ "where COMMAND := { add | del }\n"
+ "\n"
+ "For add, OPTIONS := <name> type <type>\n"
+ "For del, OPTIONS should be blank and phydev is the interface to delete.\n", argv0);
}
int main(int argc, char **argv)
next reply other threads:[~2007-12-20 16:10 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-20 16:10 Andrew Lutomirski [this message]
2007-12-20 17:50 ` [PATCH] make iw usable for mere mortals Johannes Berg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cb0375e10712200810n4c12e2dldbf67c17ebcd34d0@mail.gmail.com \
--to=luto@myrealbox.com \
--cc=linux-wireless@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox