Page 76 of 170

NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Thu 20 Jan, 2011 14:45
by Michael Lukashov
C 2013/02/28 плагин входит в дистрибутив FAR 3, заменяя собой FarFTP.

Полезные ссылки:

При возникновении проблем:

Re: NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Mon 20 May, 2013 19:28
by HaRT

Latest post of the previous page:

ice_scream wrote:
HaRT wrote:Не поможет ли возможность настройки туннелей в PuTTY?
Можно было бы двумя процессами эмулятора слушать два разных порта, на которые ведут туннели.
Не осилил O_O. Может дадите ссылку где можно просветиться?
Ссылку-то не жалко: 4.24 The Tunnels panel — но это технические подробности.
Интереснее, применима ли схема в целом, так сказать, архитектурно. Нельзя ли чуть подробнее, почему с одним портом у Вас отладка получается, а с двумя — нет?

Re: NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Mon 20 May, 2013 19:34
by t-rex
второй порт то зарание неизвестен.

Re: NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Mon 20 May, 2013 19:41
by Michael Lukashov
HaRT wrote:Нельзя ли чуть подробнее, почему с одним портом у Вас отладка получается, а с двумя — нет?
Ftp клиент соединяется с сервером по заранее определенному порту, 21 по умолчанию. Для передачи данных открывается новое соединение, номер порта для которого выбирается случайным образом. Поэтому и не получается создать соединение между эмулятором и хостом. Я пробовал в настройках клиента и сервера выбирать заранее определенный порт, но ничего не получилось, может у меня руки кривые :)

Re: NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Mon 20 May, 2013 19:44
by t-rex
пофиг, у меня повторяется. щас дебаг соберу.

Re: NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Mon 20 May, 2013 20:08
by t-rex
Там _mktime64 возвращает -1, ну а потом кидается эксепшен который ни кто не ловит.

Code: Select all

>	NetBox.dll!ATL::CTime::CTime(int nYear, int nMonth, int nDay, int nHour, int nMin, int nSec, int nDST) Line 206	C++
 	NetBox.dll!CFtpListResult::parseMlsdDateTime(const ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t> > > value, t_directory::t_direntry & direntry) Line 1435	C++
 	NetBox.dll!CFtpListResult::parseAsMlsd(const char * line, const int linelen, t_directory::t_direntry & direntry) Line 1360	C++
 	NetBox.dll!CFtpListResult::parseLine(const char * lineToParse, const int linelen, t_directory::t_direntry & direntry, int & nFTPServerType) Line 518	C++
 	NetBox.dll!CFtpListResult::AddData(char * data, int size) Line 609	C++
 	NetBox.dll!CTransferSocket::OnReceive(int nErrorCode) Line 209	C++
 	NetBox.dll!CAsyncSocketExHelperWindow::WindowProc(HWND__ * hWnd, unsigned int message, unsigned int wParam, long lParam) Line 362	C++
 	user32.dll!74d377d8()	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for user32.dll]	
 	user32.dll!74d378cb()	Unknown
 	user32.dll!74d3787a()	Unknown
 	user32.dll!74d394c3()	Unknown
 	user32.dll!74d38a66()	Unknown
 	NetBox.dll!CMainThread::Run() Line 541	C++
 	NetBox.dll!CMainThread::ThreadProc(void * lpParameter) Line 526	C++
 	kernel32.dll!755f8543()	Unknown
 	ntdll.dll!7738bf39()	Unknown
 	ntdll.dll!7738bf0c()	Unknown

Re: NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Mon 20 May, 2013 20:13
by t-rex
Там Size=16384;Modify=19700101000000.000;Type=dir; extSdCard

Re: NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Mon 20 May, 2013 20:21
by 2useven10
возможно _mkgmtime64 будет более уместен.

Re: NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Mon 20 May, 2013 20:22
by t-rex
это чинится так:

Code: Select all

--- a/libs/atlmfc/include/atltime.inl
+++ b/libs/atlmfc/include/atltime.inl
@@ -206,7 +206,8 @@ ATLTIME_INLINE CTime::CTime(
 	ATLASSUME(m_time != -1);       // indicates an illegal input time
 	if(m_time == -1)
 	{
-		AtlThrow(E_INVALIDARG);
+		m_time = 0;
+		//AtlThrow(E_INVALIDARG);
 	}
 }
Но на этом не заканчивается, там потом что то ещё не срабатывает, смотрю дальше.

Re: NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Mon 20 May, 2013 20:39
by Michael Lukashov
Использование _mkgmtime64 действительно решает проблему, спасибо. Сделал коммит, можно будет потестировать.

Re: NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Mon 20 May, 2013 20:43
by t-rex
Дальше как то непонятно уже, заканчивает парсить буффер листинга, и вконце выходит по таймауту (иногда падает).
Но там с этим ATL дебагить одна радость.
Я думаю через эмулятор андроида должно повторится с той апликацией.

Re: NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Mon 20 May, 2013 20:45
by t-rex
И чем именно это решает проблему? Завтра сервер вернёт 1969 год, и что, снова падать?

Re: NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Mon 20 May, 2013 20:48
by t-rex
И в чём вообще разница между _mkgmtime64 и _mktime64 что то не врубаюсь полностью, потому что такое изменение ещё может конкретно попртить времена всем файлам.

Re: NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Mon 20 May, 2013 20:52
by t-rex
И закомить то что грязный гарри показывал, с SetWindowLongPtr

Re: NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Mon 20 May, 2013 20:54
by t-rex
А и это, после "m_time = 0;", в релизе всё работает нормально. В дебаги страности, но там прыгает окошко ассерта, мож из за него тайм оут там где то внедрях.

Re: NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Mon 20 May, 2013 20:55
by 2useven10
1970/01/01 00:00:00.000 - это UTC время.
_mktime - для +HH таймзон вычтет HH часов и получится некорректное время.
так что _mkgmtime - это то что доктор прописал, хотя проверку на некорректное время при этом можно оставить.

Re: NetBox — SFTP/SCP/FTP/FTPS/WebDAV client

Posted: Mon 20 May, 2013 20:59
by t-rex
ну там оно где то должно определят в какой зоне ftp вернул время, фиг его знает какая функа там правильней, но все ровно надо перекрыть возможность возврата -1 которая всегда будет падать, ручным выставлением нуля.