dequis / msn-pecan

Automatically exported from code.google.com/p/msn-pecan
GNU General Public License v2.0
0 stars 0 forks source link

File transfers using direct connection #35

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. attempt to send or receive a file via msn-pecan
2.
3.

What is the expected output? What do you see instead?
i would expect file transfer rates to reach a good speed ( 50kB/s or so?)
however i get terrible speeds

What version of the product are you using? On what operating system?
msn-pecan 0.0.11, pidgin 2.4.1, windows XP sp3 rc2

Please provide any additional information below.
it is definitely not the connection, since my house has a 20Mb/s connection
and i was receiving a file from my neighbour.

Original issue reported on code.google.com by praveenm...@gmail.com on 3 Apr 2008 at 3:33

Attachments:

GoogleCodeExporter commented 9 years ago
crap, i didnt blank out the emails on the attachment

Original comment by praveenm...@gmail.com on 3 Apr 2008 at 3:34

GoogleCodeExporter commented 9 years ago
That's because direct connection is disabled. Since all the I/O stuff was 
modified
there probably will be bugs.

I can try to enable it, but then I only tested with IP's in my same network.

Original comment by felipe.contreras on 3 Apr 2008 at 3:59

GoogleCodeExporter commented 9 years ago
If you want, I could test it on my network. I have computers where one network 
card
has 2 IP addresses, one local and one public. Both computers have separate 
public IP
addresses as well.

Original comment by Saturn2...@gmail.com on 11 Apr 2008 at 8:14

GoogleCodeExporter commented 9 years ago
Saturn: Please add me to Google Talk so we can sync on this.

Original comment by felipe.contreras on 20 May 2008 at 6:26

GoogleCodeExporter commented 9 years ago
People, please vote on this. I'm not sure if to mark it as a requirement for 
0.1.0.

Use the star system.

Original comment by felipe.contreras on 23 May 2008 at 9:44

GoogleCodeExporter commented 9 years ago
This and offline messages are the two most important features to me personally. 
But
I'm not going to rush you :)

Original comment by giraffeh...@gmail.com on 23 May 2008 at 10:00

GoogleCodeExporter commented 9 years ago
i think its important. but like goo said, no rush. i do think offline messaging 
takes
priority over this though.

Original comment by praveenm...@gmail.com on 23 May 2008 at 10:04

GoogleCodeExporter commented 9 years ago
Cool. Still, can you use the star thing? It's at the top, left to the title.

Original comment by felipe.contreras on 23 May 2008 at 10:29

GoogleCodeExporter commented 9 years ago
Lack of direct transfers is the single reason why I don't use Pidgin 100% of the
time. Please, I hate using amsn.

Original comment by matthaeu...@gmail.com on 31 May 2008 at 1:01

GoogleCodeExporter commented 9 years ago
What is the status of this issue at the moment? It is in the specifications of
libmsn-pecan-0.0.14. Do you plan to implement upnp? Or do we need to open a 
specific
port for p2p transfers? 

Original comment by marco.de...@point.nl on 3 Jul 2008 at 9:51

GoogleCodeExporter commented 9 years ago
It's disabled right now. I need to update the code and even then it will work 
only in
some situations.

I'll work on this issue after oim support.

Original comment by felipe.contreras on 13 Jul 2008 at 11:42

GoogleCodeExporter commented 9 years ago
I think this should be one of the top priorities. This is the single reason A 
LOT of
my friends are still stuck with Live Messenger. Would it be possible to release 
a
beta-build or something so one could help test it for you?

Original comment by justanot...@gmail.com on 23 Jul 2008 at 1:20

GoogleCodeExporter commented 9 years ago
that would be a great idea

Original comment by matthaeu...@gmail.com on 27 Jul 2008 at 3:28

GoogleCodeExporter commented 9 years ago
I noticed that the OIM support is fixed. Does that mean that direct transfer 
support
should be here soon?

Original comment by matthaeu...@gmail.com on 21 Aug 2008 at 5:55

GoogleCodeExporter commented 9 years ago
It means that's the next thing I'll work on. I don't expect it to work on all 
cases
initially, it will be enabled case by case.

Original comment by felipe.contreras on 22 Aug 2008 at 12:44

GoogleCodeExporter commented 9 years ago

Original comment by felipe.contreras on 10 Sep 2008 at 10:08

GoogleCodeExporter commented 9 years ago

Original comment by devid...@gmail.com on 14 Sep 2008 at 10:13

GoogleCodeExporter commented 9 years ago
Hi!

What are the ports I need to open to get direct file transfer working?

Thanks for the amazing work!

Original comment by lnogu...@gmail.com on 8 Dec 2008 at 10:01

GoogleCodeExporter commented 9 years ago
lnogueir,
I would think that upnp would be in this build so you wouldn't have to worry 
about that

Original comment by matthaeu...@gmail.com on 11 Dec 2008 at 4:51

GoogleCodeExporter commented 9 years ago
Right now you can't act as a server, so the other end needs to have the ports 
open.

But yeah, ideally msn-pecan should use upnp. Is anyone willing to investigate 
out how
to ask for a port with upnp?

