Author: zaroth
Date: Thu Jun  9 11:53:03 2011
New Revision: 49816

URL: http://svn.gna.org/viewcvs/wesnoth?rev=49816&view=rev
Log:
Added proxy* options to commandline_options.

Modified:
    trunk/src/commandline_options.cpp
    trunk/src/game_controller.cpp
    trunk/src/tests/test_commandline_options.cpp

Modified: trunk/src/commandline_options.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/commandline_options.cpp?rev=49816&r1=49815&r2=49816&view=diff
==============================================================================
--- trunk/src/commandline_options.cpp (original)
+++ trunk/src/commandline_options.cpp Thu Jun  9 11:53:03 2011
@@ -172,11 +172,20 @@
                ("preprocess-output-macros", 
po::value<std::string>()->implicit_value(std::string()), "used only by the 
'--preprocess' command. Will output all preprocessed macros in the target file 
<arg>. If the file is not specified the output will be file '_MACROS_.cfg' in 
the target directory of preprocess's command.")
                ;
 
+       po::options_description proxy_opts("Proxy options");
+       proxy_opts.add_options()
+               ("proxy", "enables usage of proxy for network connections.")
+               ("proxy-address", po::value<std::string>(), "specifies address 
of the proxy.")
+               ("proxy-port", po::value<std::string>(), "specifies port of the 
proxy.")
+               ("proxy-user", po::value<std::string>(), "specifies username to 
log in to the proxy.")
+               ("proxy-password", po::value<std::string>(), "specifies 
password to log in to the proxy.")
+               ;
+
        hidden_.add_options()
                ("new-storyscreens", "")
                ("smallgui", "")
                ;
-       
visible_.add(general_opts).add(display_opts).add(logging_opts).add(multiplayer_opts).add(preprocessor_opts);
+       
visible_.add(general_opts).add(display_opts).add(logging_opts).add(multiplayer_opts).add(preprocessor_opts).add(proxy_opts);
        
        all_.add(visible_).add(hidden_);
 
@@ -263,6 +272,16 @@
                preprocess_input_macros = 
vm["preprocess-input-macros"].as<std::string>();
        if (vm.count("preprocess-output-macros"))
                preprocess_output_macros = 
vm["preprocess-output-macros"].as<std::string>();
+       if (vm.count("proxy"))
+               proxy = true;
+       if (vm.count("proxy-address"))
+               proxy_address = vm["proxy-address"].as<std::string>();
+       if (vm.count("proxy-password"))
+               proxy_password = vm["proxy-password"].as<std::string>();
+       if (vm.count("proxy-port"))
+               proxy_port = vm["proxy-port"].as<std::string>();
+       if (vm.count("proxy-user"))
+               proxy_user = vm["proxy-user"].as<std::string>();
        if (vm.count("resolution"))
                parse_resolution_(vm["resolution"].as<std::string>());
        if (vm.count("rng-seed"))

Modified: trunk/src/game_controller.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/game_controller.cpp?rev=49816&r1=49815&r2=49816&view=diff
==============================================================================
--- trunk/src/game_controller.cpp (original)
+++ trunk/src/game_controller.cpp Thu Jun  9 11:53:03 2011
@@ -177,6 +177,31 @@
                no_music = true;
        if (cmdline_opts_.nosound)
                no_sound = true;
+       //These commented lines should be used to implement support of 
connection
+       //through a proxy via command line options.
+       //The ANA network module should implement these methods (while the 
SDL_net won't.)
+       if (cmdline_opts_.proxy)
+               network::enable_connection_through_proxy();
+       if (cmdline_opts_.proxy_address)
+       {
+               network::enable_connection_through_proxy();
+               network::set_proxy_address(*cmdline_opts_.proxy_address);
+       }
+       if (cmdline_opts_.proxy_password)
+       {
+               network::enable_connection_through_proxy();
+               network::set_proxy_password(*cmdline_opts_.proxy_password);
+       }
+       if (cmdline_opts_.proxy_port)
+       {
+               network::enable_connection_through_proxy();
+               network::set_proxy_port(*cmdline_opts_.proxy_port);
+       }
+       if (cmdline_opts_.proxy_user)
+       {
+               network::enable_connection_through_proxy();
+               network::set_proxy_user(*cmdline_opts_.proxy_user);
+       }
        if (cmdline_opts_.resolution) {
                const int xres = cmdline_opts_.resolution->get<0>();
                const int yres = cmdline_opts_.resolution->get<1>();
@@ -253,45 +278,7 @@
                                jump_to_campaign_.scenario_id_ = 
std::string(argv_[arg_]);
                                std::cerr<<"selected scenario id: 
["<<jump_to_campaign_.scenario_id_<<"]\n";
                        }
-               } //These commented lines should be used to implement support 
of connection
-            //through a proxy via command line options.
-            //The ANA network module should implement these methods (while the 
SDL_net won't.)
-        else if(val == "--proxy") {
-            network::enable_connection_through_proxy();
-        } else if(val == "--proxy-address") {
-            if ( argv_[ arg_ + 1][0] != '-')
-            {
-                network::enable_connection_through_proxy();
-                network::set_proxy_address( argv_[ ++arg_ ] );
-            }
-            else
-                throw std::runtime_error("Proxy address option requires 
address");
-
-        } else if(val == "--proxy-port") {
-            if ( argv_[ arg_ + 1][0] != '-')
-            {
-                network::enable_connection_through_proxy();
-                network::set_proxy_port( argv_[ ++arg_ ] );
-            }
-            else
-                throw std::runtime_error("Proxy port option requires port");
-        } else if(val == "--proxy-user") {
-            if ( argv_[ arg_ + 1][0] != '-')
-            {
-                network::enable_connection_through_proxy();
-                network::set_proxy_user( argv_[ ++arg_ ] );
-            }
-            else
-                throw std::runtime_error("Proxy user option requires user 
name");
-        } else if(val == "--proxy-password") {
-            if ( argv_[ arg_ + 1][0] != '-')
-            {
-                network::enable_connection_through_proxy();
-                network::set_proxy_password( argv_[ ++arg_ ] );
-            }
-            else
-                throw std::runtime_error("Proxy password option requires 
password");
-        } else if(val == "-e" || val == "--editor") {
+               } else if(val == "-e" || val == "--editor") {
                        jump_to_editor_ = true;
                        if(arg_+1 != argc_) {
                                if (argv_[arg_ + 1][0] != '-') {

Modified: trunk/src/tests/test_commandline_options.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/tests/test_commandline_options.cpp?rev=49816&r1=49815&r2=49816&view=diff
==============================================================================
--- trunk/src/tests/test_commandline_options.cpp (original)
+++ trunk/src/tests/test_commandline_options.cpp Thu Jun  9 11:53:03 2011
@@ -214,6 +214,11 @@
                "--preprocess-defines=DEFFOO,DEFBAR",
                "--preprocess-input-macros=inmfoo",
                "--preprocess-output-macros=outmfoo",
+               "--proxy",
+               "--proxy-address=addressfoo",
+               "--proxy-password=passfoo",
+               "--proxy-port=portfoo",
+               "--proxy-user=userfoo",
                "--resolution=800x600",
                "--rng-seed=1234",
                "--screenshot", "mapfoo", "outssfoo",
@@ -287,11 +292,11 @@
        BOOST_CHECK(co.preprocess_defines->at(0) == "DEFFOO" && 
co.preprocess_defines->at(1) == "DEFBAR");
        BOOST_CHECK(co.preprocess_input_macros && *co.preprocess_input_macros 
== "inmfoo");
        BOOST_CHECK(co.preprocess_output_macros && *co.preprocess_output_macros 
== "outmfoo");
-       BOOST_CHECK(!co.proxy);
-       BOOST_CHECK(!co.proxy_address);
-       BOOST_CHECK(!co.proxy_password);
-       BOOST_CHECK(!co.proxy_port);
-       BOOST_CHECK(!co.proxy_user);
+       BOOST_CHECK(co.proxy);
+       BOOST_CHECK(co.proxy_address && *co.proxy_address == "addressfoo");
+       BOOST_CHECK(co.proxy_password && *co.proxy_password == "passfoo");
+       BOOST_CHECK(co.proxy_port && *co.proxy_port == "portfoo");
+       BOOST_CHECK(co.proxy_user && *co.proxy_user == "userfoo");
        BOOST_CHECK(co.resolution);
        BOOST_CHECK(co.resolution->get<0>() == 800 && co.resolution->get<1>() 
== 600);
        BOOST_CHECK(co.rng_seed && *co.rng_seed == 1234);


_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits

Reply via email to