#!/usr/bin/python
#
# This makes you slippa teh prdownloads-shit
#
# written by andersg@0x63.nu
# beer licence - if you like it buy me a beer or something,
#                if you don't like it buy yourself a beer
#

# add this netfilter-rule:
# iptables -t nat -A OUTPUT -p tcp -d prdownloads.sourceforge.net \
#                           --dport 80 -j DNAT --to 127.0.0.1:8000

import BaseHTTPServer
import os
import sys


# configure here:
mirror = 'http://heanet.dl.sourceforge.net/sourceforge'
logpath = "/dev/null"
pidpath = '/var/run/prproxy.pid'
listenport = 8000

class Handler(BaseHTTPServer.BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(302)
        self.send_header("Content-type", "text/html")
	self.send_header("Location", mirror + self.path[0:self.path.index("?")])
        self.end_headers()
	self.wfile.write("Redirecting")

httpd = BaseHTTPServer.HTTPServer(("", listenport), Handler)

pid = os.fork()
if pid: # parent
    pidfile = open(pidpath,'w')
    pidfile.write('%d' % pid)
    pidfile.close()
    sys.exit(0)

#child
os.close(0)
os.close(1)
os.close(2)
sys.stdin=open('/dev/null')
sys.stdout=open(logpath,'w',0) # unbuffered
sys.stderr=open(logpath,'w',0)
os.setsid()

httpd.serve_forever()
