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!
Actualy, it is not, and it is even not planed to do it. Maybe a day, after Kopete 1.0 for sure
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)
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.
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.
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???
> 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.
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)
Is the http-protocol support still planned or should I open a new wishlist-entry? At work, they only let port 80 through! ;)
There is no need to open another wishlist item. Just vote for this one.
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.
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.
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. >
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.
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.
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 >
> 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
------- 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>
------- 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
> > >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.
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. > > > >
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.
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!
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!
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.
*** Bug 94335 has been marked as a duplicate of this bug. ***
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.
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.
*** Bug 93957 has been marked as a duplicate of this bug. ***
*** Bug 99507 has been marked as a duplicate of this bug. ***
Too late for 3.4?
Yes, by several weeks.
Support for this has been added.
It has? I just SVN updated, but do not see any way to enable it. Do I just change the MSN port to 80?
Yes, I asked about the commit that added it. Don't have a link handy though.
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
felipe: you have to upgrade to the development version, or wait for KDE 3.5.