Bug 63458 - Support for MSN HTTP Protocol
Summary: Support for MSN HTTP Protocol
Status: RESOLVED FIXED
Alias: None
Product: kopete
Classification: Unmaintained
Component: MSN Plugin (other bugs)
Version First Reported In: 0.7.1
Platform: Gentoo Packages Linux
: NOR wishlist
Target Milestone: ---
Assignee: Kopete Developers
URL:
Keywords:
: 93957 94335 99507 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-08-30 13:02 UTC by Graham Dennis
Modified: 2005-07-09 03:31 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Dump of traffic for Gaim's connection to MSN over HTTP (2.97 KB, text/plain)
2003-08-30 14:33 UTC, Graham Dennis
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Graham Dennis 2003-08-30 13:02:56 UTC
Version:           0.7.1 (using KDE 3.1.2)
Installed from:    Gentoo
Compiler:          gcc version 3.2.2
OS:          Linux (i686) release 2.4.20-gentoo-r6

Is it possible to support MSN through a HTTP proxy like Gaim / the Windows client does?
Congratulations on an excellent IM client!
Comment 1 Olivier Goffart 2003-08-30 13:39:00 UTC
Actualy, it is not, and it is even not planed to do it. 
 
Maybe a day, after Kopete 1.0 for sure 
Comment 2 Martijn Klingens 2003-08-30 14:01:18 UTC
Subject: Re: [Kopete-devel]   Support for MSN through a HTTP Proxy

On Saturday 30 August 2003 13:39, Olivier Goffart wrote:
> Actualy, it is not, and it is even not planed to do it.

KExtendedSocket does support HTTP proxies, can we simply use them already 
right now???

(will try when I'm back home, there is no proxy to test with in Nove Hrady)

Comment 3 Graham Dennis 2003-08-30 14:33:53 UTC
Created attachment 2330 [details]
Dump of traffic for Gaim's connection to MSN over HTTP

From my understanding of how the windows client does this, it uses special
URL's 
and the POST request. 
Eg: 
======= 
POST 
http://gateway.messenger.hotmail.com/gateway/gateway.dll?Action=open&Server=NS&IP=messenger.hotmail.com

HTTP/1.1 
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; MSN 
Messenger 6.0.0602) 
Host: gateway.messenger.hotmail.com 
Proxy-Connection: Keep-Alive 
Connection: Keep-Alive 
Pragma: no-cache 
Content-Type: application/x-msn-messenger 
Content-Length: 24 
 
VER 2 MSNP9 MSNP8 CVR0 
======= 
and 
======= 
POST http://207.46.110.40/gateway/gateway.dll?SessionID=158227970.26865 
HTTP/1.1 
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; MSN 
Messenger 6.0.0602) 
Host: 207.46.110.40 
Proxy-Connection: Keep-Alive 
Connection: Keep-Alive 
Pragma: no-cache 
Content-Type: application/x-msn-messenger 
Content-Length: 88 
 
CVR 3 0x0409 winnt 5.0 i386 MSNMSGR 6.0.0602 MSMSGS 
thinkoutsideyoursphere@hotmail.com 
========= 
and 
========= 
POST 
http://207.46.110.40/gateway/gateway.dll?Action=poll&SessionID=158227970.25501 
HTTP/1.1 
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; MSN 
Messenger 6.0.0602) 
Host: 207.46.110.40 
Proxy-Connection: Keep-Alive 
Connection: Keep-Alive 
Pragma: no-cache 
Content-Type: application/x-msn-messenger 
Content-Length: 0 
============== 
But Gaim does it using CONNECT (which is probably easier to do) see attached
dump.
Comment 4 Olivier Goffart 2003-08-30 14:43:17 UTC
I know the HTTP MSN protocol. 
and i know how it works. 
 
Technicaly, that would not require so much change, only MSNSocket base class 
will be affected. (and maybe some config options.) 
 
