diff options
-rwxr-xr-x | README.md | 2 | ||||
-rwxr-xr-x | src/yuzu/multiplayer/direct_connect.cpp | 21 | ||||
-rwxr-xr-x | src/yuzu/multiplayer/direct_connect.ui | 27 | ||||
-rwxr-xr-x | src/yuzu/multiplayer/validation.h | 16 |
4 files changed, 36 insertions, 30 deletions
@@ -1,7 +1,7 @@ | |||
1 | yuzu emulator early access | 1 | yuzu emulator early access |
2 | ============= | 2 | ============= |
3 | 3 | ||
4 | This is the source code for early-access 3325. | 4 | This is the source code for early-access 3326. |
5 | 5 | ||
6 | ## Legal Notice | 6 | ## Legal Notice |
7 | 7 | ||
diff --git a/src/yuzu/multiplayer/direct_connect.cpp b/src/yuzu/multiplayer/direct_connect.cpp index 4ceb33536..680a489b5 100755 --- a/src/yuzu/multiplayer/direct_connect.cpp +++ b/src/yuzu/multiplayer/direct_connect.cpp | |||
@@ -81,20 +81,13 @@ void DirectConnectWindow::Connect() { | |||
81 | } | 81 | } |
82 | } | 82 | } |
83 | } | 83 | } |
84 | switch (static_cast<ConnectionType>(ui->connection_type->currentIndex())) { | 84 | if (!ui->ip->hasAcceptableInput()) { |
85 | case ConnectionType::TraversalServer: | 85 | NetworkMessage::ErrorManager::ShowError(NetworkMessage::ErrorManager::IP_ADDRESS_NOT_VALID); |
86 | break; | 86 | return; |
87 | case ConnectionType::IP: | 87 | } |
88 | if (!ui->ip->hasAcceptableInput()) { | 88 | if (!ui->port->hasAcceptableInput()) { |
89 | NetworkMessage::ErrorManager::ShowError( | 89 | NetworkMessage::ErrorManager::ShowError(NetworkMessage::ErrorManager::PORT_NOT_VALID); |
90 | NetworkMessage::ErrorManager::IP_ADDRESS_NOT_VALID); | 90 | return; |
91 | return; | ||
92 | } | ||
93 | if (!ui->port->hasAcceptableInput()) { | ||
94 | NetworkMessage::ErrorManager::ShowError(NetworkMessage::ErrorManager::PORT_NOT_VALID); | ||
95 | return; | ||
96 | } | ||
97 | break; | ||
98 | } | 91 | } |
99 | 92 | ||
100 | // Store settings | 93 | // Store settings |
diff --git a/src/yuzu/multiplayer/direct_connect.ui b/src/yuzu/multiplayer/direct_connect.ui index 6c38a18f9..fa3309ef2 100755 --- a/src/yuzu/multiplayer/direct_connect.ui +++ b/src/yuzu/multiplayer/direct_connect.ui | |||
@@ -27,19 +27,10 @@ | |||
27 | <number>0</number> | 27 | <number>0</number> |
28 | </property> | 28 | </property> |
29 | <item> | 29 | <item> |
30 | <widget class="QComboBox" name="connection_type"> | ||
31 | <item> | ||
32 | <property name="text"> | ||
33 | <string>IP Address</string> | ||
34 | </property> | ||
35 | </item> | ||
36 | </widget> | ||
37 | </item> | ||
38 | <item> | ||
39 | <widget class="QWidget" name="ip_container" native="true"> | 30 | <widget class="QWidget" name="ip_container" native="true"> |
40 | <layout class="QHBoxLayout" name="ip_layout"> | 31 | <layout class="QHBoxLayout" name="ip_layout"> |
41 | <property name="leftMargin"> | 32 | <property name="leftMargin"> |
42 | <number>5</number> | 33 | <number>0</number> |
43 | </property> | 34 | </property> |
44 | <property name="topMargin"> | 35 | <property name="topMargin"> |
45 | <number>0</number> | 36 | <number>0</number> |
@@ -53,14 +44,14 @@ | |||
53 | <item> | 44 | <item> |
54 | <widget class="QLabel" name="label_2"> | 45 | <widget class="QLabel" name="label_2"> |
55 | <property name="text"> | 46 | <property name="text"> |
56 | <string>IP</string> | 47 | <string>Server Address</string> |
57 | </property> | 48 | </property> |
58 | </widget> | 49 | </widget> |
59 | </item> | 50 | </item> |
60 | <item> | 51 | <item> |
61 | <widget class="QLineEdit" name="ip"> | 52 | <widget class="QLineEdit" name="ip"> |
62 | <property name="toolTip"> | 53 | <property name="toolTip"> |
63 | <string><html><head/><body><p>IP address of the host</p></body></html></string> | 54 | <string><html><head/><body><p>Server address of the host</p></body></html></string> |
64 | </property> | 55 | </property> |
65 | <property name="maxLength"> | 56 | <property name="maxLength"> |
66 | <number>253</number> | 57 | <number>253</number> |
@@ -85,6 +76,18 @@ | |||
85 | <property name="placeholderText"> | 76 | <property name="placeholderText"> |
86 | <string notr="true" extracomment="placeholder string that tells user default port">24872</string> | 77 | <string notr="true" extracomment="placeholder string that tells user default port">24872</string> |
87 | </property> | 78 | </property> |
79 | <property name="sizePolicy"> | ||
80 | <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> | ||
81 | <horstretch>0</horstretch> | ||
82 | <verstretch>0</verstretch> | ||
83 | </sizepolicy> | ||
84 | </property> | ||
85 | <property name="maximumSize"> | ||
86 | <size> | ||
87 | <width>65</width> | ||
88 | <height>50</height> | ||
89 | </size> | ||
90 | </property> | ||
88 | </widget> | 91 | </widget> |
89 | </item> | 92 | </item> |
90 | </layout> | 93 | </layout> |
diff --git a/src/yuzu/multiplayer/validation.h b/src/yuzu/multiplayer/validation.h index 4d48cb78a..611112302 100755 --- a/src/yuzu/multiplayer/validation.h +++ b/src/yuzu/multiplayer/validation.h | |||
@@ -40,9 +40,19 @@ private: | |||
40 | 40 | ||
41 | /// ipv4 / ipv6 / hostnames | 41 | /// ipv4 / ipv6 / hostnames |
42 | QRegularExpression ip_regex = QRegularExpression(QStringLiteral( | 42 | QRegularExpression ip_regex = QRegularExpression(QStringLiteral( |
43 | "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|" | 43 | //IPv4 regex |
44 | "^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$|" | 44 | "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|" |
45 | "^([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\\.)+[a-zA-Z]{2,}$")); | 45 | //IPv6 regex |
46 | "^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|" | ||
47 | "(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|" | ||
48 | "(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|" | ||
49 | "(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|" | ||
50 | "(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|" | ||
51 | "(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|" | ||
52 | "(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|" | ||
53 | "(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?$|" | ||
54 | // Hostname regex | ||
55 | "^([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\\.)+[a-zA-Z]{2,}$")); | ||
46 | QRegularExpressionValidator ip; | 56 | QRegularExpressionValidator ip; |
47 | 57 | ||
48 | /// port must be between 0 and 65535 | 58 | /// port must be between 0 and 65535 |