File indexing completed on 2024-04-28 16:52:17
0001 // SPDX-License-Identifier: GPL-2.0-or-later 0002 // SPDX-FileCopyrightText: 2011 Craig Drummond <craig.p.drummond@gmail.com> 0003 // SPDX-FileCopyrightText: 2018 Alexis Lopes Zubeta <contact@azubieta.net> 0004 // SPDX-FileCopyrightText: 2020 Tomaz Canabrava <tcanabrava@kde.org> 0005 /* 0006 * UFW KControl Module 0007 */ 0008 0009 #include "types.h" 0010 #include <KLocalizedString> 0011 #include <QVariantMap> 0012 0013 namespace Types 0014 { 0015 QString toString(LogLevel level, bool ui) 0016 { 0017 switch (level) { 0018 case LOG_OFF: 0019 return ui ? i18n("Off") : "off"; 0020 default: 0021 case LOG_LOW: 0022 return ui ? i18n("Low") : "low"; 0023 case LOG_MEDIUM: 0024 return ui ? i18n("Medium") : "medium"; 0025 case LOG_HIGH: 0026 return ui ? i18n("High") : "high"; 0027 case LOG_FULL: 0028 return ui ? i18n("Full") : "full"; 0029 } 0030 } 0031 0032 LogLevel toLogLevel(const QString &str) 0033 { 0034 for (int i = 0; i < LOG_COUNT; ++i) 0035 if (toString((LogLevel)i) == str) 0036 return (LogLevel)i; 0037 return LOG_LOW; 0038 } 0039 0040 extern QString toString(Logging log, bool ui) 0041 { 0042 switch (log) { 0043 default: 0044 case LOGGING_OFF: 0045 return ui ? i18n("None") : QString(); 0046 case LOGGING_NEW: 0047 return ui ? i18n("New connections") : "log"; 0048 case LOGGING_ALL: 0049 return ui ? i18n("All packets") : "log-all"; 0050 } 0051 } 0052 0053 QString toString(Policy policy, bool ui) 0054 { 0055 switch (policy) { 0056 default: 0057 case POLICY_ALLOW: 0058 return ui ? i18n("Allow") : "allow"; 0059 case POLICY_DENY: 0060 return ui ? i18n("Deny") : "deny"; 0061 case POLICY_REJECT: 0062 return ui ? i18n("Reject") : "reject"; 0063 case POLICY_LIMIT: 0064 return ui ? i18n("Limit") : "limit"; 0065 } 0066 } 0067 0068 Policy toPolicy(const QString &str) 0069 { 0070 for (int i = 0; i < POLICY_COUNT; ++i) 0071 if (toString((Policy)i) == str) 0072 return (Policy)i; 0073 return POLICY_ALLOW; 0074 } 0075 0076 QString toString(PredefinedPort pp, bool ui) 0077 { 0078 switch (pp) { 0079 case PP_AMULE: 0080 return ui ? i18n("Amule") : "4662/tcp 4672/udp"; 0081 case PP_DELUGE: 0082 return ui ? i18n("Deluge") : "6881:6891/tcp"; 0083 case PP_KTORRENT: 0084 return ui ? i18n("KTorrent") : "6881/tcp 4444/udp"; 0085 case PP_NICOTINE: 0086 return ui ? i18n("Nicotine") : "2234:2239/tcp 2242/tcp"; 0087 case PP_QBITTORRNET: 0088 return ui ? i18n("qBittorrent") : "6881/tcp"; 0089 case PP_TRANSMISSION: 0090 return ui ? i18n("Transmission") : "51413"; 0091 case PP_IM_ICQ: 0092 return ui ? i18n("ICQ") : "5190"; 0093 case PP_IM_JABBER: 0094 return ui ? i18n("Jabber") : "5222"; 0095 case PP_IM_WLM: 0096 return ui ? i18n("Windows Live Messenger") : "1863"; 0097 case PP_IM_YAHOO: 0098 return ui ? i18n("Yahoo! Messenger") : "5050"; 0099 case PP_FTP: 0100 return ui ? i18n("FTP") : "21"; 0101 case PP_HTTP: 0102 return ui ? i18n("HTTP") : "80"; 0103 case PP_HTTPS: 0104 return ui ? i18n("Secure HTTP") : "443"; 0105 case PP_IMAP: 0106 return ui ? i18n("IMAP") : "143"; 0107 case PP_IMAPS: 0108 return ui ? i18n("Secure IMAP") : "993"; 0109 case PP_POP3: 0110 return ui ? i18n("POP3") : "110"; 0111 case PP_POP3S: 0112 return ui ? i18n("Secure POP3") : "995"; 0113 case PP_SMTP: 0114 return ui ? i18n("SMTP") : "25"; 0115 case PP_NFS: 0116 return ui ? i18n("NFS") : "2049"; 0117 case PP_SAMBA: 0118 return ui ? i18n("Samba") : "135,139,445/tcp 137,138/udp"; 0119 case PP_SSH: 0120 return ui ? i18n("Secure Shell") : "22"; 0121 case PP_VNC: 0122 return ui ? i18n("VNC") : "5900/tcp"; 0123 case PP_ZEROCONF: 0124 return ui ? i18n("Zeroconf") : "5353/udp"; 0125 case PP_TELNET: 0126 return ui ? i18n("Telnet") : "23"; 0127 case PP_NTP: 0128 return ui ? i18n("NTP") : "123"; 0129 case PP_CUPS: 0130 return ui ? i18n("CUPS") : "631"; 0131 default: 0132 return QString(); 0133 } 0134 } 0135 0136 PredefinedPort toPredefinedPort(const QString &str) 0137 { 0138 for (int i = 0; i < Types::PP_COUNT; ++i) { 0139 const auto enumPort = static_cast<Types::PredefinedPort>(i); 0140 const auto typesAtIndex = Types::toString(enumPort).split(" "); 0141 0142 if (std::any_of(typesAtIndex.cbegin(), typesAtIndex.cend(), [str](QString port) { 0143 return port == str; 0144 })) { 0145 return enumPort; 0146 } 0147 // for (const auto &port : typesAtIndex) 0148 // 0149 // { 0150 // if (port == str) { 0151 // return enumPort; 0152 // } 0153 // } 0154 } 0155 0156 return PP_COUNT; 0157 } 0158 0159 Logging toLogging(const QString &str) 0160 { 0161 for (int i = 0; i < LOGGING_COUNT; ++i) { 0162 if (toString((Logging)i) == str) { 0163 return (Logging)i; 0164 } 0165 } 0166 0167 return LOGGING_OFF; 0168 } 0169 0170 } 0171 0172 #include "moc_types.cpp"