530 |
virtual bool dispatch(int message, int wParam, long lParam) { |
virtual bool dispatch(int message, int wParam, long lParam) { |
531 |
if (message == WM_COMMAND && wParam == MAKEWPARAM(IDC_REFER, BN_CLICKED)) { |
if (message == WM_COMMAND && wParam == MAKEWPARAM(IDC_REFER, BN_CLICKED)) { |
532 |
char buffer[1024]; |
char buffer[1024]; |
533 |
|
char uimsg[MAX_UIMSG]; |
534 |
OPENFILENAME ofn = { |
OPENFILENAME ofn = { |
535 |
sizeof ofn, |
sizeof ofn, |
536 |
*this, |
*this, |
538 |
ofn.lpstrFile = buffer; |
ofn.lpstrFile = buffer; |
539 |
ofn.nMaxFile = countof(buffer); |
ofn.nMaxFile = countof(buffer); |
540 |
ofn.Flags = OFN_LONGNAMES | OFN_NONETWORKBUTTON | OFN_PATHMUSTEXIST | OFN_NOREADONLYRETURN | OFN_HIDEREADONLY; |
ofn.Flags = OFN_LONGNAMES | OFN_NONETWORKBUTTON | OFN_PATHMUSTEXIST | OFN_NOREADONLYRETURN | OFN_HIDEREADONLY; |
541 |
static String title = Resource::loadString(IDS_LOGFILE_SELECT); |
UTIL_get_lang_msg("MSG_LOGFILE_SELECT", uimsg, sizeof(uimsg), |
542 |
ofn.lpstrTitle = title; |
"Select Logfile"); |
543 |
|
ofn.lpstrTitle = uimsg; |
544 |
if (logfile != NULL) { |
if (logfile != NULL) { |
545 |
strcpy_s(buffer, sizeof buffer, logfile); |
strcpy_s(buffer, sizeof buffer, logfile); |
546 |
}else{ |
}else{ |
559 |
return Dialog::dispatch(message, wParam, lParam); |
return Dialog::dispatch(message, wParam, lParam); |
560 |
} |
} |
561 |
virtual bool onInitDialog() { |
virtual bool onInitDialog() { |
562 |
|
char uimsg[MAX_UIMSG], uitmp[MAX_UIMSG]; |
563 |
|
|
564 |
Dialog::onInitDialog(); |
Dialog::onInitDialog(); |
565 |
|
|
566 |
|
GetWindowText(uitmp, sizeof(uitmp)); |
567 |
|
UTIL_get_lang_msg("DLG_OTHER_TITLE", uimsg, sizeof(uimsg), uitmp); |
568 |
|
SetWindowText(uimsg); |
569 |
|
GetDlgItemText(IDC_GRP_COMMON, uitmp, sizeof(uitmp)); |
570 |
|
UTIL_get_lang_msg("DLG_OTHER_COMMON", uimsg, sizeof(uimsg), uitmp); |
571 |
|
SetDlgItemText(IDC_GRP_COMMON, uimsg); |
572 |
|
GetDlgItemText(IDC_TIMEOUT_LABEL, uitmp, sizeof(uitmp)); |
573 |
|
UTIL_get_lang_msg("DLG_OTHER_TIMEOUT", uimsg, sizeof(uimsg), uitmp); |
574 |
|
SetDlgItemText(IDC_TIMEOUT_LABEL, uimsg); |
575 |
|
GetDlgItemText(IDC_TIMEOUT_SECONDS, uitmp, sizeof(uitmp)); |
576 |
|
UTIL_get_lang_msg("DLG_OTHER_SECOND", uimsg, sizeof(uimsg), uitmp); |
577 |
|
SetDlgItemText(IDC_TIMEOUT_SECONDS, uimsg); |
578 |
|
GetDlgItemText(IDC_LOGFILE_LABEL, uitmp, sizeof(uitmp)); |
579 |
|
UTIL_get_lang_msg("DLG_OTHER_LOG", uimsg, sizeof(uimsg), uitmp); |
580 |
|
SetDlgItemText(IDC_LOGFILE_LABEL, uimsg); |
581 |
|
GetDlgItemText(IDC_REFER, uitmp, sizeof(uitmp)); |
582 |
|
UTIL_get_lang_msg("DLG_OTHER_REFER", uimsg, sizeof(uimsg), uitmp); |
583 |
|
SetDlgItemText(IDC_REFER, uimsg); |
584 |
|
GetDlgItemText(IDC_GRP_SOCKS, uitmp, sizeof(uitmp)); |
585 |
|
UTIL_get_lang_msg("DLG_OTHER_SOCKS", uimsg, sizeof(uimsg), uitmp); |
586 |
|
SetDlgItemText(IDC_GRP_SOCKS, uimsg); |
587 |
|
GetDlgItemText(IDC_RESOLVE_LABEL, uitmp, sizeof(uitmp)); |
588 |
|
UTIL_get_lang_msg("DLG_OTHER_RESOLV", uimsg, sizeof(uimsg), uitmp); |
589 |
|
SetDlgItemText(IDC_RESOLVE_LABEL, uimsg); |
590 |
|
GetDlgItemText(IDC_GRP_TELNET, uitmp, sizeof(uitmp)); |
591 |
|
UTIL_get_lang_msg("DLG_OTHER_TELNET", uimsg, sizeof(uimsg), uitmp); |
592 |
|
SetDlgItemText(IDC_GRP_TELNET, uimsg); |
593 |
|
GetDlgItemText(IDC_HOSTNAME_LABEL, uitmp, sizeof(uitmp)); |
594 |
|
UTIL_get_lang_msg("DLG_OTHER_HOST", uimsg, sizeof(uimsg), uitmp); |
595 |
|
SetDlgItemText(IDC_HOSTNAME_LABEL, uimsg); |
596 |
|
GetDlgItemText(IDC_USERNAME_LABEL, uitmp, sizeof(uitmp)); |
597 |
|
UTIL_get_lang_msg("DLG_OTHER_USER", uimsg, sizeof(uimsg), uitmp); |
598 |
|
SetDlgItemText(IDC_USERNAME_LABEL, uimsg); |
599 |
|
GetDlgItemText(IDC_PASSWORD_LABEL, uitmp, sizeof(uitmp)); |
600 |
|
UTIL_get_lang_msg("DLG_OTHER_PASS", uimsg, sizeof(uimsg), uitmp); |
601 |
|
SetDlgItemText(IDC_PASSWORD_LABEL, uimsg); |
602 |
|
GetDlgItemText(IDC_CONNECTED_LABEL, uitmp, sizeof(uitmp)); |
603 |
|
UTIL_get_lang_msg("DLG_OTHER_CONNECT", uimsg, sizeof(uimsg), uitmp); |
604 |
|
SetDlgItemText(IDC_CONNECTED_LABEL, uimsg); |
605 |
|
GetDlgItemText(IDC_ERROR_LABEL, uitmp, sizeof(uitmp)); |
606 |
|
UTIL_get_lang_msg("DLG_OTHER_ERROR", uimsg, sizeof(uimsg), uitmp); |
607 |
|
SetDlgItemText(IDC_ERROR_LABEL, uimsg); |
608 |
|
GetDlgItemText(IDOK, uitmp, sizeof(uitmp)); |
609 |
|
UTIL_get_lang_msg("BTN_OK", uimsg, sizeof(uimsg), uitmp); |
610 |
|
SetDlgItemText(IDOK, uimsg); |
611 |
|
GetDlgItemText(IDCANCEL, uitmp, sizeof(uitmp)); |
612 |
|
UTIL_get_lang_msg("BTN_CANCEL", uimsg, sizeof(uimsg), uitmp); |
613 |
|
SetDlgItemText(IDCANCEL, uimsg); |
614 |
|
|
615 |
host = GetDlgItem(IDC_HOSTNAME); |
host = GetDlgItem(IDC_HOSTNAME); |
616 |
user = GetDlgItem(IDC_USERNAME); |
user = GetDlgItem(IDC_USERNAME); |
617 |
pass = GetDlgItem(IDC_PASSWORD); |
pass = GetDlgItem(IDC_PASSWORD); |
622 |
SetDlgItemInt(IDC_TIMEOUT, timeout, false); |
SetDlgItemInt(IDC_TIMEOUT, timeout, false); |
623 |
|
|
624 |
resolveCombo <<= GetDlgItem(IDC_RESOLVE); |
resolveCombo <<= GetDlgItem(IDC_RESOLVE); |
625 |
resolveCombo.addString(instance().loadString(IDS_RESOLVE_AUTO)); |
UTIL_get_lang_msg("DLG_OTHER_RESOLV_AUTO", uimsg, sizeof(uimsg), "auto resolve"); |
626 |
resolveCombo.addString(instance().loadString(IDS_RESOLVE_REMOTE)); |
resolveCombo.addString(uimsg); |
627 |
resolveCombo.addString(instance().loadString(IDS_RESOLVE_LOCAL)); |
UTIL_get_lang_msg("DLG_OTHER_RESOLV_REMOTE", uimsg, sizeof(uimsg), "resolve remote"); |
628 |
|
resolveCombo.addString(uimsg); |
629 |
|
UTIL_get_lang_msg("DLG_OTHER_RESOLV_LOCAL", uimsg, sizeof(uimsg), "resolve local"); |
630 |
|
resolveCombo.addString(uimsg); |
631 |
resolveCombo.setCurSel(resolve); |
resolveCombo.setCurSel(resolve); |
632 |
|
|
633 |
host.SetWindowText(HostnamePrompt); |
host.SetWindowText(HostnamePrompt); |
647 |
|| pass.GetWindowTextLength() == 0 |
|| pass.GetWindowTextLength() == 0 |
648 |
|| conn.GetWindowTextLength() == 0 |
|| conn.GetWindowTextLength() == 0 |
649 |
|| erro.GetWindowTextLength() == 0) { |
|| erro.GetWindowTextLength() == 0) { |
650 |
MessageBox(instance().loadString(IDS_EMPTY_PARAMETER), FileVersion::getOwnVersion().getProductName(), MB_OK | MB_ICONERROR); |
char uimsg[MAX_UIMSG]; |
651 |
|
UTIL_get_lang_msg("MSG_EMPTY_PARAMETER", uimsg, sizeof(uimsg), |
652 |
|
"Some parameters are empty!"); |
653 |
|
MessageBox(uimsg, FileVersion::getOwnVersion().getProductName(), MB_OK | MB_ICONERROR); |
654 |
return; |
return; |
655 |
} |
} |
656 |
|
|
714 |
return Dialog::dispatch(message, wParam, lParam); |
return Dialog::dispatch(message, wParam, lParam); |
715 |
} |
} |
716 |
virtual bool onInitDialog() { |
virtual bool onInitDialog() { |
717 |
|
char uimsg[MAX_UIMSG], uitmp[MAX_UIMSG]; |
718 |
|
|
719 |
Dialog::onInitDialog(); |
Dialog::onInitDialog(); |
720 |
|
|
721 |
|
GetWindowText(uitmp, sizeof(uitmp)); |
722 |
|
UTIL_get_lang_msg("DLG_SETUP_TITLE", uimsg, sizeof(uimsg), uitmp); |
723 |
|
SetWindowText(uimsg); |
724 |
|
GetDlgItemText(IDC_URL_LABEL, uitmp, sizeof(uitmp)); |
725 |
|
UTIL_get_lang_msg("DLG_SETUP_URL", uimsg, sizeof(uimsg), uitmp); |
726 |
|
SetDlgItemText(IDC_URL_LABEL, uimsg); |
727 |
|
GetDlgItemText(IDC_TYPE_LEBEL, uitmp, sizeof(uitmp)); |
728 |
|
UTIL_get_lang_msg("DLG_SETUP_TYPE", uimsg, sizeof(uimsg), uitmp); |
729 |
|
SetDlgItemText(IDC_TYPE_LEBEL, uimsg); |
730 |
|
GetDlgItemText(IDC_HOSTNAME_LABEL, uitmp, sizeof(uitmp)); |
731 |
|
UTIL_get_lang_msg("DLG_SETUP_HOST", uimsg, sizeof(uimsg), uitmp); |
732 |
|
SetDlgItemText(IDC_HOSTNAME_LABEL, uimsg); |
733 |
|
GetDlgItemText(IDC_PORT_LABEL, uitmp, sizeof(uitmp)); |
734 |
|
UTIL_get_lang_msg("DLG_SETUP_PORT", uimsg, sizeof(uimsg), uitmp); |
735 |
|
SetDlgItemText(IDC_PORT_LABEL, uimsg); |
736 |
|
GetDlgItemText(IDC_USERNAME_LABEL, uitmp, sizeof(uitmp)); |
737 |
|
UTIL_get_lang_msg("DLG_SETUP_USER", uimsg, sizeof(uimsg), uitmp); |
738 |
|
SetDlgItemText(IDC_USERNAME_LABEL, uimsg); |
739 |
|
GetDlgItemText(IDC_PASSWORD_LABEL, uitmp, sizeof(uitmp)); |
740 |
|
UTIL_get_lang_msg("DLG_SETUP_PASS", uimsg, sizeof(uimsg), uitmp); |
741 |
|
SetDlgItemText(IDC_PASSWORD_LABEL, uimsg); |
742 |
|
GetDlgItemText(IDC_OPTIONS, uitmp, sizeof(uitmp)); |
743 |
|
UTIL_get_lang_msg("DLG_SETUP_OTHER", uimsg, sizeof(uimsg), uitmp); |
744 |
|
SetDlgItemText(IDC_OPTIONS, uimsg); |
745 |
|
GetDlgItemText(IDOK, uitmp, sizeof(uitmp)); |
746 |
|
UTIL_get_lang_msg("BTN_OK", uimsg, sizeof(uimsg), uitmp); |
747 |
|
SetDlgItemText(IDOK, uimsg); |
748 |
|
GetDlgItemText(IDCANCEL, uitmp, sizeof(uitmp)); |
749 |
|
UTIL_get_lang_msg("BTN_CANCEL", uimsg, sizeof(uimsg), uitmp); |
750 |
|
SetDlgItemText(IDCANCEL, uimsg); |
751 |
|
|
752 |
url <<= GetDlgItem(IDC_URL); |
url <<= GetDlgItem(IDC_URL); |
753 |
type <<= GetDlgItem(IDC_TYPE); |
type <<= GetDlgItem(IDC_TYPE); |
754 |
host <<= GetDlgItem(IDC_HOSTNAME); |
host <<= GetDlgItem(IDC_HOSTNAME); |
757 |
pass <<= GetDlgItem(IDC_PASSWORD); |
pass <<= GetDlgItem(IDC_PASSWORD); |
758 |
|
|
759 |
lock = true; |
lock = true; |
760 |
type.addString(instance().loadString(IDS_TYPE_NONE)); |
UTIL_get_lang_msg("MSG_TYPE_NONE", uimsg, sizeof(uimsg), "Without Proxy"); |
761 |
|
type.addString(uimsg); |
762 |
type.addString("HTTP"); |
type.addString("HTTP"); |
763 |
type.addString("TELNET"); |
type.addString("TELNET"); |
764 |
type.addString("SOCKS4"); |
type.addString("SOCKS4"); |
791 |
return true; |
return true; |
792 |
} |
} |
793 |
virtual void onOK() { |
virtual void onOK() { |
794 |
|
char uimsg[MAX_UIMSG]; |
795 |
if (proxy.type != ProxyInfo::TYPE_NONE || proxy.type != ProxyInfo::TYPE_SSL) { |
if (proxy.type != ProxyInfo::TYPE_NONE || proxy.type != ProxyInfo::TYPE_SSL) { |
796 |
if (proxy.host == NULL) { |
if (proxy.host == NULL) { |
797 |
MessageBox(instance().loadString(IDS_EMPTY_HOSTNAME), FileVersion::getOwnVersion().getProductName(), MB_OK | MB_ICONERROR); |
UTIL_get_lang_msg("MSG_EMPTY_HOSTNAME", uimsg, sizeof(uimsg), |
798 |
|
"Hostname is empty!"); |
799 |
|
MessageBox(uimsg, FileVersion::getOwnVersion().getProductName(), MB_OK | MB_ICONERROR); |
800 |
return; |
return; |
801 |
} |
} |
802 |
if (port.GetWindowTextLength() != 0 && proxy.port <= 0) { |
if (port.GetWindowTextLength() != 0 && proxy.port <= 0) { |
803 |
MessageBox(instance().loadString(IDS_ILLEGAL_PORT), FileVersion::getOwnVersion().getProductName(), MB_OK | MB_ICONERROR); |
UTIL_get_lang_msg("MSG_ILLEGAL_PORT", uimsg, sizeof(uimsg), |
804 |
|
"Illegal port number!"); |
805 |
|
MessageBox(uimsg, FileVersion::getOwnVersion().getProductName(), MB_OK | MB_ICONERROR); |
806 |
return; |
return; |
807 |
} |
} |
808 |
} |
} |
1132 |
} |
} |
1133 |
} while (strcmp(buf,"\r\n") != 0); |
} while (strcmp(buf,"\r\n") != 0); |
1134 |
if (status_code != 200) { |
if (status_code != 200) { |
1135 |
int msgid; |
char uimsg[MAX_UIMSG]; |
1136 |
switch (status_code) { |
switch (status_code) { |
1137 |
case 401: |
case 401: |
1138 |
case 407: |
case 407: |
1139 |
msgid = IDS_PROXY_UNAUTHORIZED; |
UTIL_get_lang_msg("MSG_PROXY_UNAUTHORIZED", uimsg, sizeof(uimsg), |
1140 |
|
"Proxy authorization failed!"); |
1141 |
break; |
break; |
1142 |
case 400: |
case 400: |
1143 |
case 405: |
case 405: |
1144 |
case 406: |
case 406: |
1145 |
case 403: |
case 403: |
1146 |
msgid = IDS_PROXY_BAD_REQUEST; |
UTIL_get_lang_msg("MSG_PROXY_BAD_REQUEST", uimsg, sizeof(uimsg), |
1147 |
|
"Proxy prevent this connection!"); |
1148 |
break; |
break; |
1149 |
} |
} |
1150 |
return setError(s, msgid); |
return setError(s, uimsg); |
1151 |
} |
} |
1152 |
return 0; |
return 0; |
1153 |
} |
} |
1187 |
int auth_result; |
int auth_result; |
1188 |
unsigned char buf[256]; |
unsigned char buf[256]; |
1189 |
unsigned char* ptr = buf; |
unsigned char* ptr = buf; |
1190 |
|
char uimsg[MAX_UIMSG]; |
1191 |
*ptr++ = SOCKS5_VERSION; |
*ptr++ = SOCKS5_VERSION; |
1192 |
if (proxy.user != NULL && proxy.pass != NULL) { |
if (proxy.user != NULL && proxy.pass != NULL) { |
1193 |
*ptr++ = 2; // support 2 auth methods : SOCKS5_AUTH_NOAUTH, SOCKS5_AUTH_USERPASS |
*ptr++ = 2; // support 2 auth methods : SOCKS5_AUTH_NOAUTH, SOCKS5_AUTH_USERPASS |
1203 |
return SOCKET_ERROR; |
return SOCKET_ERROR; |
1204 |
|
|
1205 |
if (buf[0] != SOCKS5_VERSION || buf[1] == SOCKS5_REJECT) { |
if (buf[0] != SOCKS5_VERSION || buf[1] == SOCKS5_REJECT) { |
1206 |
return setError(s, IDS_PROXY_BAD_REQUEST); |
char uimsg[MAX_UIMSG]; |
1207 |
|
UTIL_get_lang_msg("MSG_PROXY_BAD_REQUEST", uimsg, sizeof(uimsg), |
1208 |
|
"Proxy prevent this connection!"); |
1209 |
|
return setError(s, uimsg); |
1210 |
} |
} |
1211 |
auth_method = buf[1]; |
auth_method = buf[1]; |
1212 |
|
|
1239 |
auth_result = buf[1] != 0; |
auth_result = buf[1] != 0; |
1240 |
break; |
break; |
1241 |
default: |
default: |
1242 |
return setError(s, IDS_PROXY_BAD_REQUEST); |
UTIL_get_lang_msg("MSG_PROXY_BAD_REQUEST", uimsg, sizeof(uimsg), |
1243 |
|
"Proxy prevent this connection!"); |
1244 |
|
return setError(s, uimsg); |
1245 |
} |
} |
1246 |
if (auth_result == SOCKET_ERROR) { |
if (auth_result == SOCKET_ERROR) { |
1247 |
return SOCKET_ERROR; |
return SOCKET_ERROR; |
1248 |
}else if (auth_result != 0) { |
}else if (auth_result != 0) { |
1249 |
return setError(s, IDS_PROXY_UNAUTHORIZED); |
UTIL_get_lang_msg("MSG_PROXY_UNAUTHORIZED", uimsg, sizeof(uimsg), |
1250 |
|
"Proxy authorization failed!"); |
1251 |
|
return setError(s, uimsg); |
1252 |
} |
} |
1253 |
/* request to connect */ |
/* request to connect */ |
1254 |
ptr = buf; |
ptr = buf; |
1298 |
if (recieveFromSocket(s, buf, 4) == SOCKET_ERROR) |
if (recieveFromSocket(s, buf, 4) == SOCKET_ERROR) |
1299 |
return SOCKET_ERROR; |
return SOCKET_ERROR; |
1300 |
if (buf[0] != SOCKS5_VERSION || buf[1] != SOCKS5_REP_SUCCEEDED) { /* check reply code */ |
if (buf[0] != SOCKS5_VERSION || buf[1] != SOCKS5_REP_SUCCEEDED) { /* check reply code */ |
1301 |
return setError(s, IDS_PROXY_BAD_REQUEST); |
UTIL_get_lang_msg("MSG_PROXY_BAD_REQUEST", uimsg, sizeof(uimsg), |
1302 |
|
"Proxy prevent this connection!"); |
1303 |
|
return setError(s, uimsg); |
1304 |
} |
} |
1305 |
// buf[2] is reserved |
// buf[2] is reserved |
1306 |
switch (buf[3]) { /* case by ATYP */ |
switch (buf[3]) { /* case by ATYP */ |
1396 |
if (recieveFromSocket(s, buf, 8) == SOCKET_ERROR) { |
if (recieveFromSocket(s, buf, 8) == SOCKET_ERROR) { |
1397 |
return SOCKET_ERROR; |
return SOCKET_ERROR; |
1398 |
} |
} |
1399 |
int messageid = 0; |
char uimsg[MAX_UIMSG]; |
1400 |
|
uimsg[0] = NULL; |
1401 |
if (buf[0] != 0) { |
if (buf[0] != 0) { |
1402 |
messageid = IDS_PROXY_BAD_REQUEST; |
UTIL_get_lang_msg("MSG_PROXY_BAD_REQUEST", uimsg, sizeof(uimsg), |
1403 |
|
"Proxy prevent this connection!"); |
1404 |
}else if (buf[1] == SOCKS4_REP_IDENT_FAIL || buf[1] == SOCKS4_REP_USERID) { |
}else if (buf[1] == SOCKS4_REP_IDENT_FAIL || buf[1] == SOCKS4_REP_USERID) { |
1405 |
messageid = IDS_PROXY_UNAUTHORIZED; |
UTIL_get_lang_msg("MSG_PROXY_UNAUTHORIZED", uimsg, sizeof(uimsg), |
1406 |
|
"Proxy authorization failed!"); |
1407 |
}else if (buf[1] != SOCKS4_REP_SUCCEEDED) { |
}else if (buf[1] != SOCKS4_REP_SUCCEEDED) { |
1408 |
messageid = IDS_PROXY_BAD_REQUEST; |
UTIL_get_lang_msg("MSG_PROXY_BAD_REQUEST", uimsg, sizeof(uimsg), |
1409 |
|
"Proxy prevent this connection!"); |
1410 |
} |
} |
1411 |
if (messageid != 0) { |
if (uimsg[0] != NULL) { |
1412 |
return setError(s, messageid); |
return setError(s, uimsg); |
1413 |
} |
} |
1414 |
|
|
1415 |
/* Conguraturation, connected via SOCKS4 server! */ |
/* Conguraturation, connected via SOCKS4 server! */ |
1418 |
|
|
1419 |
int begin_relay_telnet(ProxyInfo& proxy, String realhost, short realport, SOCKET s) { |
int begin_relay_telnet(ProxyInfo& proxy, String realhost, short realport, SOCKET s) { |
1420 |
int err = 0; |
int err = 0; |
1421 |
|
char uimsg[MAX_UIMSG]; |
1422 |
|
|
1423 |
while (!err) { |
while (!err) { |
1424 |
switch (wait_for_prompt(s, prompt_table, countof(prompt_table), 10)) { |
switch (wait_for_prompt(s, prompt_table, countof(prompt_table), 10)) { |
1442 |
break; |
break; |
1443 |
} |
} |
1444 |
} |
} |
1445 |
return setError(s, IDS_PROXY_BAD_REQUEST); |
UTIL_get_lang_msg("MSG_PROXY_BAD_REQUEST", uimsg, sizeof(uimsg), |
1446 |
|
"Proxy prevent this connection!"); |
1447 |
|
return setError(s, uimsg); |
1448 |
} |
} |
1449 |
|
|
1450 |
String loadString(int id) { |
int setError(SOCKET s, char *p) { |
1451 |
return Resource::loadString(resource_module, id); |
if (*p != NULL) |
1452 |
} |
showMessage(p); |
|
int setError(SOCKET s, int id) { |
|
|
if (id != 0) |
|
|
showMessage(id); |
|
1453 |
HWND window; |
HWND window; |
1454 |
UINT message; |
UINT message; |
1455 |
long event; |
long event; |
1462 |
WSASetLastError(WSAECONNREFUSED); |
WSASetLastError(WSAECONNREFUSED); |
1463 |
return SOCKET_ERROR; |
return SOCKET_ERROR; |
1464 |
} |
} |
1465 |
void showMessage(int id) { |
void showMessage(char *p) { |
1466 |
if (shower != NULL) { |
if (shower != NULL) { |
1467 |
shower->showMessage(loadString(id)); |
shower->showMessage(p); |
1468 |
} |
} |
1469 |
} |
} |
1470 |
|
|
1590 |
if (!ssl->connect(s, info->realhost)) { |
if (!ssl->connect(s, info->realhost)) { |
1591 |
shutdown(s, SD_BOTH); |
shutdown(s, SD_BOTH); |
1592 |
int error_code = ssl->get_verify_result(); |
int error_code = ssl->get_verify_result(); |
1593 |
|
char uimsg[MAX_UIMSG]; |
1594 |
delete ssl; |
delete ssl; |
1595 |
return setError(s, error_code); |
switch (error_code) { |
1596 |
|
case IDS_UNABLE_TO_GET_ISSUER_CERT: |
1597 |
|
UTIL_get_lang_msg("MSG_UNABLE_TO_GET_ISSUER_CERT", uimsg, sizeof(uimsg), |
1598 |
|
"Unable to get Issuer Certificate"); |
1599 |
|
case IDS_UNABLE_TO_GET_CRL: |
1600 |
|
UTIL_get_lang_msg("MSG_UNABLE_TO_GET_CRL", uimsg, sizeof(uimsg), |
1601 |
|
"Unable to get Ceritifcate CRL"); |
1602 |
|
case IDS_UNABLE_TO_DECRYPT_CERT_SIGNATURE: |
1603 |
|
UTIL_get_lang_msg("MSG_UNABLE_TO_DECRYPT_CERT_SIGNATURE", uimsg, sizeof(uimsg), |
1604 |
|
"Unable to decrypt Certificate's Signature"); |
1605 |
|
case IDS_UNABLE_TO_DECRYPT_CRL_SIGNATURE: |
1606 |
|
UTIL_get_lang_msg("MSG_UNABLE_TO_DECRYPT_CRL_SIGNATURE", uimsg, sizeof(uimsg), |
1607 |
|
"Unable to decrypt CRL's Signature"); |
1608 |
|
case IDS_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: |
1609 |
|
UTIL_get_lang_msg("MSG_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY", uimsg, sizeof(uimsg), |
1610 |
|
"Unable to decode Issuer Public Key"); |
1611 |
|
case IDS_CERT_SIGNATURE_FAILURE: |
1612 |
|
UTIL_get_lang_msg("MSG_CERT_SIGNATURE_FAILURE", uimsg, sizeof(uimsg), |
1613 |
|
"Certificate Signature failure"); |
1614 |
|
case IDS_CRL_SIGNATURE_FAILURE: |
1615 |
|
UTIL_get_lang_msg("MSG_CRL_SIGNATURE_FAILURE", uimsg, sizeof(uimsg), |
1616 |
|
"CRL Signature failure"); |
1617 |
|
case IDS_CERT_NOT_YET_VALID: |
1618 |
|
UTIL_get_lang_msg("MSG_CERT_NOT_YET_VALID", uimsg, sizeof(uimsg), |
1619 |
|
"Certificate is not yet valid"); |
1620 |
|
case IDS_CERT_HAS_EXPIRED: |
1621 |
|
UTIL_get_lang_msg("MSG_CERT_HAS_EXPIRED", uimsg, sizeof(uimsg), |
1622 |
|
"Certificate has expired"); |
1623 |
|
case IDS_CRL_NOT_YET_VALID: |
1624 |
|
UTIL_get_lang_msg("MSG_CRL_NOT_YET_VALID", uimsg, sizeof(uimsg), |
1625 |
|
"CRL is not yet valid"); |
1626 |
|
case IDS_CRL_HAS_EXPIRED: |
1627 |
|
UTIL_get_lang_msg("MSG_CRL_HAS_EXPIRED", uimsg, sizeof(uimsg), |
1628 |
|
"CRL has expired"); |
1629 |
|
case IDS_ERROR_IN_CERT_NOT_BEFORE_FIELD: |
1630 |
|
UTIL_get_lang_msg("MSG_ERROR_IN_CERT_NOT_BEFORE_FIELD", uimsg, sizeof(uimsg), |
1631 |
|
"Format error in Certificate's notBefore field"); |
1632 |
|
case IDS_ERROR_IN_CERT_NOT_AFTER_FIELD: |
1633 |
|
UTIL_get_lang_msg("MSG_ERROR_IN_CERT_NOT_AFTER_FIELD", uimsg, sizeof(uimsg), |
1634 |
|
"Format error in Certificate's notAfter field"); |
1635 |
|
case IDS_ERROR_IN_CRL_LAST_UPDATE_FIELD: |
1636 |
|
UTIL_get_lang_msg("MSG_ERROR_IN_CRL_LAST_UPDATE_FIELD", uimsg, sizeof(uimsg), |
1637 |
|
"Format error in CRL's lastUpdate field"); |
1638 |
|
case IDS_ERROR_IN_CRL_NEXT_UPDATE_FIELD: |
1639 |
|
UTIL_get_lang_msg("MSG_ERROR_IN_CRL_NEXT_UPDATE_FIELD", uimsg, sizeof(uimsg), |
1640 |
|
"Format error in CRL's nextUpdate field"); |
1641 |
|
case IDS_OUT_OF_MEM: |
1642 |
|
UTIL_get_lang_msg("MSG_OUT_OF_MEM", uimsg, sizeof(uimsg), |
1643 |
|
"Out of memory"); |
1644 |
|
case IDS_DEPTH_ZERO_SELF_SIGNED_CERT: |
1645 |
|
UTIL_get_lang_msg("MSG_DEPTH_ZERO_SELF_SIGNED_CERT", uimsg, sizeof(uimsg), |
1646 |
|
"Self-signed Certificate"); |
1647 |
|
case IDS_SELF_SIGNED_CERT_IN_CHAIN: |
1648 |
|
UTIL_get_lang_msg("MSG_SELF_SIGNED_CERT_IN_CHAIN", uimsg, sizeof(uimsg), |
1649 |
|
"Self-signed Certificate found in Certificate chain"); |
1650 |
|
case IDS_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: |
1651 |
|
UTIL_get_lang_msg("MSG_UNABLE_TO_GET_ISSUER_CERT_LOCALLY", uimsg, sizeof(uimsg), |
1652 |
|
"Unable to get Local Issuer Certificate"); |
1653 |
|
case IDS_UNABLE_TO_VERIFY_LEAF_SIGNATURE: |
1654 |
|
UTIL_get_lang_msg("MSG_UNABLE_TO_VERIFY_LEAF_SIGNATURE", uimsg, sizeof(uimsg), |
1655 |
|
"Unable to verify the first Certificate"); |
1656 |
|
case IDS_CERT_CHAIN_TOO_LONG: |
1657 |
|
UTIL_get_lang_msg("MSG_CERT_CHAIN_TOO_LONG", uimsg, sizeof(uimsg), |
1658 |
|
"Certificate chain too long"); |
1659 |
|
case IDS_CERT_REVOKED: |
1660 |
|
UTIL_get_lang_msg("MSG_CERT_REVOKED", uimsg, sizeof(uimsg), |
1661 |
|
"Certificate revoked"); |
1662 |
|
case IDS_INVALID_CA: |
1663 |
|
UTIL_get_lang_msg("MSG_INVALID_CA", uimsg, sizeof(uimsg), |
1664 |
|
"Invalid CA Certificate"); |
1665 |
|
case IDS_PATH_LENGTH_EXCEEDED: |
1666 |
|
UTIL_get_lang_msg("MSG_PATH_LENGTH_EXCEEDED", uimsg, sizeof(uimsg), |
1667 |
|
"Path length constraint exceeded"); |
1668 |
|
case IDS_INVALID_PURPOSE: |
1669 |
|
UTIL_get_lang_msg("MSG_INVALID_PURPOSE", uimsg, sizeof(uimsg), |
1670 |
|
"Unsupported Certificate purpose"); |
1671 |
|
case IDS_CERT_UNTRUSTED: |
1672 |
|
UTIL_get_lang_msg("MSG_CERT_UNTRUSTED", uimsg, sizeof(uimsg), |
1673 |
|
"Certificate not trusted"); |
1674 |
|
case IDS_CERT_REJECTED: |
1675 |
|
UTIL_get_lang_msg("MSG_CERT_REJECTED", uimsg, sizeof(uimsg), |
1676 |
|
"Certificate rejected"); |
1677 |
|
case IDS_SUBJECT_ISSUER_MISMATCH: |
1678 |
|
UTIL_get_lang_msg("MSG_SUBJECT_ISSUER_MISMATCH", uimsg, sizeof(uimsg), |
1679 |
|
"Subject Issuer mismatch"); |
1680 |
|
case IDS_AKID_SKID_MISMATCH: |
1681 |
|
UTIL_get_lang_msg("MSG_AKID_SKID_MISMATCH", uimsg, sizeof(uimsg), |
1682 |
|
"Authority and Subject Key Identifier mismatch"); |
1683 |
|
case IDS_AKID_ISSUER_SERIAL_MISMATCH: |
1684 |
|
UTIL_get_lang_msg("MSG_AKID_ISSUER_SERIAL_MISMATCH", uimsg, sizeof(uimsg), |
1685 |
|
"Authority and Issuer Serial Number mismatch"); |
1686 |
|
case IDS_KEYUSAGE_NO_CERTSIGN: |
1687 |
|
UTIL_get_lang_msg("MSG_KEYUSAGE_NO_CERTSIGN", uimsg, sizeof(uimsg), |
1688 |
|
"Key usage does not include Ceritifcate signing"); |
1689 |
|
case IDS_APPLICATION_VERIFICATION: |
1690 |
|
UTIL_get_lang_msg("MSG_APPLICATION_VERIFICATION", uimsg, sizeof(uimsg), |
1691 |
|
"Application verification failure"); |
1692 |
|
case IDS_UNMATCH_COMMON_NAME: |
1693 |
|
UTIL_get_lang_msg("MSG_UNMATCH_COMMON_NAME", uimsg, sizeof(uimsg), |
1694 |
|
"Umatch Common Name"); |
1695 |
|
case IDS_UNABLE_TO_GET_COMMON_NAME: |
1696 |
|
UTIL_get_lang_msg("MSG_UNABLE_TO_GET_COMMON_NAME", uimsg, sizeof(uimsg), |
1697 |
|
"Unable to get Common Name"); |
1698 |
|
default: |
1699 |
|
uimsg[0] = NULL; |
1700 |
|
} |
1701 |
|
return setError(s, uimsg); |
1702 |
} |
} |
1703 |
sslmap.put(s,ssl); |
sslmap.put(s,ssl); |
1704 |
} |
} |