Operation over the HTTP proxy

Bug #140386 reported by Bug Importer on 2005-03-08
0
Affects Status Importance Assigned to Milestone
Coccinella
Medium
Mats

Bug Description

I often work in environments, where HTTP proxy is the
only way to obtain the Jabber connection.
Usually I use Psi in these conditions, but sometimes I
have to discuss some design details with my students,
which would be much easier to resolve using the
whiteboard enabled client.
Probably I'm not the only one, who would like to use
Coccinella over the HTTP proxy.
Theoretically the Preferences.tcl makes use of
http_proxy environment variable, but it doesn't work.
The login after setting the http_proxy variable results
in the following errors:

$ ./Coccinella.tcl
jlib::http::new url=jabberpl.org, args=-command
::Login::HttpProxyCmd
-proxyhost 172.17.1.1 -proxyport 8080
jlib::http::send
jlib::http::PostScheduled
POST: 0,<?xml version='1.0'
encoding='UTF-8'?><stream:stream
xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams'
xml:lang='en' to='jabberpl.org'>
after 10000 Poll
jlib::http::Response status=ok, 302
data=''
jlib::http::Finish status=error, errmsg=302
jlib::http::send

The Psi client works correctly with the same proxy...

Mats (matsben) wrote :

I never had a chance to test this code since I did not find an open
jabber server with http enabled (and was too lazy to set up one
myself). If you know one I would be glad to make it work. However,
file transfers wont work over the http proxy since I use p2p
transports, and any client must be able to reach any other clients
built in server. One solution is to set up port mappings if you only
have a router, firewalls shouldn't be able to traverse.

Mats

Mats (matsben) wrote :

Coccinella 0.95.10 has http proxy support, or more correctly, it can
connect to a jabber server using http polling, but this should work
transparently over a http proxy as well. I just never got a chance to test

it since I don't have a http proxy available. File transfers wont work
this
way, though.

Mats

sander (s-devrieze) wrote :

What's the status of this bug?

Changed in coccinella:
assignee: nobody → matsben

You can test HTTP polling (or even XMPP over BOSH, aka HTTP Binding) with Jabbim (http://www.jabbim.com/ and related domains). You can even ask DNS for TXT records and obtain the right polling URL automatically:

$ dig +short txt _xmppconnect.jabber.cz
"_xmpp-client-xbosh=http://bind.jabbim.cz"
"_xmpp-client-httppoll=http://poll.jabbim.cz"

Ad File Transfer behind HTTP proxy - you could implement In-Band Bytestreams method.

There are three items here:1) HTTP polling seems to work reasonably well now
but can probably be better.
2) BOSH: to do, seems pretty complicated, require HTTP 1.1
3) ibb: I have support for it but it is lower priority than bytestreams
(socks5) and there is no fallback in protocol. Perhaps better to wait for
Jingle here as ibb is less than optimal.

Well, when Coccinella knows it is connected through HTTP proxy, just disable SOCKS filetransfer method…

And yes, polling could work better – for example polling URL could be automatically obtained from DNS TXT records. :)

Mats (matsben) wrote :

> Well, when Coccinella knows it is connected through HTTP proxy, just disable SOCKS filetransfer method…

IBB is not a good option here anyway since it is inband the server

> And yes, polling could work better – for example polling URL could be automatically obtained from DNS TXT records. :)

I was actually thinking of the timing schedule. Anyway, DNS TXT records should work:

    proc cb {args} {puts "---> $args"}
() 3 % jlib::dns::get_http_poll_url jabber.ru cb
::dns::2
---> http://httppoll.jabber.ru

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers