This file is indexed.

/usr/share/pyshared/wokkel/componentservertap.py is in python-wokkel 0.7.1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# Copyright (c) Ralph Meijer.
# See LICENSE for details.

"""
XMPP Component Service.

This provides an XMPP server that accepts External Components connections
and accepts and initiates server-to-server connections for the specified
domain(s).
"""

from twisted.application import service, strports
from twisted.python import usage
from twisted.words.protocols.jabber import component
from wokkel import server

class Options(usage.Options):

    optParameters = [
            ('component-port', None, 'tcp:5347:interface=127.0.0.1',
                'Port components connect to'),
            ('component-secret', None, 'secret',
                'Secret components use to connect'),
            ('server-port', None, 'tcp:5269',
                'Port other servers connect to'),
            ('server-secret', None, None,
                'Shared secret for dialback verification'),
    ]

    optFlags = [
            ('verbose', 'v', 'Log traffic'),
    ]

    def __init__(self):
        usage.Options.__init__(self)
        self['domains'] = set()


    def opt_domain(self, domain):
        """
        Domain to accept server connections for. Repeat for more domains.
        """
        self['domains'].add(domain)


    def postOptions(self):
        if not self['domains']:
            raise usage.UsageError('Need at least one domain')



def makeService(config):
    s = service.MultiService()

    router = component.Router()

    # Set up the XMPP server service

    serverService = server.ServerService(router, secret=config['server-secret'])
    serverService.domains = config['domains']
    serverService.logTraffic = config['verbose']

    # Hook up XMPP server-to-server service
    s2sFactory = server.XMPPS2SServerFactory(serverService)
    s2sFactory.logTraffic = config['verbose']
    s2sService = strports.service(config['server-port'], s2sFactory)
    s2sService.setServiceParent(s)

    # Hook up XMPP external server-side component service
    cFactory = component.XMPPComponentServerFactory(router,
                                                    config['component-secret'])

    cFactory.logTraffic = config['verbose']
    cServer = strports.service(config['component-port'], cFactory)
    cServer.setServiceParent(s)

    return s