#!/usr/bin/python

#
# Copyright: Collin Mulliner <collin@mulliner.org>
# Web: http://www.mulliner.org/nfc/
#
# License: GPLv2
#

from twisted.internet.protocol import Protocol, Factory
from twisted.internet import reactor

class BadProxy(Protocol):
	def __init__(self):
		self.__lines = ""

	def __reqComplete(self):
		if self.__lines.find("\r\n\r\n") != -1:
			return 1
		elif self.__lines.find("\n\n") != -1:
			return 1
		elif self.__lines.find("\r\r") != -1:
			return 1
		else:
			return 0
	
	def __sendAnswer(self):
		answer = "HTTP/1.1 300 OK\n"
		answer = answer + "Location: http://www.heise.de\n\n\n"
		self.transport.write(answer)

	def dataReceived(self, data):
		self.__lines = self.__lines + data
		if self.__reqComplete() == 1:
			self.__sendAnswer()
			#print self.__lines
			self.__lines = ""

def main():
	f = Factory()
	f.protocol = BadProxy
	reactor.listenTCP(6666, f)
	reactor.run()

if __name__ == '__main__':
	main()