anyway i did not plane to do it (because i do not care, i don't use it) 
and we are going to enter in the Kopete 1.0 features releases: so i doubt it 
can be implemented before Kopete 1.0, exepted if someone else do it. 
Comment 5 Martijn Klingens 2003-08-30 15:13:08 UTC
Subject: Re: [Kopete-devel]   Support for MSN through a HTTP Proxy

On Saturday 30 August 2003 14:43, Olivier Goffart wrote:
> I know the HTTP MSN protocol.
> and i know how it works.

Why use it like that? Why not simply do nothing, configure KExtendedSocket 
properly in KConfig and let KExtendedSocket do a proxy CONNECT request for 
us???

Comment 6 Olivier Goffart 2003-08-30 15:39:25 UTC
> let KExtendedSocket do a proxy CONNECT request for  us??? 
 
MSN has his own HTTP protocol 
http://www.hypothetic.org/docs/msn/general/http_connections.php 
 
It's used for example when the msn port is blocked. 
The official client automaticaly try it if the normal connection fail. 
 
it is not realy a proxy connection. 
Comment 7 Daniel Stone 2003-11-19 00:40:41 UTC
Gof,
What Martijn is saying is that you can use a HTTP proxy, but *not* use the MSN HTTP protocol. If you issue a proxy CONNECT, then you get a plain connection to the outside world, just going through the proxy. This means you can *still* use the protocol you use now, just through a proxy, which means I'll be able to actually use Kopete from home.

As Martijn said, all you guys need to do is add a config option and set KExtendedSocket up right.

Cheers,
Daniel (whose net connection right now gets him a 192.168.x.x IP)
Comment 8 Daniel Vollmer 2004-03-24 09:31:34 UTC
Is the http-protocol support still planned or should I open a new wishlist-entry? At work, they only let port 80 through! ;)
Comment 9 Jason Keirstead 2004-03-24 14:30:30 UTC
There is no need to open another wishlist item. Just vote for this one.
Comment 10 Jason Keirstead 2004-03-24 14:32:55 UTC
Also, I am changing the title for this since the MSN HTTP protocol is totally independant of HTTP proxies. If you have the HTTP protocol you don't need an HTTP proxy at all, that's the point of it.
Comment 11 Jason Keirstead 2004-03-26 23:36:12 UTC
Oliver, I know from above that you don't really have the desire (or maybe time) to work on this, but I have such a high desire that I'll implement it myself :P
And I also have the ideal test envoironment ( my work, where all windows machines use MSN fine, and AMSN works, but Kopete does not :(

So If you can give me a pointer as to what I need to look at in MSNSocket and/or docs on the HTTP protocol, it'd be much appreciated.
Comment 12 Darrell Esau 2004-03-27 00:42:39 UTC
Hi Jason,

Thiago Macieira (the author of KExtendedSocket) is working on this -- or
has done some work on this already.

Basically, the MSN protocol in Kopete uses KExtendedSocket, which needs to
be augmented to support HTTP Proxy.  He is reworking KExtendedSocket
fairly extensively and (I believe) he plans on releasing the new code with
KDE 3.3 or 4.0.

You might want to contact him to see how that's going.

You can look in the class documentation for KExtendedSocket for his email
address.

-d

> ------- You are receiving this mail because: -------
> You are a voter for the bug, or are watching someone who is.
>
> http://bugs.kde.org/show_bug.cgi?id=63458
>
>
>
>
> ------- Additional Comments From jason keirstead org  2004-03-26 23:36
-------
> Oliver, I know from above that you don't really have the desire (or
maybe time) to work on this, but I have such a high desire that I'll
implement it myself :P
> And I also have the ideal test envoironment ( my work, where all windows
machines use MSN fine, and AMSN works, but Kopete does not :(
>
> So If you can give me a pointer as to what I need to look at in
MSNSocket and/or docs on the HTTP protocol, it'd be much appreciated.
>



Comment 13 Olivier Goffart 2004-03-27 11:56:55 UTC
Hi Darrell,

The MSN HTTP protocol is a fully protocol, it's not just the normal msn protocol over a proxy.


For information, here is the documentation: http://www.hypothetic.org/docs/msn/general/http_connections.php
I think you need to modify MSNSocket::sendMessage and MSNSocket slotDataReceived  to handle the HTTP Header.
Comment 14 Jason Keirstead 2004-03-27 18:09:20 UTC
On March 26, 2004 07:30 pm, Darrell Esau wrote:
> Hi Jason,
> 
> Thiago Macieira (the author of KExtendedSocket) is working on this -- or
> has done some work on this already.
> 
> Basically, the MSN protocol in Kopete uses KExtendedSocket, which needs to
> be augmented to support HTTP Proxy. 

No no no. I don't know why people keep getting this confused so much.

MSN has an HTTP *protocol*. It has nothing at all to do with HTTP proxies, which would with with any protocol

If you use the MSN HTTP protocol you don't need an HTTP proxy at all in the first place.

Which  is the only option for lots of work environments, like mine. The only outgoing connections allowed
 are on specific ports (80, 443, 22, some others ). There is no proxy. So HTTP proxy support is not usefull.

But the MSN HTTP protocol works ideal in this situation, and as such all Windows users an people who use
aMSN are the only ones who can use MSN in the office right now.


Comment 15 Darrell Esau 2004-03-28 00:23:28 UTC
Hmm.. I'm not sure if I understand that correctly.

At my work environment, I cannot connect to the internet via HTTP unless I
use an HTTP proxy.  There is no DNS or routing to the internet unless the
web browser (or other http client) uses the squid web proxy which is on
the intranet.

So -- if the MSN HTTP protocol is implemented directly in Kopete, does it
support the use of http proxy?

-d

> On March 26, 2004 07:30 pm, Darrell Esau wrote:
>>
> No no no. I don't know why people keep getting this confused so much.
>
> MSN has an HTTP *protocol*. It has nothing at all to do with HTTP proxies,
> which would with with any protocol
>
> If you use the MSN HTTP protocol you don't need an HTTP proxy at all in
> the first place.
>
> Which  is the only option for lots of work environments, like mine. The
> only outgoing connections allowed
>  are on specific ports (80, 443, 22, some others ). There is no proxy. So
> HTTP proxy support is not usefull.
>
> But the MSN HTTP protocol works ideal in this situation, and as such all
> Windows users an people who use
> aMSN are the only ones who can use MSN in the office right now.
>
>
> --
> There's no place like 127.0.0.1
>
> http://www.keirstead.org
>

Comment 16 Olivier Goffart 2004-03-28 11:08:22 UTC
> if the MSN HTTP protocol is implemented directly in Kopete, does it 
> support the use of http proxy

Like you said before, if MSN uses KExtendedSocket, it will support HTTP Proxy for free.

Anyway, to be able to use HTTP Proxy, we first need to implement the MSN HTTP Protocol, because the MSN Server listening the port 80 is using the MSN HTTP Protocol
Comment 17 Jason Keirstead 2004-03-28 17:42:09 UTC
------- Additional Comments From ogoffart tiscalinet be 2004-03-28 11:08 
-------

>>if the MSN HTTP protocol is implemented directly in Kopete, does it 
>>support the use of http proxy
>>    
>>
>
>Like you said before, if MSN uses KExtendedSocket, it will support HTTP Proxy for free.
>
>Anyway, to be able to use HTTP Proxy, we first need to implement the MSN HTTP Protocol, because the MSN Server listening the port 80 is using the MSN HTTP Protocol
>  
>
Noooooo. this is all wrong. OK, final explanation.

Definition - HTTP Proxy - This lets programs which make use of it tunnel 
a connection  to *any* host on *any* port with *any* protocol over HTTP. 
Thus, if your company has an HTTP proxty, and this proxy supports 
CONNECT ( squid, for example ), then that app can connect out to any 
port. For example, OSCAR would work over an HTP proxy. So would the 
normal MSN protocol, so would anything, so long as the app supports it. 
This is what KExtendedSocket is going to provide, transparant support 
for HTTP proxies for all KDE apps. But this is not sufficient in many 
work environments with strict firewall rules - See below.

Definition - MSN HTTP protocol - This is an implementation of the MSN 
protocol using HTTP POST methods at an MSN web server.  It does not 
require an HTTP proxy, you could use it with or without one.

Q - If my company has an HTTP proxy, can I use the current MSN protocol 
with it wiht the new KExtended SOcket

A - Yes, this will work fine. So if your company uses an HTTP proxy that 
supports CONNECT, then the MSN HTTP protocol is of no use to you at all.

Q - If my company does *not* have an HTTP proxy, but rather, only allows 
outgoing connections to hosts on port 80 via firewall rules, can I use 
the current MSN protocol with KExtendedSocket?

A - No. Since the MSN protocol needs to connect out on port 1863, and 
you have no proxy server to use, you cannot use it in this situation. 
This is the situation where the MSN HTTP protcol is needed. Since it 
uses the MSN Web server on port 80, it will work fine.

Summary - The MSN HTTP protocol and HTTP proxy support are totally 
orthoganoal to each other.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
  <title></title>
</head>
<body>
------- Additional Comments From ogoffart tiscalinet be 2004-03-28
11:08 -------<br>
<blockquote cite="mid20040328090824.18313.qmail@ktown.kde.org"
 type="cite">
  <blockquote type="cite">
    <pre wrap="">if the MSN HTTP protocol is implemented directly in Kopete, does it 
support the use of http proxy
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Like you said before, if MSN uses KExtendedSocket, it will support HTTP Proxy for free.

Anyway, to be able to use HTTP Proxy, we first need to implement the MSN HTTP Protocol, because the MSN Server listening the port 80 is using the MSN HTTP Protocol
  </pre>
</blockquote>
Noooooo. this is all wrong. OK, final explanation.<br>
<br>
Definition - HTTP Proxy - This lets programs which make use of it
tunnel a connection  to *any* host on *any* port with *any* protocol
over HTTP. Thus, if your company has an HTTP proxty, and this proxy
supports CONNECT ( squid, for example ), then that app can connect out
to any port. For example, OSCAR would work over an HTP proxy. So would
the normal MSN protocol, so would anything, so long as the app supports
it. This is what KExtendedSocket is going to provide, transparant
support for HTTP proxies for all KDE apps. But this is not sufficient
in many work environments with strict firewall rules - See below.<br>
<br>
Definition - MSN HTTP protocol - This is an implementation of the MSN
protocol using HTTP POST methods at an MSN web server.  It does not
require an HTTP proxy, you could use it with or without one.<br>
<br>
Q - If my company has an HTTP proxy, can I use the current MSN protocol
with it wiht the new KExtended SOcket <br>
<br>
A - Yes, this will work fine. So if your company uses an HTTP proxy
that supports CONNECT, then the MSN HTTP protocol is of no use to you
at all.<br>
<br>
Q - If my company does *not* have an HTTP proxy, but rather, only
allows outgoing connections to hosts on port 80 via firewall rules, can
I use the current MSN protocol with KExtendedSocket?<br>
<br>
A - No. Since the MSN protocol needs to connect out on port 1863, and
you have no proxy server to use, you cannot use it in this situation.
This is the situation where the MSN HTTP protcol is needed. Since it
uses the MSN Web server on port 80, it will work fine.<br>
<br>
Summary - The MSN HTTP protocol and HTTP proxy support are totally
orthoganoal to each other. <br>
<br>
</body>
</html>
Comment 18 Darrell Esau 2004-03-28 20:45:44 UTC
------- Additional Comments From ogoffart tiscalinet be 2004-03-28 11:08 
-------

>>if the MSN HTTP protocol is implemented directly in Kopete, does it 
>>support the use of http proxy
>>    
>>
>
>Like you said before, if MSN uses KExtendedSocket, it will support HTTP Proxy for free.
>
>  
>
No -- it won't.  That's exacly my point.

There is no HTTP Proxy support in KExtendedSocket.  Thiago was working 
on resolving this at some time.

>Anyway, to be able to use HTTP Proxy, we first need to implement the MSN HTTP Protocol, because the MSN Server listening the port 80 is using the MSN HTTP Protocol
>  
>

Ok -- so it sounds like we have two problems to solve then.

-d

Comment 19 Jason Keirstead 2004-03-28 21:05:27 UTC
>
>
>No -- it won't.  That's exacly my point.
>
>There is no HTTP Proxy support in KExtendedSocket.  Thiago was working 
>on resolving this at some time.
>  
>
There is in HEAD, or it is in progress.

>>Anyway, to be able to use HTTP Proxy, we first need to implement the MSN HTTP Protocol, because the MSN Server listening the port 80 is using the MSN HTTP Protocol
>> 
>>
>Ok -- so it sounds like we have two problems to solve then.
>  
>
Two things to support yes. But  netiher requires the other. See my above 
post.

Comment 20 Darrell Esau 2004-03-28 21:09:10 UTC
Ok -- I understand that there is a different protocol for MSN HTTP... 
however I'm not concerned with it.

I'm very annoyed that this bug was changed from "Proxy wishlist" to "MSN 
HTTP Protocol wishlist".

I don't care about having the MSN HTTP protocol supported.. and that's 
not what this bug was filed for. 

People want _Proxy_ support for MSN.

In a previous comment on this bug you wrote:

" ... If you have the HTTP protocol you don't need an HTTP proxy at all, 
that's the point of it. "

However -- your definitions below state that this is not true.

If the MSN HTTP protocol is implemented, this does not automatically get 
us proxy support.. it would still have to be implemented.

If it somehow does magically get us proxy support, then I'm all for it, 
however my doubts and concerns are exactly this: implementing the MSN 
HTTP protocol does not automatically give us HTTP Proxy support.

-d




Jason Keirstead wrote:

>------- You are receiving this mail because: -------
>You are a voter for the bug, or are watching someone who is.
>      
>http://bugs.kde.org/show_bug.cgi?id=63458      
>
>
>
>
>------- Additional Comments From jason keirstead org  2004-03-28 17:42 -------
>------- Additional Comments From ogoffart tiscalinet be 2004-03-28 11:08 
>-------
>
>  
>
>>>if the MSN HTTP protocol is implemented directly in Kopete, does it 
>>>support the use of http proxy
>>>   
>>>
>>>      
>>>
>>Like you said before, if MSN uses KExtendedSocket, it will support HTTP Proxy for free.
>>
>>Anyway, to be able to use HTTP Proxy, we first need to implement the MSN HTTP Protocol, because the MSN Server listening the port 80 is using the MSN HTTP Protocol
>> 
>>
>>    
>>
>Noooooo. this is all wrong. OK, final explanation.
>
>Definition - HTTP Proxy - This lets programs which make use of it tunnel 
>a connection  to *any* host on *any* port with *any* protocol over HTTP. 
>Thus, if your company has an HTTP proxty, and this proxy supports 
>CONNECT ( squid, for example ), then that app can connect out to any 
>port. For example, OSCAR would work over an HTP proxy. So would the 
>normal MSN protocol, so would anything, so long as the app supports it. 
>This is what KExtendedSocket is going to provide, transparant support 
>for HTTP proxies for all KDE apps. But this is not sufficient in many 
>work environments with strict firewall rules - See below.
>
>Definition - MSN HTTP protocol - This is an implementation of the MSN 
>protocol using HTTP POST methods at an MSN web server.  It does not 
>require an HTTP proxy, you could use it with or without one.
>
>Q - If my company has an HTTP proxy, can I use the current MSN protocol 
>with it wiht the new KExtended SOcket
>
>A - Yes, this will work fine. So if your company uses an HTTP proxy that 
>supports CONNECT, then the MSN HTTP protocol is of no use to you at all.
>
>Q - If my company does *not* have an HTTP proxy, but rather, only allows 
>outgoing connections to hosts on port 80 via firewall rules, can I use 
>the current MSN protocol with KExtendedSocket?
>
>A - No. Since the MSN protocol needs to connect out on port 1863, and 
>you have no proxy server to use, you cannot use it in this situation. 
>This is the situation where the MSN HTTP protcol is needed. Since it 
>uses the MSN Web server on port 80, it will work fine.
>
>Summary - The MSN HTTP protocol and HTTP proxy support are totally 
>orthoganoal to each other.
>
>
>  
>

Comment 21 Jason Keirstead 2004-03-31 19:25:37 UTC
As a note to everyone...

Until Thiago is done with the new HTTP proxy support in HEAD, I have found that the following program works perfect to tunnel Kopete over an HTTP proxy ( I set one up at my house so I can use Kopete at work )

http://httppc.sourceforge.net/

Basically, you build the program, LD_PRELOAD the .so just before running Kopete, and you're off to the races.
Comment 22 Hackeron 2004-05-09 19:02:08 UTC
2003-08-30 - to present day 2004-05-09  -- still no http proxy support. I don't want to flame, or troll, but thats quite disturbing. As a built in client to KDE, it should really support http proxy like all other MSN supporting clients in linux!
Comment 23 Hackeron 2004-05-09 19:32:29 UTC
PS, ask bitlbee (http://www.bitlbee.org) how they managed to adapt gaim's network code to an irc gateway. That is surely much harder than just using the http proxy network code from gaim and just making a link to kopete.

We need http proxy support damn it!
Comment 24 Jason Keirstead 2004-05-09 19:51:21 UTC
On May 9, 2004 02:32 pm, Hackeron wrote:
> ------- Additional Comments From hackeron dsl pipex com  2004-05-09 19:32 -------
> PS, ask bitlbee (http://www.bitlbee.org) how they managed to adapt gaim's network code to an irc gateway. That is surely much harder than just using the http proxy network code from gaim and just making a link to kopete.
> 
> We need http proxy support damn it!
> 

Once again ( no one seems to read the  previous bug posings??! )

a) This bug has nothing to do with HTTP proxy support. The MSN HTTP protocol does not need an HTTP proxy, nor does it have any relation to one.
b) Transparant HTTP proxy support is going to be built into KDE for *all* apps, not just Kopete
c) The code is already in CVS, Kopete just has to make use of it. But 
 - that would break 3.2 compatability totally
 - the classes are likely being renamed so we're waiting on that as well

So, in conslusion

a) Post HTTP proxy related requets to kdelibs, not Kopete, Kopete itself is not going to be doing this in any way, shape or form
b) The likelihood of it being in KDE 3.3 in August IMO is slim to none, seeing how code freeze is in June. Look to KDE 3.4  or 4.0 for this
c) http://httppc.sourceforge.net/  is your friend. I use this with Kopete every day at work with 0 issues.

