| Home | Trees | Indices | Help |
|
|---|
|
|
1 # Distributed under the terms of GPL version 2 or any later
2 # Copyright (C) Alexey Nezhdanov 2004
3 # Configuration reader for xmppd.py
4
5 # $Id: config.py,v 1.3 2004/10/03 17:47:50 snakeru Exp $
6
7 from xmpp import *
8 #import ConfigParser
9
10 #cfgfile='xmppd.cfg'
11
12 from string import *
13 from xml.sax import ContentHandler
14 from xml.sax import parseString
15 from xml.sax import make_parser
16 from xml.sax.handler import *
17 import os
18 import copy
19
20 servernames = []
21 administrators = {}
22 certificatefile = ''
23 spoolpath = ''
24 sslkeyfile = ''
25 #mucjid = ''
26 #mucname = ''
27 plugins = {}
28 components = {} # Core agents like AMS, DF, ...
29
31 '''XML streams parser for xmppd'''
33 self.ch = xmppdXMLHandler()
34
36 self.ch.tag_attr = tag_attr
37 parseString(xmlstream, self.ch)
38 return self.ch.tag_name, self.ch.message
39
42 self.chars = ""
43 self.message = ""
44 self.section = ""
45 self.current_tag = ""
46 self.current_server = ""
47 self.current_admins = []
48
50 global certificatefile
51 global spoolpath
52 global administrators
53 global plugins
54 global components
55 self.chars = ""
56 self.tag_name = name
57 if self.section == "components":
58 try:
59 d = dict()
60 for k, v in attrs.items():
61 d[str(k)] = str(v) # De-unicodize
62 components[name.lower()] = d
63 except:
64 pass
65 elif self.section == "plugins": # Server plugins
66 try:
67 d = dict()
68 for k, v in attrs.items():
69 d[str(k)] = str(v) # De-unicodize
70 plugins[name] = d
71 except:
72 pass
73 elif name == "plugins":
74 self.section = "plugins"
75 elif name == "components":
76 self.section = "components"
77 elif name == "server":
78 self.section = "server"
79 #print "Current Tag: " + name
80 elif name == "servernames":
81 self.section = "servernames"
82 #print "Current Tag: " + name
83 elif name == "name":
84 self.current_tag = "name"
85 #print "Current Tag: " + name
86 elif name == "certificate":
87 self.section = "certificate"
88 try:
89 certificatefile = attrs['file']
90 except:
91 certificatefile = ''
92 #print "Current Tag: " + name
93 elif name == "administrators":
94 self.section = "administrators"
95 #print "Current Tag: " + name
96 try:
97 self.current_server = attrs['server']
98 except:
99 self.current_server = ''
100 elif name == "admin":
101 self.current_tag = "admin"
102 try:
103 self.current_admins.append(attrs['name'])
104 except:
105 pass
106 else:
107 self.chars = ""
108 self.tag_name = name
109
112
114 global mucjid
115 global administrators
116 #print 'Final de: ' + name + ' con current_tag: ' + self.current_tag
117 #print 'Caracteres : ' + self.chars
118 if name == "components":
119 self.section = ""
120 if name == "plugins":
121 self.section = ""
122 elif name == "name":
123 servernames.append(self.chars)
124 #elif name == "server":
125 # Try to guess muc jid
126 #try:
127 # mucjid = "muc." + servernames[0]
128 #except:
129 # print "ERROR: Could not find suitable JID for MUC component."
130 elif name == "administrators":
131 try:
132 administrators[self.current_server] = self.current_admins
133 except:
134 pass
135 self.current_admins = []
136 self.current_server = ""
137 self.section = ""
138 self.message = self.chars
139
140
142 NS=''
146
148 global plugins
149 global components
150 #configfile = ConfigParser.ConfigParser()
151 #configfile.add_section('server')
152 #configfile.readfp(open('xmppd.cfg','r'))
153
154 #server names
155 server.servernames=[]
156 #server admins
157 server.administrators={}
158 try: server.sqlite_db = configfile.get('server','sqlite_file')
159 except: server.sqlite_db = None
160
161 parser = make_parser()
162 parser.setFeature(feature_namespaces, 0)
163 dh = xmppdXMLHandler()
164 parser.setContentHandler(dh)
165 parser.parse(server.cfgfile)
166 #parser.parse('../etc/xmppd.xml')
167
168 for name in servernames:
169 server.DEBUG('server','Added new server (%s) from config!'%name.split(),'info')
170 server.servernames.append(name.strip())
171 server.administrators.update({name:[]})
172 #for admin in configfile.get(name,'admins').split(','):
173
174 for name,v in administrators.items():
175 for admin in v:
176 server.administrators[name].append(admin.strip())
177 server.DEBUG('server','Added new admin (%s) for server (%s) from config!'%(admin.strip(),name),'info')
178
179 server.plugins = copy.copy(plugins)
180 server.DEBUG('server','Added plugins list: %s'%(str(server.plugins)),'ok')
181 server.components = components
182 server.DEBUG('server','Added components list: '+str(server.components),'ok')
183
184 if certificatefile == '': server.sslcertfile = None
185 else: server.sslcertfile = certificatefile
186 if sslkeyfile == '': server.sslkeyfile = server.sslcertfile
187 else: server.sslkeyfile = sslkeyfile
188
189 server.spoolpath = os.environ['HOME'] + os.sep + '.xmppd'
190
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Wed Aug 1 18:45:00 2012 | http://epydoc.sourceforge.net |