Page 76 of 170
NetBox — SFTP/SCP/FTP/FTPS/WebDAV client
Posted: Thu 20 Jan, 2011 14:45
by Michael Lukashov
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 которая всегда будет падать, ручным выставлением нуля.