Open Bug 264981 Opened 20 years ago Updated 2 years ago

support HTTP proxy connect feature for proxying mail/news protocols

Categories

(MailNews Core :: Networking, enhancement)

enhancement

Tracking

(Not tracked)

People

(Reporter: dmosedale, Unassigned)

References

Details

Attachments

(1 file)

I don't think this should be too hard to do.
Blocks: 23728
Severity: normal → enhancement
*applause*

(In my first week at Oracle, I, too, thought about doing that.  Curious
coincidence!)
The beginning of bug 180480 describes a possible workaround for this.
Blocks: 180490
Summary: support HTTP proxy connect feature for proxying mail protocols → support HTTP proxy connect feature for proxying mail/news protocols
So after some discussion with Darin, which I've attached to this bug with his
permission, it looks like this might not be too hard, but not quite as
straightforwards as I had initially guessed.
> darin what we don't have right now, is a way to pass logon credentials down to
the proxy layer

having such a way would also be useful for socks auth...
(In reply to comment #2)
> The beginning of bug 180480 describes a possible workaround for this.

it looks like this should be bug 180490 (like in the dependency)
Product: MailNews → Core
Assigning bugs that I'm not actively working on back to nobody; use
SearchForThis as a search term if you want to delete all related bugmail at
once.
Assignee: dmose → nobody
QA Contact: grylchan → mailnews.networking
Product: Core → MailNews Core
What can a user do if developers don't show any intrest in fixing 6 years old bug? Vote with his feet, change the software and spread the FUD?

In the meantime, there's a workaround. Create >SOCKS ----> >HTTP proxy.
You can accomplish this with DeleGate, command:
"delegated -P<SocksPort> SERVER=socks ROUTE=<HttpProxyIp>:<HttpProxyPort>"

----------------------------------
I believe this comment is entirely justified given the age of the bug and the amount of duplicate bug reports.
Is anyone planning to work on this? If I have a proxy.pac with something like this:

function FindProxyForURL(url, host) {
 //alert("url=" + url + " host=" + host);
 if (url.substring(0, 5) == "imap:"||url.substring(0, 7) == "mailto:") {
  if (shExpMatch(host, "*.example.com"))
   return "DIRECT";
  //alert("SOCKS localhost:1080 url=" + url + " host=" + host);
  //return "SOCKS localhost:1080";
  alert("PROXY proxy.example.com:80 url=" + url + " host=" + host);
  return "PROXY proxy.example.com:80";
 }
 // other non-mail stuff here
}

The SOCKS return works fine if enabled, but the PROXY return is ignored and thunderbird tries a direct connect to the target host:port anyway.

Is anyone working on this issue? Is there any good reason why PROXY is ignored for some protocols even if it's returned by the pac file?
"Notabugitsafeature" or something like that. Thunderbird will actually proxy stuff like images loaded from the email, just not the actual mail connections. At least as of 5 or so years ago, I tried to add this (simple) functionality, but got stuck just trying to get Thunderbird to build, and gave up.
Supporting HTTP CONNECT for the mailnews protocols is actually relatively hard. SOCKS works by making a custom socket type, so everything happens silently internally within the socket transport service. But there is no such logic for HTTP connect. The FTP protocol does support the HTTP proxy, but figuring out that logic was beyond me after a few hours of investigation. Contrary to what some people might think, this is *not* a simple bug.

I'll point out that it's likely in the medium-term future that we'll be abandoning nsMsgProtocol for TCPSocket, such that making HTTP proxies work there (see bug 902346) will eventually fix this bug.
Could we use a custom socket type for HTTP CONNECT?
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: