Поддержка протокола Sftp (File Sharing) по ТЗ по гранту от Теплицы

социальных технологий (2021 год)
+ небольшой рефакторинг
This commit is contained in:
pokamest 2021-09-22 14:49:08 +03:00
parent 6ee203a21d
commit 3bcc12869b
45 changed files with 645 additions and 338 deletions

View file

@ -70,7 +70,8 @@ QMap<amnezia::Protocol, QString> ProtocolProps::protocolHumanNames()
{Protocol::WireGuard, "WireGuard"},
{Protocol::TorWebSite, "Web site in TOR network"},
{Protocol::Dns, "DNS Service"},
{Protocol::FileShare, "File Sharing Service"}
{Protocol::FileShare, "File Sharing Service"},
{Protocol::Sftp, QObject::tr("Sftp service")}
};
}
@ -105,6 +106,7 @@ int ProtocolProps::defaultPort(Protocol p)
case Protocol::TorWebSite : return 443;
case Protocol::Dns : return 53;
case Protocol::FileShare : return 139;
case Protocol::Sftp : return 222;
default: return -1;
}
}
@ -132,9 +134,11 @@ TransportProto ProtocolProps::defaultTransportProto(Protocol p)
case Protocol::Cloak : return TransportProto::Tcp;
case Protocol::ShadowSocks : return TransportProto::Tcp;
case Protocol::WireGuard : return TransportProto::Udp;
case Protocol::TorWebSite : return TransportProto::Tcp;
// non-vpn
case Protocol::TorWebSite : return TransportProto::Tcp;
case Protocol::Dns : return TransportProto::Udp;
case Protocol::FileShare : return TransportProto::Tcp;
case Protocol::FileShare : return TransportProto::Udp;
case Protocol::Sftp : return TransportProto::Tcp;
default: return TransportProto::Udp;
}
}
@ -147,9 +151,11 @@ bool ProtocolProps::defaultTransportProtoChangeable(Protocol p)
case Protocol::Cloak : return false;
case Protocol::ShadowSocks : return false;
case Protocol::WireGuard : return false;
case Protocol::TorWebSite : return false;
// non-vpn
case Protocol::TorWebSite : return false;
case Protocol::Dns : return false;
case Protocol::FileShare : return false;
default: return -1;
case Protocol::Sftp : return false;
default: return false;
}
}

View file

@ -100,6 +100,10 @@ constexpr char serverPskKeyPath[] = "/opt/amnezia/wireguard/wireguard_psk.key";
}
namespace sftp {
constexpr char defaultUserName[] = "sftp_user";
} // namespace sftp
} // namespace protocols
@ -118,9 +122,12 @@ enum Protocol {
ShadowSocks,
Cloak,
WireGuard,
// non-vpn
TorWebSite,
Dns,
FileShare
FileShare,
Sftp
};
Q_ENUM_NS(Protocol)
@ -177,6 +184,14 @@ static void declareQmlProtocolEnum() {
"TransportProto",
"Error: only enums"
);
qmlRegisterUncreatableMetaObject(
ProtocolEnumNS::staticMetaObject,
"ProtocolEnum",
1, 0,
"ServiceType",
"Error: only enums"
);
}
} // namespace amnezia