]> git.tdb.fi Git - libs/net.git/blobdiff - examples/netcat.cpp
Update getopt usage with positional arguments
[libs/net.git] / examples / netcat.cpp
index 9bbad87b8d0fa944a636cf52e28ba37f67d7e8ee..cd549f4a045e9486f92d9c01da5fe04edda9c16a 100644 (file)
@@ -34,16 +34,15 @@ NetCat::NetCat(int argc, char **argv):
        server_sock(0),
        sock(0)
 {
+       string host_name;
+
        GetOpt getopt;
        getopt.add_option('6', "ipv6",   ipv6,   GetOpt::NO_ARG);
        getopt.add_option('l', "listen", listen, GetOpt::NO_ARG);
+       getopt.add_argument("host", host_name, GetOpt::REQUIRED_ARG);
        getopt(argc, argv);
 
-       const vector<string> &args = getopt.get_args();
-       if(args.empty())
-               throw usage_error("host argument missing");
-
-       RefPtr<Net::SockAddr> addr = Net::resolve(args.front(), (ipv6 ? Net::INET6 : Net::INET));
+       RefPtr<Net::SockAddr> addr = Net::resolve(host_name, (ipv6 ? Net::INET6 : Net::INET));
        if(!listen)
        {
                sock = new Net::StreamSocket(addr->get_family());