Display assigned IPs and connection stats on status window

- Show the assigned IP numbers, traffic stats (bytes in/out), and
  the GUI and OpenVPN core versions on the status window.

Note: IDS_TXT_BYTECOUNT = "Bytes in: %s out %s" needs translation.

Signed-off-by: Selva Nair <selva.nair@gmail.com>
pull/214/head
Selva Nair 2018-01-28 11:41:57 -05:00 committed by Samuli Seppänen
parent 105e022f7b
commit ecb8e50c0f
21 changed files with 109 additions and 2 deletions

View File

@ -42,6 +42,9 @@
#define ID_DISCONNECT 163
#define ID_RESTART 164
#define ID_HIDE 165
#define ID_TXT_VERSION 166
#define ID_TXT_BYTECOUNT 168
#define ID_TXT_IP 169
/* Change Passphrase Dialog */
#define ID_DLG_CHGPASS 170
@ -205,6 +208,7 @@
#define IDS_ERR_CONFIG_TRY_AUTHORIZE 1255
#define IDS_NFO_CONFIG_AUTH_PENDING 1256
#define IDS_ERR_ADD_USER_TO_ADMIN_GROUP 1257
#define IDS_NFO_BYTECOUNT 1258
/* Program Startup Related */
#define IDS_ERR_OPEN_DEBUG_FILE 1301

View File

@ -293,6 +293,7 @@ OnStateChange(connection_t *c, char *data)
SetTrayIcon(connected);
SetDlgItemText(c->hwndStatus, ID_TXT_STATUS, LoadLocalizedString(IDS_NFO_STATE_CONNECTED));
SetDlgItemTextW(c->hwndStatus, ID_TXT_IP, ip_txt);
SetStatusWinIcon(c->hwndStatus, ID_ICO_CONNECTED);
/* Hide Status Window */
@ -318,6 +319,7 @@ OnStateChange(connection_t *c, char *data)
CheckAndSetTrayIcon();
SetDlgItemText(c->hwndStatus, ID_TXT_STATUS, LoadLocalizedString(IDS_NFO_STATE_RECONNECTING));
SetDlgItemTextW(c->hwndStatus, ID_TXT_IP, L"");
SetStatusWinIcon(c->hwndStatus, ID_ICO_CONNECTING);
}
}
@ -1158,6 +1160,36 @@ OnStop(connection_t *c, UNUSED char *msg)
}
}
/* Convert bytecount c to a human readable string.
* Input c converted to a string of the form "nnn.. (xxx.y XiB)"
* where X is K, M, G, T, P or E depending on the count. The result
* is returned in buf up to max of len - 1 wide characters.
* Return value: pointer to buf.
*/
static wchar_t *
format_bytecount(wchar_t *buf, size_t len, unsigned long long c)
{
const char *suf[] = {"B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", NULL};
const char **s = suf;
double x = c;
if (c <= 1024)
{
swprintf(buf, len, L"%I64u B", c, *s);
buf[len-1] = L'\0';
return buf;
}
while (x > 1024 && *(s+1))
{
x /= 1024.0;
s++;
}
swprintf(buf, len, L"%I64u (%.1f %hs)", c, x, *s);
buf[len-1] = L'\0';
return buf;
}
/*
* Handle bytecount report from OpenVPN
* Expect bytes-in,bytes-out
@ -1166,6 +1198,11 @@ void OnByteCount(connection_t *c, char *msg)
{
if (!msg || sscanf(msg, "%I64u,%I64u", &c->bytes_in, &c->bytes_out) != 2)
return;
wchar_t in[32], out[32];
format_bytecount(in, _countof(in), c->bytes_in);
format_bytecount(out, _countof(out), c->bytes_out);
SetDlgItemTextW(c->hwndStatus, ID_TXT_BYTECOUNT,
LoadLocalizedString(IDS_NFO_BYTECOUNT, in, out));
}
/*
@ -1518,8 +1555,11 @@ Cleanup (connection_t *c)
void
RenderStatusWindow(HWND hwndDlg, UINT w, UINT h)
{
MoveWindow(GetDlgItem(hwndDlg, ID_EDT_LOG), DPI_SCALE(20), DPI_SCALE(25), w - DPI_SCALE(40), h - DPI_SCALE(70), TRUE);
MoveWindow(GetDlgItem(hwndDlg, ID_TXT_STATUS), DPI_SCALE(20), DPI_SCALE(5), w - DPI_SCALE(25), DPI_SCALE(15), TRUE);
MoveWindow(GetDlgItem(hwndDlg, ID_EDT_LOG), DPI_SCALE(20), DPI_SCALE(25), w - DPI_SCALE(40), h - DPI_SCALE(110), TRUE);
MoveWindow(GetDlgItem(hwndDlg, ID_TXT_STATUS), DPI_SCALE(20), DPI_SCALE(5), w-DPI_SCALE(30), DPI_SCALE(15), TRUE);
MoveWindow(GetDlgItem(hwndDlg, ID_TXT_IP), DPI_SCALE(20), h - DPI_SCALE(75), w-DPI_SCALE(30), DPI_SCALE(15), TRUE);
MoveWindow(GetDlgItem(hwndDlg, ID_TXT_BYTECOUNT), DPI_SCALE(20), h - DPI_SCALE(55), w-DPI_SCALE(210), DPI_SCALE(15), TRUE);
MoveWindow(GetDlgItem(hwndDlg, ID_TXT_VERSION), w-DPI_SCALE(180), h - DPI_SCALE(55), DPI_SCALE(170), DPI_SCALE(15), TRUE);
MoveWindow(GetDlgItem(hwndDlg, ID_DISCONNECT), DPI_SCALE(20), h - DPI_SCALE(30), DPI_SCALE(110), DPI_SCALE(23), TRUE);
MoveWindow(GetDlgItem(hwndDlg, ID_RESTART), DPI_SCALE(145), h - DPI_SCALE(30), DPI_SCALE(110), DPI_SCALE(23), TRUE);
MoveWindow(GetDlgItem(hwndDlg, ID_HIDE), w - DPI_SCALE(130), h - DPI_SCALE(30), DPI_SCALE(110), DPI_SCALE(23), TRUE);
@ -1571,6 +1611,11 @@ StatusDialogFunc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
if (SendMessage(hLogWnd, EM_SETCHARFORMAT, SCF_DEFAULT, (LPARAM) &cfm) == 0)
ShowLocalizedMsg(IDS_ERR_SET_SIZE);
/* display version string as "OpenVPN GUI gui_version/core_version" */
wchar_t version[256];
_sntprintf_0(version, L"%S %S/%S", PACKAGE_NAME, PACKAGE_VERSION_RESOURCE_STR, o.ovpn_version)
SetDlgItemText(hwndDlg, ID_TXT_VERSION, version);
/* Set size and position of controls */
RECT rect;
GetClientRect(hwndDlg, &rect);

