Changeset 20
- Timestamp:
- 02/07/04 11:57:42 (5 years ago)
- Files:
-
- trunk/jjigw.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/jjigw.py
r14 r20 17 17 from pyxmpp.jabber.muc import MucPresence,MucX,MucUserX,MucItem,MUC_NS 18 18 19 class JJIGWFatalError(RuntimeError): 20 pass 21 19 22 class ConnectConfig: 20 23 def __init__(self,node): … … 31 34 self.servers=[] 32 35 for s in servers: 33 self.servers.append((s.getContent(),6667)) 34 self.default_encoding="iso-8859-2" 36 server=s.getContent() 37 port=s.prop("port") 38 try: 39 port=int(port) 40 if port<1 or port>65535: 41 raise ValueError 42 except ValueError: 43 print >>sys.stderr,"Bad port value: %r, using default: 6667" % (port,) 44 port=6667 45 self.servers.append((server,port)) 46 self.default_encoding=node.prop("encoding") 35 47 def get_servers(self): 36 48 r=self.servers … … 40 52 class Config: 41 53 def __init__(self,filename): 42 self.doc=libxml2.parseFile(filename) 54 self.doc=None 55 parser=libxml2.createFileParserCtxt(filename) 56 parser.validate(1) 57 parser.parseDocument() 58 if not parser.isValid(): 59 raise JJIGWFatalError,"Invalid configuration" 60 self.doc=parser.doc() 43 61 self.connect=ConnectConfig(self.doc.xpathEval("jjit/connect")[0]) 44 62 self.network=NetworkConfig(self.doc.xpathEval("jjit/network")[0]) 45 63 def __del__(self): 46 self.doc.freeDoc()47 64 if self.doc: 65 self.doc.freeDoc() 48 66 49 67 evil_characters_re=re.compile(r"[\000-\010\013\014\016-\037]") … … 1164 1182 return 1 1165 1183 1166 1167 config=Config("jjigw.xml") 1168 1169 print "creating component..." 1170 c=Component(config) 1171 1172 print "starting..." 1173 c.run(1) 1184 try: 1185 config=Config("jjigw.xml") 1186 1187 print "creating component..." 1188 c=Component(config) 1189 1190 print "starting..." 1191 c.run(1) 1192 except JJIGWFatalError,e: 1193 print e 1194 print "Aborting." 1195 sys.exit(1) 1174 1196 1175 1197 # vi: sw=4 ts=8 sts=4
