summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Klinghed <the_jk@yahoo.com>2017-08-11 22:09:21 +0200
committerJoel Klinghed <the_jk@yahoo.com>2017-08-11 22:10:34 +0200
commit6fd21e3bca80117d88f381515ac3150770164c42 (patch)
tree6eab4f26fb4a87b6ee86a11106cb44602e158a1f
parentc52f87e9603321635ae9f2c437bf45d5b202e536 (diff)
Minor improvements to the UI, mainly text improvements
Added shortcut for Setup... and changed Connect... and Disconnect... to match (so F5, F6 and F7 resp.). Let dialog descriptions end with "." but remove from field descriptions. Change the statusbar to better match that we probably are going to run as a proxy the most of the time.
-rw-r--r--src/monitor-gui.cc73
1 files changed, 47 insertions, 26 deletions
diff --git a/src/monitor-gui.cc b/src/monitor-gui.cc
index c28227b..b02f028 100644
--- a/src/monitor-gui.cc
+++ b/src/monitor-gui.cc
@@ -156,7 +156,7 @@ public:
case 2:
return "To";
case 3:
- return "Data";
+ return "Size";
case 4:
return "Duration";
}
@@ -254,7 +254,8 @@ private:
static void format_size(std::string* out, size_t size, bool done) {
char tmp[50];
- auto len = snprintf(tmp, sizeof(tmp), "%llu bytes", static_cast<unsigned long long>(size));
+ auto len = snprintf(tmp, sizeof(tmp), "%llu bytes",
+ static_cast<unsigned long long>(size));
out->assign(tmp, len);
if (!done) out->append(" ...", 4);
}
@@ -278,7 +279,8 @@ private:
n += 1000000000ull;
}
char tmp[50];
- auto len = snprintf(tmp, sizeof(tmp), "%ld.%09lu", static_cast<long>(s), static_cast<unsigned long>(n));
+ auto len = snprintf(tmp, sizeof(tmp), "%ld.%09lu",
+ static_cast<long>(s), static_cast<unsigned long>(n));
out->assign(tmp, len);
}
@@ -840,19 +842,16 @@ public:
edit->add_item(ACTION_CLEAR, "Clear");
auto proxy = menu_->add_menu("Proxy");
- proxy->add_item(ACTION_SETUP, "Setup...");
- proxy->add_item(ACTION_CONNECT, "Connect...",
- GuiMenu::Shortcut(GuiMenu::CTRL, 'C'));
- proxy->add_item(ACTION_DISCONNECT, "Disconnect",
- GuiMenu::Shortcut(GuiMenu::CTRL, 'D'));
+ proxy->add_item(ACTION_SETUP, "Setup...", GuiMenu::Shortcut(0, 5));
+ proxy->add_item(ACTION_CONNECT, "Connect...", GuiMenu::Shortcut(0, 6));
+ proxy->add_item(ACTION_DISCONNECT, "Disconnect", GuiMenu::Shortcut(0, 7));
#if HAVE_SSL
auto tools = menu_->add_menu("Tools");
tools->add_item(ACTION_GENERATE_CA, "Generate CA...");
#endif // HAVE_SSL
auto help = menu_->add_menu("Help");
- help->add_item(ACTION_ABOUT, "About...",
- GuiMenu::Shortcut(0, 1));
+ help->add_item(ACTION_ABOUT, "About...", GuiMenu::Shortcut(0, 1));
help->add_item(ACTION_PROXY_LOG, "Proxy log...");
main_->set_menu(menu_.get());
main_->set_statusbar(statusbar_.get());
@@ -860,7 +859,7 @@ public:
main_->set_listmodel(packages_.get());
- statusbar_->set_status("Not connected");
+ statusbar_->set_status("Not monitoring traffic");
menu_->enable_item(ACTION_DISCONNECT, false);
lost_selection(main_.get());
@@ -890,29 +889,39 @@ public:
setup_proxy();
proxy_logger_->clear();
auto dlg = std::unique_ptr<GuiFormApply::Delegate>(
- new SetupFormDelegate(proxy_, proxy_config_.get(), proxy_logger_.get(),
+ new SetupFormDelegate(proxy_, proxy_config_.get(),
+ proxy_logger_.get(),
monitor_.get(), main_->config(),
looper_.get(), resolver_.get()));
auto lst = std::unique_ptr<GuiFormApply::Listener>(
new SetupFormListener());
connect_.reset(
GuiFormApply::create("Setup...",
- "Setup a proxy to start monitoring traffic.",
+ "Setup a proxy to start monitoring traffic."
+ " Will catch all traffic sent to the proxy"
+ " address and port setup below."
+#if HAVE_SSL
+ "\nIf you wish to intercept SSL traffic you need"
+ " to make the client program or device trust"
+ " the CA used. To generate a CA go to the Tools"
+ " menu."
+#endif
+ ,
"Setup",
dlg.get()));
connect_->add_string("bind", "Address",
main_->config()->get("bind", ""),
"Address to listen for proxy connections on."
- " Leave empty to listen on all interfaces.");
+ " Leave empty to listen on all interfaces");
connect_->add_string("port", "Port",
main_->config()->get("port", "8080"),
- "Port to listen for proxy connections on.");
+ "Port to listen for proxy connections on");
#if HAVE_SSL
bool mitm = main_->config()->get("mitm", false);
connect_->add_bool("mitm", "Intercept SSL traffic",
mitm,
"If enabled SSL connections will be intercepted"
- " by the proxy to log unencrypted traffic.");
+ " by the proxy to log unencrypted traffic");
connect_->add_file("ssl-ca", "Certificate Authority",
main_->config()->get("ssl-ca",
main_->config()->get("genca-output", "")),
@@ -949,7 +958,8 @@ public:
new ConnectFormListener());
connect_.reset(
GuiFormApply::create("Connect...",
- "Enter address for monitor to connect to",
+ "Enter address and monitor port for a running"
+ " proxy daemon to connect to.",
"Connect",
dlg.get()));
connect_->add_string("address", "Address",
@@ -1052,9 +1062,9 @@ public:
del.get()));
dlg->add_string("issuer", "Issuer name",
main_->config()->get("issuer", ""),
- "Issuer name to use instead of the default.");
+ "Issuer name to use instead of the default");
dlg->add_file("output", "File", "",
- "File to save certificate and key pair to.",
+ "File to save certificate and key pair to",
GuiFile::FILE_SAVE, pem_filter_);
dlg->add_listener(lst.get());
dlg->show(main_.get());
@@ -1175,22 +1185,33 @@ public:
bool allow_connect, allow_disconnect;
switch (state) {
case Monitor::DISCONNECTED:
- statusbar_->set_status("Not connected");
+ statusbar_->set_status("Not monitoring traffic");
allow_connect = true;
allow_disconnect = false;
break;
case Monitor::CONNECTED:
- statusbar_->set_status("Connected");
+ statusbar_->set_status("Connected to proxy, waiting to attach...");
allow_connect = false;
allow_disconnect = true;
break;
case Monitor::CONNECTING:
- statusbar_->set_status("Connecting...");
+ statusbar_->set_status("Connecting to proxy...");
allow_connect = false;
allow_disconnect = false;
break;
case Monitor::ATTACHED:
- statusbar_->set_status("Connected and attached");
+ if (proxy_) {
+ std::string tmp = "Listening on ";
+ auto bind = proxy_config_->get("proxy_bind", nullptr);
+ if (bind && *bind) {
+ tmp += bind;
+ tmp += ":";
+ }
+ tmp += proxy_config_->get("proxy_port", "?");
+ statusbar_->set_status(tmp);
+ } else {
+ statusbar_->set_status("Connected and attached to proxy");
+ }
allow_connect = false;
allow_disconnect = true;
break;
@@ -1300,7 +1321,7 @@ private:
if (!modified_) return false;
std::unique_ptr<GuiForm> form(
GuiForm::create("Confirm?",
- "If you continue you will lose unsaved packages"));
+ "If you continue you will lose any unsaved packages"));
return !form->show(main_.get());
}
@@ -1653,7 +1674,7 @@ private:
if (is_pcap(file)) return load_pcap(file, packages);
std::ifstream in(file);
if (!in.good()) {
- show_error("Unable to open " + file + " for reading");
+ show_error("Unable to open " + file + " for reading.");
return false;
}
auto delegate = std::unique_ptr<PackagesReaderDelegate>(
@@ -1676,7 +1697,7 @@ private:
if (is_pcap(file)) return save_pcap(packages, file);
std::ofstream out(file);
if (!out.good()) {
- show_error("Unable to open " + file + " for writing");
+ show_error("Unable to open " + file + " for writing.");
return false;
}
auto writer = std::unique_ptr<PackagesWriter>(PackagesWriter::create(&out));