[65] | 1 | """ |
---|
| 2 | An XMPP Ping client as a standalone server via s2s. |
---|
| 3 | |
---|
| 4 | This ping client accepts and initiates server-to-server connections using |
---|
| 5 | dialback and listens on C{127.0.1.1} with the domain set to the default |
---|
| 6 | hostname of this machine. |
---|
| 7 | """ |
---|
| 8 | |
---|
| 9 | import socket |
---|
| 10 | |
---|
| 11 | from twisted.application import service, strports |
---|
| 12 | from twisted.words.protocols.jabber.jid import JID |
---|
| 13 | from wokkel import component, server |
---|
| 14 | from pinger import Pinger |
---|
| 15 | |
---|
| 16 | # Configuration parameters |
---|
| 17 | |
---|
| 18 | S2S_PORT = 'tcp:5269:interface=127.0.1.1' |
---|
| 19 | SECRET = 'secret' |
---|
| 20 | DOMAIN = socket.gethostname() |
---|
| 21 | OTHER_DOMAIN = 'localhost' |
---|
| 22 | LOG_TRAFFIC = True |
---|
| 23 | |
---|
| 24 | |
---|
| 25 | # Set up the Twisted application |
---|
| 26 | |
---|
| 27 | application = service.Application("Pinger Server") |
---|
| 28 | |
---|
| 29 | router = component.Router() |
---|
| 30 | |
---|
| 31 | serverService = server.ServerService(router, domain=DOMAIN, secret=SECRET) |
---|
| 32 | serverService.logTraffic = LOG_TRAFFIC |
---|
| 33 | |
---|
| 34 | s2sFactory = server.XMPPS2SServerFactory(serverService) |
---|
| 35 | s2sFactory.logTraffic = LOG_TRAFFIC |
---|
| 36 | s2sService = strports.service(S2S_PORT, s2sFactory) |
---|
| 37 | s2sService.setServiceParent(application) |
---|
| 38 | |
---|
| 39 | pingerComponent = component.InternalComponent(router, DOMAIN) |
---|
| 40 | pingerComponent.logTraffic = LOG_TRAFFIC |
---|
| 41 | pingerComponent.setServiceParent(application) |
---|
| 42 | |
---|
| 43 | pingerHandler = Pinger(JID(OTHER_DOMAIN), JID(DOMAIN)) |
---|
| 44 | pingerHandler.setHandlerParent(pingerComponent) |
---|