[Twisted-Python] Failed to load application: cannot import name app

Hi Guys, I stumpled upon a small dns filter program, that I am having trouble running, due to "twisted.internet.app" being deprecated. I get the following output "Failed to load application: cannot import name app" Im running "twistd (the Twisted daemon) 2.5.0" Any advice on how to proceed? Kind regards Tax #!/usr/bin/python # # Run this as root with the command # twistd -y dnsfilter.py from twisted.internet import app, defer from twisted.protocols import dns from twisted.names import client, server roots = [ ('198.41.0.4',53), ('128.9.0.107',53), ('192.33.4.12',53), ('128.8.10.90',53), ('192.203.230.10',53), ('192.5.5.241',53), ('192.112.36.4',53), ('128.63.2.53',53), ('192.36.148.17',53), ('192.58.128.30',53), ('193.0.14.129',53), ('198.32.64.12',53), ('202.12.27.33',53), ] #roots = [('202.129.64.42',53)] # just use my ISP's DNS VERISIGN='@^n\x0b' # 64.94.110.11 class AntiVerisignResolver(client.Resolver): def filterAnswers(self, message): if message.trunc: return self.queryTCP(message.queries).addCallback(self.filterAnswers) else: for i in range(len(message.answers)): x = message.answers[i] if x.type==1 and x.payload and x.payload.address==VERISIGN: message.answers[i] = None return (filter(lambda x:x,message.answers), message.authority, message.additional) verbosity = 0 resolver = AntiVerisignResolver(servers=roots) f = server.DNSServerFactory(clients=[resolver], verbose=verbosity) p = dns.DNSDatagramProtocol(f) f.noisy = p.noisy = verbosity application = app.Application('Non caching anti-verisign domain name resolver') application.listenUDP(53, p) application.listenTCP(53, f) src: http://osdir.com/ml/python.twisted/2003-09/msg00055.html

On Tue, 7 Jul 2009 17:20:41 +0200, Jesper Taxbøl <jesper@taxboel.dk> wrote:
I think the `listenUDP´ line probably causes an AttributeError to be raised. This prevents the tac file from being evaluated completely, so twistd ends up with an exception instead of an application. Take a look at the classes in twisted.application.internet (eg UDPServer, TCPServer) for the way to set up servers the new way. Jean-Paul

On Tue, 7 Jul 2009 17:20:41 +0200, Jesper Taxbøl <jesper@taxboel.dk> wrote:
I think the `listenUDP´ line probably causes an AttributeError to be raised. This prevents the tac file from being evaluated completely, so twistd ends up with an exception instead of an application. Take a look at the classes in twisted.application.internet (eg UDPServer, TCPServer) for the way to set up servers the new way. Jean-Paul
participants (2)
-
Jean-Paul Calderone
-
Jesper Taxbøl