Original comment by felipe.contreras on 11 Dec 2008 at 6:17

GoogleCodeExporter commented 9 years ago
felipe, theres upnp.h in libpurple, but are you trying to not use libpurple too 
much 
these days?

Original comment by eionrobb on 11 Dec 2008 at 6:34

GoogleCodeExporter commented 9 years ago
eionrobb: exactly.

But I guess for starters that would do it.

Original comment by felipe.contreras on 11 Dec 2008 at 6:42

GoogleCodeExporter commented 9 years ago
Can someone write a summary on how the features of "direct-file-transfers" are 
atm?
Someone mentioned that i need to open up ports but now which ports, the same as 
the
msn-protocol?

Direct-file-transfer is a really great feature but needs some more work, 
counting on
you guys :P

Original comment by sam...@gmail.com on 17 Jan 2009 at 6:42

GoogleCodeExporter commented 9 years ago
use miniupnpc, the author made a patch for xchat and it's tiny. I assume the 
patch
for msn-pecan would also be quite small/easy. 
http://miniupnp.free.fr/xchat-upnp.html

Original comment by weedy2...@gmail.com on 17 Jan 2009 at 8:53

GoogleCodeExporter commented 9 years ago
I think this is the most important issue to fix.. i can test some new releases 
if you
want..

Original comment by francesco.gatta@gmail.com on 6 Feb 2009 at 7:55

GoogleCodeExporter commented 9 years ago
just compile it yourself from the git repo and try it out

Original comment by matthaeu...@gmail.com on 10 Feb 2009 at 5:24

GoogleCodeExporter commented 9 years ago
Hi, felipe any news as to when we will se an update to this issue?
Thanks

fede

Original comment by fedeonda...@gmail.com on 16 Mar 2009 at 12:20

GoogleCodeExporter commented 9 years ago
Hi, fast file transfers is the feature i miss most, Is there anything we can do 
to help ?

Original comment by sw3t.s...@gmail.com on 26 May 2009 at 12:40

GoogleCodeExporter commented 9 years ago
I'm marking this as critical for 0.1.0 since it's by far the most wanted 
feature.
I'll get back to work on this.

Original comment by felipe.contreras on 6 Jun 2009 at 1:12

GoogleCodeExporter commented 9 years ago
the gupnp library, might be a good idea for use in msn-pecan. It is now the 
standard
for upnp in aMSN.

http://www.gupnp.org/

Original comment by matthaeu...@gmail.com on 12 Jul 2009 at 7:35

GoogleCodeExporter commented 9 years ago
Are there any updates for this feature?

Original comment by baalbeh...@gmail.com on 17 Sep 2009 at 3:26

GoogleCodeExporter commented 9 years ago
@matthaeus maybe libnice is a better choice?

@ballbehrit sorry, no updates yet... I've been busy but I'm confident at least 
some
basic support will be there on 0.1.0.

Original comment by felipe.contreras on 17 Sep 2009 at 9:48

GoogleCodeExporter commented 9 years ago
Ok, thanks for the answer. I'm pissed of 'cause I can't use pidgin because I 
need 
fast file transfer in MSN, and Windows Live Messenger drives me crazy. :)

Original comment by baalbeh...@gmail.com on 21 Sep 2009 at 12:38

GoogleCodeExporter commented 9 years ago
sorry to bother but, any news on this?
thanks

Original comment by fedeonda...@gmail.com on 30 Nov 2009 at 3:43

GoogleCodeExporter commented 9 years ago
@fedeondarts there's progress, now you can really try directconn with:
make DIRECTCONN=y

But it doesn't work properly. Please discuss in the mailing list if you want to 
help.

Original comment by felipe.contreras on 12 Dec 2009 at 10:10

GoogleCodeExporter commented 9 years ago
Somebody just released an alpha-grade patch for libpurple. Maybe this could 
help?

http://developer.pidgin.im/ticket/247#comment:49

Original comment by matthaeu...@gmail.com on 16 Dec 2009 at 1:29

GoogleCodeExporter commented 9 years ago
I've rewritten quite a bit of directconn and it seems to work fine for me, at 
least on 
internal networks :D

You can try on the latest git.

I just need to add a few tweaks so that external networks work too, and this 
bug will 
be fixed since it will work with most clients out there. Listening support and 
upnp 
should be tackled in another ticket.

Original comment by felipe.contreras on 29 Dec 2009 at 12:15

GoogleCodeExporter commented 9 years ago
Correction, only receiving works for now. I need to fix sending. Apparently the 
handshake is done the other way around =/

Original comment by felipe.contreras on 29 Dec 2009 at 1:39

GoogleCodeExporter commented 9 years ago
It turns out sending require many changes, but now it's working fine.

Only local networks work right now, the next step is to try external ips as 
well.

After that we could say we have basic support for direct connections.

Original comment by felipe.contreras on 25 Jan 2010 at 3:37

GoogleCodeExporter commented 9 years ago
Ok, I've pushed support for multiple ip addresses which means this bug is fixed 
:)

Commence the testing!

Further enhancements for direct connection should be handled in separate bug 
reports.

Original comment by felipe.contreras on 25 Jan 2010 at 9:51