View File

@ -95,6 +95,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
BEGIN
LTEXT "Připojování…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "Odpojit", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "Restartovat", ID_RESTART, 150, 190, 50, 14
PUSHBUTTON "Skrýt", ID_HIDE, 100, 190, 50, 14

View File

@ -95,6 +95,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT
BEGIN
LTEXT "Die Verbindung wird hergestellt…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "Trennen", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "Neu Verbinden", ID_RESTART, 150, 190, 50, 14
PUSHBUTTON "Minimieren", ID_HIDE, 100, 190, 50, 14

View File

@ -96,6 +96,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
BEGIN
LTEXT "Forbinder til…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "Afbryd", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "Tilslut igen", ID_RESTART, 150, 190, 40, 14
PUSHBUTTON "Skjul", ID_HIDE, 100, 190, 40, 14

View File

@ -95,6 +95,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
BEGIN
LTEXT "Connecting…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "Disconnect", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "Reconnect", ID_RESTART, 150, 190, 50, 14
PUSHBUTTON "Hide", ID_HIDE, 100, 190, 50, 14
@ -473,5 +476,6 @@ BEGIN
IDS_ERR_INVALID_USERNAME_INPUT "Invalid character in username"
IDS_NFO_AUTO_CONNECT "Connecting automatically in %u seconds..."
IDS_NFO_CLICK_HERE_TO_START "OpenVPN GUI is already running. Right click on the tray icon to start."
IDS_NFO_BYTECOUNT "Bytes in: %s out: %s"
END

View File

@ -94,6 +94,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_SPANISH, SUBLANG_DEFAULT
BEGIN
LTEXT "Conectando…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "Desconectar", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "Reconectar", ID_RESTART, 150, 190, 50, 14
PUSHBUTTON "Ocultar", ID_HIDE, 100, 190, 50, 14

View File

