Merge pull request #9661 from SoRadGaming/LDNhostnameSupport
LDN hostname support in direct connect
This commit is contained in:
		| @@ -81,20 +81,13 @@ void DirectConnectWindow::Connect() { | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     switch (static_cast<ConnectionType>(ui->connection_type->currentIndex())) { | ||||
|     case ConnectionType::TraversalServer: | ||||
|         break; | ||||
|     case ConnectionType::IP: | ||||
|         if (!ui->ip->hasAcceptableInput()) { | ||||
|             NetworkMessage::ErrorManager::ShowError( | ||||
|                 NetworkMessage::ErrorManager::IP_ADDRESS_NOT_VALID); | ||||
|             return; | ||||
|         } | ||||
|         if (!ui->port->hasAcceptableInput()) { | ||||
|             NetworkMessage::ErrorManager::ShowError(NetworkMessage::ErrorManager::PORT_NOT_VALID); | ||||
|             return; | ||||
|         } | ||||
|         break; | ||||
|     if (!ui->ip->hasAcceptableInput()) { | ||||
|         NetworkMessage::ErrorManager::ShowError(NetworkMessage::ErrorManager::IP_ADDRESS_NOT_VALID); | ||||
|         return; | ||||
|     } | ||||
|     if (!ui->port->hasAcceptableInput()) { | ||||
|         NetworkMessage::ErrorManager::ShowError(NetworkMessage::ErrorManager::PORT_NOT_VALID); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     // Store settings | ||||
|   | ||||
| @@ -26,20 +26,11 @@ | ||||
|          <property name="leftMargin"> | ||||
|           <number>0</number> | ||||
|          </property> | ||||
|          <item> | ||||
|           <widget class="QComboBox" name="connection_type"> | ||||
|            <item> | ||||
|             <property name="text"> | ||||
|              <string>IP Address</string> | ||||
|             </property> | ||||
|            </item> | ||||
|           </widget> | ||||
|          </item> | ||||
|          <item> | ||||
|           <widget class="QWidget" name="ip_container" native="true"> | ||||
|            <layout class="QHBoxLayout" name="ip_layout"> | ||||
|             <property name="leftMargin"> | ||||
|              <number>5</number> | ||||
|              <number>0</number> | ||||
|             </property> | ||||
|             <property name="topMargin"> | ||||
|              <number>0</number> | ||||
| @@ -53,17 +44,17 @@ | ||||
|             <item> | ||||
|              <widget class="QLabel" name="label_2"> | ||||
|               <property name="text"> | ||||
|                <string>IP</string> | ||||
|                <string>Server Address</string> | ||||
|               </property> | ||||
|              </widget> | ||||
|             </item> | ||||
|             <item> | ||||
|              <widget class="QLineEdit" name="ip"> | ||||
|               <property name="toolTip"> | ||||
|                <string><html><head/><body><p>IPv4 address of the host</p></body></html></string> | ||||
|                <string><html><head/><body><p>Server address of the host</p></body></html></string> | ||||
|               </property> | ||||
|               <property name="maxLength"> | ||||
|                <number>16</number> | ||||
|                <number>253</number> | ||||
|               </property> | ||||
|              </widget> | ||||
|             </item> | ||||
| @@ -85,6 +76,12 @@ | ||||
|               <property name="placeholderText"> | ||||
|                <string notr="true" extracomment="placeholder string that tells user default port">24872</string> | ||||
|               </property> | ||||
|               <property name="maximumSize"> | ||||
|                <size> | ||||
|                 <width>65</width> | ||||
|                 <height>50</height> | ||||
|                </size> | ||||
|               </property> | ||||
|              </widget> | ||||
|             </item> | ||||
|            </layout> | ||||
|   | ||||
| @@ -38,11 +38,28 @@ private: | ||||
|         QRegularExpression(QStringLiteral("^[a-zA-Z0-9._ -]{4,20}")); | ||||
|     QRegularExpressionValidator nickname; | ||||
|  | ||||
|     /// ipv4 address only | ||||
|     // TODO remove this when we support hostnames in direct connect | ||||
|     /// ipv4 / ipv6 / hostnames | ||||
|     QRegularExpression ip_regex = QRegularExpression(QStringLiteral( | ||||
|         "(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|" | ||||
|         "2[0-4][0-9]|25[0-5])")); | ||||
|         // IPv4 regex | ||||
|         "^((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]?)$|" | ||||
|         // IPv6 regex | ||||
|         "^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|" | ||||
|         "(([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})|:))|" | ||||
|         "(([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})|:))|" | ||||
|         "(([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}))|:))|" | ||||
|         "(([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}))|:))|" | ||||
|         "(([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}))|:))|" | ||||
|         "(([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}))|:))|" | ||||
|         "(:(((:[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}))|:)))(%.+)?$|" | ||||
|         // Hostname regex | ||||
|         "^([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\\.)+[a-zA-Z]{2,}$")); | ||||
|     QRegularExpressionValidator ip; | ||||
|  | ||||
|     /// port must be between 0 and 65535 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user