You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-08-10 22:41:43 +02:00
FTP: Доработка компоненты
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
"MAIN ---"
|
||||
linux-vdso.so.1 (0x00007ffe095f0000)
|
||||
libpthread.so.0 => /lib64/libpthread.so.0 (0x000077d974600000)
|
||||
libc.so.6 => /lib64/libc.so.6 (0x000077d974200000)
|
||||
libdl.so.2 => /lib64/libdl.so.2 (0x000077d973e00000)
|
||||
/lib64/ld-linux-x86-64.so.2 (0x000077d974c00000)
|
||||
linux-vdso.so.1 (0x00007ffee9155000)
|
||||
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000727c25800000)
|
||||
libc.so.6 => /lib64/libc.so.6 (0x0000727c25400000)
|
||||
libdl.so.2 => /lib64/libdl.so.2 (0x0000727c25000000)
|
||||
/lib64/ld-linux-x86-64.so.2 (0x0000727c25e00000)
|
||||
GLIBC_2.2.5
|
||||
GLIBC_2.3
|
||||
GLIBC_2.3.4
|
||||
|
@@ -9,6 +9,7 @@ pub struct FtpSettings {
|
||||
pub write_timeout: u64,
|
||||
pub login: Option<String>,
|
||||
pub password: Option<String>,
|
||||
pub advanced_resolve: bool
|
||||
}
|
||||
|
||||
#[derive(Deserialize,Serialize,Clone)]
|
||||
|
@@ -10,8 +10,17 @@ pub fn make_passive_proxy_stream(
|
||||
proxy_settings: &Option<FtpProxySettings>,
|
||||
addr: SocketAddr) -> Result<TcpStream, FtpError> {
|
||||
|
||||
let corrected_addr = if addr.ip().is_loopback() {
|
||||
match ftp_settings.domain.parse::<std::net::IpAddr>() {
|
||||
let redirect = match ftp_settings.advanced_resolve{
|
||||
true => {
|
||||
if proxy_settings.is_some() || addr.ip().is_loopback() {
|
||||
Some(&ftp_settings.domain)
|
||||
}else { None }
|
||||
},
|
||||
false => None
|
||||
};
|
||||
|
||||
let corrected_addr = if redirect.is_some() {
|
||||
match redirect.unwrap().parse::<std::net::IpAddr>() {
|
||||
Ok(ftp_ip) => {
|
||||
SocketAddr::new(ftp_ip, addr.port())
|
||||
},
|
||||
|
BIN
src/en/OInt/addins/OPI_FTP.zip
vendored
BIN
src/en/OInt/addins/OPI_FTP.zip
vendored
Binary file not shown.
Binary file not shown.
BIN
src/ru/OInt/addins/OPI_FTP.zip
vendored
BIN
src/ru/OInt/addins/OPI_FTP.zip
vendored
Binary file not shown.
@@ -178,6 +178,10 @@
|
||||
|
||||
// Получить настройки соединения
|
||||
// Формирует структуру настроек подключения FTP
|
||||
//
|
||||
// Примечание:
|
||||
// При `РазрешениеIP = Истина` адрес для подключения, возвращаемый сервером в пассивном режиме после `PASV`, будет заменен на IP^^
|
||||
// прокси-сервера, если используется прокси, или IP основного подключения, если сервер вернул `127.0.0.1`
|
||||
//
|
||||
// Параметры:
|
||||
// Домен - Строка - Домен сервера - host
|
||||
@@ -187,6 +191,7 @@
|
||||
// Пассивный - Булево - Пассивный режим соединения - passive
|
||||
// ТаймаутЧтения - Число - Таймаут чтения - rtout
|
||||
// ТаймаутЗаписи - Число - Таймаут записи - wtout
|
||||
// РазрешениеIP - Булево - Расширенное определение адресов в пассивном режиме - ipresl
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - Структура настроек соединения
|
||||
@@ -196,14 +201,16 @@
|
||||
, Знач Пароль = Неопределено
|
||||
, Знач Пассивный = Истина
|
||||
, Знач ТаймаутЧтения = 120
|
||||
, Знач ТаймаутЗаписи = 120) Экспорт
|
||||
, Знач ТаймаутЗаписи = 120
|
||||
, Знач РазрешениеIP = Истина) Экспорт
|
||||
|
||||
СтруктураНастроек = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("domain" , Домен , "Строка", СтруктураНастроек);
|
||||
OPI_Инструменты.ДобавитьПоле("port" , Порт , "Число" , СтруктураНастроек);
|
||||
OPI_Инструменты.ДобавитьПоле("passive" , Пассивный , "Булево", СтруктураНастроек);
|
||||
OPI_Инструменты.ДобавитьПоле("read_timeout" , ТаймаутЧтения , "Число" , СтруктураНастроек);
|
||||
OPI_Инструменты.ДобавитьПоле("write_timeout", ТаймаутЗаписи , "Число" , СтруктураНастроек);
|
||||
OPI_Инструменты.ДобавитьПоле("domain" , Домен , "Строка", СтруктураНастроек);
|
||||
OPI_Инструменты.ДобавитьПоле("port" , Порт , "Число" , СтруктураНастроек);
|
||||
OPI_Инструменты.ДобавитьПоле("passive" , Пассивный , "Булево", СтруктураНастроек);
|
||||
OPI_Инструменты.ДобавитьПоле("read_timeout" , ТаймаутЧтения , "Число" , СтруктураНастроек);
|
||||
OPI_Инструменты.ДобавитьПоле("write_timeout" , ТаймаутЗаписи , "Число" , СтруктураНастроек);
|
||||
OPI_Инструменты.ДобавитьПоле("advanced_resolve", ТаймаутЗаписи , "Булево", СтруктураНастроек);
|
||||
|
||||
Если Не Логин = Неопределено Тогда
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Логин);
|
||||
|
Binary file not shown.
Reference in New Issue
Block a user