Comment 25 Matt Rogers 2004-12-03 18:26:51 UTC
*** Bug 94335 has been marked as a duplicate of this bug. ***
Comment 26 Jordan Pilat 2004-12-16 22:09:29 UTC
From what I gather, this bug has nothing to with the MSN HTTP protocol.  The original bug request was to integrate proxy support into the [standard] MSN protocol, thus allowing one to connect to the [standard] MSN servers via port 80, rather than port 1863.  In no part of the original feature request was an implementation of the MSN HTTP protocol requested.
Comment 27 Thiago Macieira 2004-12-16 22:40:27 UTC
The code for HTTP Proxy (not MSN HTTP) is there in KDE 3.3. It is not active by default and requires an extra bit of code to be enabled.

That is so because I wrote it, but did not have the time to test it or integrate the way I wanted.
Comment 28 Olivier Goffart 2005-01-23 10:33:10 UTC
*** Bug 93957 has been marked as a duplicate of this bug. ***
Comment 29 Olivier Goffart 2005-02-16 14:31:51 UTC
*** Bug 99507 has been marked as a duplicate of this bug. ***
Comment 30 jeff pitman 2005-03-09 02:36:50 UTC
Too late for 3.4?
Comment 31 Thiago Macieira 2005-03-09 02:45:05 UTC
Yes, by several weeks.
Comment 32 Matt Rogers 2005-06-25 05:44:54 UTC
Support for this has been added.
Comment 33 Jason Keirstead 2005-06-27 14:33:15 UTC
It has?

I just SVN updated, but do not see any way to enable it.

Do I just change the MSN port to 80?
Comment 34 Matt Rogers 2005-06-28 01:11:22 UTC
Yes, I asked about the commit that added it. Don't have a link handy though.
Comment 35 felipe 2005-07-08 15:33:23 UTC
I am behind a firewall and has a proxy server running. How can I set up kopete to get access over the proxy server ?? I use kde 3.4.0
Comment 36 Thiago Macieira 2005-07-09 03:31:52 UTC
felipe: you have to upgrade to the development version, or wait for KDE 3.5.