Changeset 90
- Timestamp:
- 05/30/04 15:17:16 (5 years ago)
- Files:
-
- trunk/jjigw.py (modified) (1 diff)
- trunk/jjigw/component.py (modified) (1 diff)
- trunk/jjigw/ircsession.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/jjigw.py
r81 r90 25 25 import os.path 26 26 27 config_dir,data_dir=".","." 27 def main(profile=False): 28 config_dir,data_dir=".","." 28 29 29 try:30 30 try: 31 config=Config(config_dir,data_dir) 32 except: 33 print >>sys.stderr,"Couldn't load config file:",str(sys.exc_value) 31 try: 32 config=Config(config_dir,data_dir) 33 except: 34 print >>sys.stderr,"Couldn't load config file:",str(sys.exc_value) 35 sys.exit(1) 36 37 print "creating component..." 38 c=Component(config,profile=profile) 39 40 print "starting..." 41 c.run(1) 42 except JJIGWFatalError,e: 43 print e 44 print "Aborting." 34 45 sys.exit(1) 35 46 36 print "creating component..." 37 c=Component(config) 38 39 print "starting..." 40 c.run(1) 41 except JJIGWFatalError,e: 42 print e 43 print "Aborting." 44 sys.exit(1) 47 if sys.argv[1]=='--profile': 48 import profile 49 sys.argv[1:]=sys.argv[2:] 50 profile.run("main(profile=True)","jjigw.prof") 51 else: 52 main() 45 53 46 54 # vi: sts=4 et sw=4 trunk/jjigw/component.py
r82 r90 33 33 34 34 class Component(pyxmpp.jabberd.Component): 35 def __init__(self,config ):35 def __init__(self,config,profile=False): 36 36 pyxmpp.jabberd.Component.__init__(self,config.jid, 37 37 config.connect.secret,config.connect.host,config.connect.port, 38 38 category="gateway",type="irc") 39 self.profile=profile 39 40 self.shutdown=0 40 41 signal.signal(signal.SIGINT,self.signal_handler) trunk/jjigw/ircsession.py
r86 r90 49 49 self.jid=jid 50 50 self.nick=nick 51 if self.component.profile: 52 ttarget=self.thread_run_prof 53 else: 54 ttarget=self.thread_run 51 55 self.thread=threading.Thread(name=u"%s on %s as %s" % (jid,self.network.jid,nick), 52 target= self.thread_run)56 target=ttarget) 53 57 self.thread.setDaemon(1) 54 58 self.exit=None … … 147 151 resource=unicode(user,self.default_encoding,"replace") 148 152 return JID(node,self.network.jid.domain,resource) 153 154 def thread_run_prof(self): 155 import profile 156 p=profile.Profile() 157 p.runcall(self.thread_run) 158 p.create_stats() 159 p.dump_stats("jjigw-%s.prof" % (threading.currentThread().getName().replace("/","_"),)) 149 160 150 161 def thread_run(self): … … 188 199 sock=self.socket 189 200 if sock is None: 201 self.debug("sock is None") 190 202 continue 191 203 self.lock.release() … … 199 211 input,self.input_buffer=self.input_buffer.split("\r\n",1) 200 212 self._safe_process_input(input) 213 elif self.socket in ed: 214 try: 215 self.socket.close() 216 except: 217 pass 218 self.socket=None 219 self.exited=1 201 220 finally: 202 221 self.lock.release()