@ -95,6 +95,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT
BEGIN
LTEXT "Yhdistetään…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "Katkaise yhteys", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "Yhdistä uudelleen", ID_RESTART, 150, 190, 50, 14
PUSHBUTTON "Piilota", ID_HIDE, 100, 190, 50, 14

View File

@ -94,6 +94,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_FRENCH, SUBLANG_DEFAULT
BEGIN
LTEXT "Connexion…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "Déconnecter", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "Reconnecter", ID_RESTART, 150, 190, 50, 14
PUSHBUTTON "Fermer", ID_HIDE, 100, 190, 50, 14

View File

@ -94,6 +94,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_ITALIAN, SUBLANG_DEFAULT
BEGIN
LTEXT "Connessione in corso…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "Disconnetti", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "Riconnetti", ID_RESTART, 150, 190, 50, 14
PUSHBUTTON "Nascondi", ID_HIDE, 100, 190, 50, 14

View File

@ -96,6 +96,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
BEGIN
LTEXT "接続中…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "切断", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "再接続", ID_RESTART, 150, 190, 50, 14
PUSHBUTTON "隠す", ID_HIDE, 100, 190, 50, 14

View File

@ -96,6 +96,9 @@ FONT 9, "맑은 고딕"
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
BEGIN
LTEXT "연결중…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "연결해제", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "재연결", ID_RESTART, 150, 190, 50, 14
PUSHBUTTON "숨기기", ID_HIDE, 100, 190, 50, 14

View File

@ -94,6 +94,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
BEGIN
LTEXT "Verbinden…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "Verbreken", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "Opnieuw verbinden", ID_RESTART, 150, 190, 50, 14
PUSHBUTTON "Verbergen", ID_HIDE, 100, 190, 50, 14

View File

@ -95,6 +95,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_NORWEGIAN, SUBLANG_DEFAULT
BEGIN
LTEXT "Kobler til…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "Koble fra", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "Koble til på nytt", ID_RESTART, 150, 190, 40, 14
PUSHBUTTON "Skjul", ID_HIDE, 100, 190, 40, 14

View File

@ -96,6 +96,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
BEGIN
LTEXT "Łączenie…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "Rozłącz", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "Poł. Ponownie", ID_RESTART, 150, 190, 50, 14
PUSHBUTTON "Ukryj", ID_HIDE, 100, 190, 50, 14

View File

@ -94,6 +94,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_PORTUGUESE, SUBLANG_DEFAULT
BEGIN
LTEXT "Conectando…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "Desconectar", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "Reconectar", ID_RESTART, 150, 190, 50, 14
PUSHBUTTON "Ocultar", ID_HIDE, 100, 190, 50, 14

View File

@ -96,6 +96,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
BEGIN
LTEXT "Подключение…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "Отключиться", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "Переподключиться", ID_RESTART, 150, 190, 70, 14
PUSHBUTTON "Скрыть", ID_HIDE, 100, 190, 50, 14

View File

@ -94,6 +94,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
BEGIN
LTEXT "Ansluter…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "Koppla ner", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "Återanslut", ID_RESTART, 150, 190, 40, 14
PUSHBUTTON "Göm", ID_HIDE, 100, 190, 40, 14

View File

@ -96,6 +96,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
BEGIN
LTEXT "Bağlanıyor…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "Bağlantıyı Kes", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "Yeniden Bağlan", ID_RESTART, 150, 190, 50, 14
PUSHBUTTON "Gizle", ID_HIDE, 100, 190, 50, 14

View File

@ -94,6 +94,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
BEGIN
LTEXT "Підключення…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "Від'єднати", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "З'єднатися знову", ID_RESTART, 150, 190, 70, 14
PUSHBUTTON "Звернути", ID_HIDE, 100, 190, 50, 14

View File

@ -97,6 +97,9 @@ FONT 8, "Microsoft Sans Serif"
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
BEGIN
LTEXT "連線中…", ID_TXT_STATUS, 20, 5, 200, 10
LTEXT "", ID_TXT_BYTECOUNT, 20, 175, 200, 10
LTEXT "OpenVPN GUI 11.y.0.0/2.4.x", ID_TXT_VERSION, 220, 175, 150, 10
LTEXT "", ID_TXT_IP, 20, 160, 300, 10
PUSHBUTTON "斷線", ID_DISCONNECT, 50, 190, 50, 14
PUSHBUTTON "重新連線", ID_RESTART, 150, 190, 50, 14
PUSHBUTTON "隱藏", ID_HIDE, 100, 190, 50, 14