GoogleCodeExporter commented 9 years ago
Tested latest GIT on Pidgin 2.6.2.
Sending from Pidgin to WLM 8.5 (external) did not work. Transfer refused to 
start.
Receiving from WLM 8.5 (external) to Pidgin worked great.

On a side note, Pidgin sometimes randomly crashes while chatting.

Otherwise, great work!

Original comment by andr...@gmail.com on 26 Jan 2010 at 3:35

GoogleCodeExporter commented 9 years ago
@andrejx thanks for the testing. I'll investigate the issue while sending, I 
only 
tested on internal networks and it worked fine.

Original comment by felipe.contreras on 26 Jan 2010 at 11:42

GoogleCodeExporter commented 9 years ago
You've removed SHA1 hashing from my code (the original libpurple patch) so 
official
clients will refuse direct connection attempts with a mismatching 
nonce/nonce-hash.
If you're connecting to an official client (and not the other way around) then 
you
HAVE to have a correct nonce/nonce-hash pair.

Original comment by kukker...@gmail.com on 26 Jan 2010 at 4:22

GoogleCodeExporter commented 9 years ago
@kukkerman It seems you are assuming we are using your patch; we are not. I 
took a 
quick glance when you posted it, and that's it. If there's any similarity on 
the code, 
that's probably a coincidence.

Anyway, I don't understand what you are talking about. The nonce is created by 
the 
listening client, and then based on it both clients send the handshake 
messages. 
What's that hash you are talking about?

Original comment by felipe.contreras on 26 Jan 2010 at 8:21

GoogleCodeExporter commented 9 years ago
@kukkerman Ok, I looked at your patch and now I see what you mean. First of 
all, 
listening support is not yet implemented in msn-pecan, in those cases we would 
need 
to generate a nonce, but currently we don't have to: the other side does that.

However, you are doing extra steps while generating the nonce. The nonce string 
and 
binaries are straight-forward to convert from one to the other, when you 
generate the 
nonce you are using a sha1 checksum; that's unnecessary. It works because the 
data is 
random to begin with, so when you use a sha1 checksum you are just making it 
more 
random, you could use an md5, or rot13, or better: nothing.

Original comment by felipe.contreras on 26 Jan 2010 at 8:49

GoogleCodeExporter commented 9 years ago
I'm using SHA1 to generate the nonce-hash (hence the name) because during a 
direct
connect negotiation you have to send the nonce-hash first as a GUID. Then after 
the
TCP connection has been estabilished you have to send the nonce which you have
previously created the SHA1 hash from. If these two don't match the official 
client
drops the TCP connection. I'm not using SHA1 just for fun. :) I'm using it 
because
that's the way official clients work.

If listening support haven't implemented yet how will two msn-pecan clients 
connect
to each other? One party have to listen for incoming connections.

Original comment by kukker...@gmail.com on 26 Jan 2010 at 10:36

GoogleCodeExporter commented 9 years ago
@kukkerman You are the first one I see using "Hashed-Nonce" everybody else is 
using 
"Nonce". Also, I see the code where you generate a nonce string, but not code 
where 
you parse it.

msn-pecan clients cannot send files to each other yet.

Original comment by felipe.contreras on 27 Jan 2010 at 12:46

GoogleCodeExporter commented 9 years ago
The "Hashed-Nonce" is used by the official clients (Live Messenger and MSN 
Messenger
for example). At first I was surprised because I haven't found any information 
about
it. My suspicion is that they're used to increase security because when someone
connects to your opened socket you can check the nonce and the corresponding 
hash
acquired during direct connect negotiation. If they don't match then maybe 
someone
else is trying to "steal" files from you so you can drop the connection.
I think there's a pretty good chance that in the near future only the nonce-hash
method will be supported so it's better to prepare for that.

I don't parse the Nonce-Hash because my patch isn't complete. I've just 
released it
in its current state because I'm working on something else. You're right: the
Nonce-Hash should be parsed and checked against the acquired Nonce.

Original comment by kukker...@gmail.com on 27 Jan 2010 at 10:03

GoogleCodeExporter commented 9 years ago
@kukkerman I see, but I think before going the extra mile into what other 3rd 
party 
clients haven't even done yet; we need to provide basic support, and that's 
what I've 
tried to do in msn-pecan.

FTR. I'll release 0.1.0-rc3 so that people can start trying it, if there are no 
major 
issues, then we are ready for 0.1.0.

Afterwards, we'll need to implement listening support, then allow port 
configuration 
and then upnp. Only then we can start thinking about extra security stuff such 
as 
Hashed-Nonce. At least that's what I'll try to focus on... if somebody else 
sends a 
patch for any of that, it won't be rejected :)

Original comment by felipe.contreras on 27 Jan 2010 at 10:48

GoogleCodeExporter commented 9 years ago
I tried to send a file to a buddy using WLM2009 in the same LAN as me but he 
never
got the request transfer, using WinXP SP3 32 bit + pidgin 2.6.6 + 
pecan-0.1.0-rc4.

I'm attaching the log file in case it helps

Original comment by tommaso....@gmail.com on 2 Mar 2010 at 2:38

Attachments: