Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

Background

Flickr has closed its http api leaving an https only api. My favourite uploader (the official Flickr Uploadr version 2.5 running under wine) is no longer maintained, so this change broke it.

My current solution to this is to set up a reverse proxy server to translate http://www.flickr.com to https://www.flickr.com and fix my DNS so that www.flickr.com traffic gets forwarded to this proxy server.

This works but obviously I don't want all my flickr traffic going to the proxy, just the traffic coming from the uploader.

Question

Can I send just traffic from this app, directed to www.flickr.com, to my reverse proxy?

Supplementary Question

Is there a simpler way to achieve this? eg, forward http://www.flickr.com straight to https://www.flickr.com without the proxy server.

Solution

Embarrassingly the app itself has a proxy setting, so all I had to do was set this to point at my proxy server. Alternatively Giles's answer below shows how you can set a proxy for an individual Unix app and all Wine apps.

share|improve this question
    
The simpler way would be to edit the program's source code. Might be pretty simple if you basically just need to do a grep for 'http://'... Which program is this? –  derobert Jun 30 at 16:42
    
I've had a look at that, it's the official Flickr Uploadr version 2.5 so I don't have access to the source and editing the exe looks complicated as the address doesn't seem to be in the string table. –  Jamie Kitson Jun 30 at 22:04
    
Isn't that a Windows-only tool? There is a Linux version? (Or are you running it under Wine?) BTW: There is apparently a newer version, 3.2.1... –  derobert Jun 30 at 22:07
    
Yeah I'm running it under wine. I like this version, it's simple. –  Jamie Kitson Jun 30 at 22:27

2 Answers 2

up vote 2 down vote accepted

DNS alone won't help you: it can point your client to a different machine, but that machine would have to serve the expected Flickr content on port 80.

What you need is a proxy that receives HTTP requests over HTTP and reemits them using HTTPS. Point your uploader to this proxy; the proxy is the one making the DNS request, not the client, so you don't need to fiddle with DNS at all.

Apache with mod_proxy and mod_ssl is an easy, if heavyweight, such proxy. I can't think of a ready-made lighter-weight solution right now. Modifying Python's SimpleHTTPServer could be another solution.

To point a Wine application to a proxy, see the Wine FAQ §7.18 “How do I configure a proxy?”. There are two solutions:

  • The usual unix solution: set the environment variable http_proxy, e.g. (if your proxy is listening on port 8070):

    export http_proxy=http://localhost:8070/
    wine 'c:/Program Files/Flickr Uploader/Flickr Uploader.exe'
    
  • A Wine method: set the [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] ProxyEnable registry key (see the Wine FAQ for the syntax).

share|improve this answer
    
As stated in the question I've already done that. What I need is a way to direct www.flickr.com traffic for just the Flickr Uploadr at that machine, eg, with DNS. –  Jamie Kitson Jul 1 at 9:55
    
@JamieKitson As I wrote in my answer, the way to redirect is a proxy. DNS doesn't deal with protocols, it won't help you there. If you need help to configure Flickr Uploadr to use a proxy, that's a different question. I've updated my answer to cover the part that you edited into your question, but in the future, please ask separate questions separately. –  Gilles Jul 1 at 12:20
    
I don't need to deal with protocols, the reverse proxy does that, all I need to do is direct www.flickr.com traffic at the proxy, which your answer now helps me with. Thanks. –  Jamie Kitson Jul 1 at 12:56

Create an SSH port forward on your box and point the uploader to the local port.

ssh -L 80:www.flickr.com:443 user@localhost

Point the uploader to localhost:80 and the port forward will shovel the traffic to www.flickr.com:443

share|improve this answer
1  
What you are saying is true, the TCP traffic would be redirected. However, flickr is almost certainly running HTTPS on port 443, not plain HTTP (typical port 80). They are not directly compatible. –  cpugeniusmv Jun 30 at 16:43
    
@cpugeniusmv Ah, true. I wasn't thinking of HTTPS support not being built into the client. –  Creek Jun 30 at 16:45
    
The problem is that I can't point the uploader at anything manually, I need something to redirect the traffic for me. However I'm hoping that the uploader will talk https already. –  Jamie Kitson Jun 30 at 22:10

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.