imbamike666 / psi-dev

Automatically exported from code.google.com/p/psi-dev
0 stars 0 forks source link

Приём файла при прямом подключении #464

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Добрый день.
Билды: Последний и три предыдущих.
Описание проблемы: 
Не принимается файл, если отправитель 
отдаёт его напрямую с себя, (если оба 
клиента за socks5 прокси, файлы бегают 
нормально).
Также проверил на оригинальном psi, там всё 
работает, т.е. клиент с белым IP и открытым 
портом инициирует передачу, сервер говорит 
принимающему клиенту куда сходить за 
файлом, клиент идет.
В случае с psi+, не открывается прямого 
соединения до отдающего клиента, всё равно 
пытается получить через прокси.

На наглядном примере можно проверить через 
сервис disk на jabbim.cz.

Original issue reported on code.google.com by maks3...@gmail.com on 3 Nov 2011 at 12:30

GoogleCodeExporter commented 8 years ago
можно не прописывать проксик. вообще 
говоря я не помню каких-либо изменений 
которые соответствуют описанной пролеме.
xml логи и скриншоты приветствуются

Original comment by rion4ik on 3 Nov 2011 at 12:48

GoogleCodeExporter commented 8 years ago
Без прокси тоже не хочет открывать прямой 
коннект.
Кстати говоря, на всякий случай проверил в 
бубунте 11.04 (там за октябрь 2010 года версия в 
родных репозиториях), в ней работает.

Логи:
<iq from="public@disk.jabbim.cz/jdisk" type="set" to="jid/Psi+" id="349872">
<si xmlns="http://jabber.org/protocol/si" mime-type="application/octet-stream" 
profile="http://jabber.org/protocol/si/profile/file-transfer" id="348697">
<file xmlns="http://jabber.org/protocol/si/profile/file-transfer" size="163" 
name="wiadebug.log" date="2011-11-03T13:09:11+01:00">
<desc>
</desc>
<range/>
</file>
<feature xmlns="http://jabber.org/protocol/feature-neg">
<x xmlns="jabber:x:data" type="form">
<field type="list-single" var="stream-method">
<option>
<value>http://jabber.org/protocol/ibb</value>
</option>
<option>
<value>http://jabber.org/protocol/bytestreams</value>
</option>
</field>
</x>
</feature>
</si>
</iq>

<iq type="result" to="public@disk.jabbim.cz/jdisk" id="349872">
<si xmlns="http://jabber.org/protocol/si">
<feature xmlns="http://jabber.org/protocol/feature-neg">
<x xmlns="jabber:x:data" type="submit">
<field var="stream-method">
<value>http://jabber.org/protocol/ibb</value>
</field>
</x>
</feature>
</si>
</iq>

<message from="public@disk.jabbim.cz/jdisk" type="chat" to="jid/Psi+">
<body/>
</message>

Original comment by maks3...@gmail.com on 3 Nov 2011 at 1:15

GoogleCodeExporter commented 8 years ago
Как видно, Psi+ обратно отписывает что хочет 
приянть через In-band.

Вот тоже самое с psi:
<value>http://jabber.org/protocol/bytestreams</value>

После чего сервер говорит откуда принимать
<streamhost port="7779" host="88.86.102.53" jid="public@disk.jabbim.cz/jdisk" /

Original comment by maks3...@gmail.com on 3 Nov 2011 at 1:23

GoogleCodeExporter commented 8 years ago
Ps. На сколько я понимаю, сервис jabber диска не 
дожен был возвращать в совём ответе ibb, раз 
он такого не умеет, но, тем не менее, факт 
остается фактом, что psi может а Psi - нет. 

Original comment by maks3...@gmail.com on 3 Nov 2011 at 1:27

GoogleCodeExporter commented 8 years ago
А в настройках аккаунта не включено "только 
ибб"?

Original comment by wadea...@gmail.com on 3 Nov 2011 at 1:28

GoogleCodeExporter commented 8 years ago
диск умеет ибб, но старого образца, пси+ 
работает по новому хепу. Вообще тетстить на 
диске глупо - он тупит. Я часто внутри 
локалки передаю файлы по пси, все прекрасно 
ходит через байтстрим

Original comment by wadea...@gmail.com on 3 Nov 2011 at 1:30

GoogleCodeExporter commented 8 years ago
Разумеется, нет, иначе не писал бы = )

Original comment by maks3...@gmail.com on 3 Nov 2011 at 1:30

GoogleCodeExporter commented 8 years ago
Кстати, думаю, я знаю, в чем беда. В 
последовательности. Диск сначала 
предлагает ибб, а потом байтстрим, а если 
слать с пси - то там наоборот, сначала 
байтстрим, потом ибб. Видимо, этот порядок 
определяет и порядок выбора, каким методом 
слать

Original comment by wadea...@gmail.com on 3 Nov 2011 at 1:33

GoogleCodeExporter commented 8 years ago
очевидно это лог когда проксик не прописан.
тогда я согласен, по списку приоритетов 
должен быть выбран bytestream c прямым коннектом.

мне пока некогда разбираться но думаю 
начать стоит отсюда filetransfer.cpp:441
я там не вижу чтоб он смотрел на список 
приоритетов.

Original comment by rion4ik on 3 Nov 2011 at 1:35

GoogleCodeExporter commented 8 years ago

Original comment by rion4ik on 3 Nov 2011 at 1:50

GoogleCodeExporter commented 8 years ago

Original comment by wadea...@gmail.com on 9 Nov 2011 at 7:30