Changeset 131
- Timestamp:
- 08/30/04 14:57:12 (4 years ago)
- Files:
-
- trunk/jjigw.py (modified) (2 diffs)
- trunk/jjigw/channel.py (modified) (13 diffs)
- trunk/jjigw/component.py (modified) (13 diffs)
- trunk/jjigw/ircsession.py (modified) (16 diffs)
- trunk/jjigw/ircuser.py (modified) (5 diffs)
- trunk/jjigw/spidentd.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/jjigw.py
r92 r131 18 18 # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 19 20 import sys 21 import os.path 22 import logging 20 23 21 24 from jjigw.common import JJIGWFatalError 22 25 from jjigw.config import Config 23 26 from jjigw.component import Component 24 import sys25 import os.path26 27 27 28 def main(profile=False): … … 29 30 30 31 try: 32 logger=logging.getLogger() 33 logger.addHandler(logging.StreamHandler()) 34 logger.setLevel(logging.DEBUG) 31 35 try: 32 36 config=Config(config_dir,data_dir) trunk/jjigw/channel.py
r100 r131 19 19 20 20 import string 21 import logging 21 22 22 23 from pyxmpp import Message,JID … … 33 34 multiarg_modes="OovbeI" 34 35 def __init__(self,session,name): 36 self.__logger=logging.getLogger("jjigw.Channel") 35 37 if not channel_re.match(name): 36 38 raise ValueError,"Bad channel name" … … 74 76 def join(self,stanza): 75 77 if self.state: 76 self. debug("Channel %r not in the initial state, not joining!" % (self.name,))78 self.__logger.debug("Channel %r not in the initial state, not joining!" % (self.name,)) 77 79 p=stanza.make_error_response(stanza,"bad-request") 78 80 self.session.component.send(p) 79 81 return 80 82 self.room_jid=stanza.get_to() 81 self. debug("Joining channel %r" % (self.name,))83 self.__logger.debug("Joining channel %r" % (self.name,)) 82 84 self.session.send("JOIN %s" % (self.name,)) 83 85 self.requests.add("JOIN",stanza) … … 89 91 status=stanza.get_status() 90 92 if not self.state: 91 self. debug("Channel %r in the initial state - nothing to do." % (self.name,))93 self.__logger.debug("Channel %r in the initial state - nothing to do." % (self.name,)) 92 94 else: 93 95 if not status: … … 143 145 144 146 def nick_changed(self,oldnick,user): 145 self. debug("Nick changed: %r -> %r" % (oldnick,user.nick))147 self.__logger.debug("Nick changed: %r -> %r" % (oldnick,user.nick)) 146 148 p_unaval=self.get_user_presence(user,nick=user.nick,status=303) 147 149 p_unaval.set_type("unavailable") … … 243 245 def irc_cmd_MODE(self,prefix,command,params): 244 246 if len(params)<2: 245 self. debug("No parameters in received MODE")247 self.__logger.debug("No parameters in received MODE") 246 248 return 247 249 params_str=string.join(params[2:]," ").strip() … … 276 278 continue 277 279 elif not pm: 278 self. debug("Not '+' or '-' before '%s' in received MODE" % (m,))280 self.__logger.debug("Not '+' or '-' before '%s' in received MODE" % (m,)) 279 281 continue 280 282 elif m in self.arg_modes or m in self.multiarg_modes: 281 283 if not len(params): 282 self. debug("No argument for mode '%s' in received MODE" % (m,))284 self.__logger.debug("No argument for mode '%s' in received MODE" % (m,)) 283 285 continue 284 286 arg=params.pop(0) … … 286 288 arg=None 287 289 else: 288 self. debug("Unknown mode '%s' in received MODE" % (m,))290 self.__logger.debug("Unknown mode '%s' in received MODE" % (m,)) 289 291 continue 290 292 if m in "oOv": … … 307 309 else: 308 310 actor_jid=None 309 self. debug("Mode changed: %r by %r" % (user.nick,actor_jid))311 self.__logger.debug("Mode changed: %r by %r" % (user.nick,actor_jid)) 310 312 p=self.get_user_presence(user,actor_jid) 311 313 if actor: … … 329 331 if nprefix==nnick or nprefix.startswith(nnick+"!"): 330 332 if self.state=="join": 331 self. debug("Channel %r joined!" % (self.name,))333 self.__logger.debug("Channel %r joined!" % (self.name,)) 332 334 self.session.user.sync_delay+=1 333 335 try: … … 387 389 def irc_message(self,prefix,command,params): 388 390 if not self.state or len(params)<2: 389 self. debug("ignoring it")391 self.__logger.debug("ignoring it") 390 392 return 391 393 body=unicode(params[1],self.encoding,"replace") … … 407 409 self.session.component.send(m) 408 410 else: 409 self. debug("Unknown CTCP command: %r %r" % (command,arg))411 self.__logger.debug("Unknown CTCP command: %r %r" % (command,arg)) 410 412 411 413 def change_topic(self,topic,stanza): … … 479 481 return "<IRCChannel %r>" % (self.name,) 480 482 481 def debug(self,msg):482 return self.session.debug(msg)483 484 483 # vi: sts=4 et sw=4 trunk/jjigw/component.py
r127 r131 22 22 import threading 23 23 import string 24 import logging 24 25 25 26 import pyxmpp.jabberd … … 37 38 config.connect.secret,config.connect.host,config.connect.port, 38 39 category="gateway",type="irc") 40 self.__logger=logging.getLogger("jjigw.Component") 39 41 self.profile=profile 40 42 self.shutdown=0 … … 56 58 user_jid=sess.jid 57 59 component_jid=sess.network.jid 58 self. debug("Registering session: %r on %r for %r" % (sess,component_jid,user_jid))60 self.__logger.debug("Registering session: %r on %r for %r" % (sess,component_jid,user_jid)) 59 61 self.irc_sessions[user_jid.as_unicode(),component_jid.domain]=sess 60 62 … … 62 64 user_jid=sess.jid 63 65 component_jid=sess.network.jid 64 self. debug("Unregistering session: %r on %r for %r" % (sess,component_jid,user_jid))66 self.__logger.debug("Unregistering session: %r on %r for %r" % (sess,component_jid,user_jid)) 65 67 try: 66 68 del self.irc_sessions[user_jid.as_unicode(),component_jid.domain] 67 69 except KeyError: 68 self. debug("Session not found!")70 self.__logger.debug("Session not found!") 69 71 70 72 def signal_handler(self,signum,frame): 71 self. debug("Signal %i received, shutting down..." % (signum,))73 self.__logger.debug("Signal %i received, shutting down..." % (signum,)) 72 74 self.shutdown=1 73 75 … … 82 84 raise 83 85 except: 84 self. print_exception()86 self.__logger.exception("Exception cought:") 85 87 finally: 86 88 if self.shutdown: … … 99 101 pass 100 102 self.disconnect() 101 self. debug("Exitting normally")103 self.__logger.debug("Exitting normally") 102 104 103 105 def send(self,stanza): … … 123 125 fr=iq.get_from() 124 126 if not to.node: 125 self. debug("admin request sent to JID without a node")127 self.__logger.debug("admin request sent to JID without a node") 126 128 iq=iq.make_error_response("feature-not-implemented") 127 129 self.stream.send(iq) 128 130 return 1 129 131 if to.resource or not (to.node[0] in "#+!" or to.node.startswith(",amp,")): 130 self. debug("admin request sent not to a channel")132 self.__logger.debug("admin request sent not to a channel") 131 133 iq=iq.make_error_response("not-acceptable") 132 134 self.stream.send(iq) … … 136 138 sess=self.get_session(fr,to) 137 139 if not sess: 138 self. debug("User session not found")140 self.__logger.debug("User session not found") 139 141 iq=iq.make_error_response("recipient-unavailable") 140 142 self.stream.send(iq) … … 143 145 channel=sess.get_channel(to) 144 146 if not channel: 145 self. debug("Channel not found")147 self.__logger.debug("Channel not found") 146 148 iq=iq.make_error_response("recipient-unavailable") 147 149 self.stream.send(iq) … … 150 152 query=iq.get_muc_child() 151 153 if not isinstance(query,MucAdminQuery): 152 self. debug("Bad query content")154 self.__logger.debug("Bad query content") 153 155 iq=iq.make_error_response("bad-request") 154 156 self.stream.send(iq) … … 157 159 items=query.get_items() 158 160 if not items: 159 self. debug("No items in query")161 self.__logger.debug("No items in query") 160 162 iq=iq.make_error_response("bad-request") 161 163 self.stream.send(iq) … … 171 173 channel.op_user(item.nick,iq) 172 174 else: 173 self. debug("Unknown admin action")175 self.__logger.debug("Unknown admin action") 174 176 iq=iq.make_error_response("feature-not-implemented") 175 177 self.stream.send(iq) … … 259 261 to=stanza.get_to() 260 262 if not to.node: 261 self. debug("No node in groupchat message target")263 self.__logger.debug("No node in groupchat message target") 262 264 return 0 263 265 if to.node[0] not in "#+!" and not to.node.startswith(",amp,"): 264 self. debug("Groupchat message target is not a channel")266 self.__logger.debug("Groupchat message target is not a channel") 265 267 return self.message(stanza) 266 268 if to.resource: 267 self. debug("Groupchat message target is not bare JID")269 self.__logger.debug("Groupchat message target is not bare JID") 268 270 return 0 269 271 fr=stanza.get_from() trunk/jjigw/ircsession.py
r125 r131 25 25 import string 26 26 import random 27 import logging 27 28 28 29 from pyxmpp import Message,Presence,JID … … 39 40 commands_dont_show=[] 40 41 def __init__(self,component,config,netjid,jid,nick): 42 self.__logger=logging.getLogger("jjigw.IRCSession") 41 43 self.component=component 42 44 self.config=config … … 161 163 except: 162 164 clean_exit=0 163 self. print_exception()165 self.__logger.exception("Exception cought:") 164 166 self.lock.acquire() 165 167 try: … … 190 192 191 193 def thread_loop(self): 192 self. debug("thread_loop()")194 self.__logger.debug("thread_loop()") 193 195 while not self.exit and not self.component.shutdown: 194 196 self.lock.acquire() … … 198 200 sock=self.socket 199 201 if sock is None: 200 self. debug("sock is None")202 self.__logger.debug("sock is None") 201 203 continue 202 204 self.lock.release() … … 241 243 def _try_connect(self): 242 244 if not self.servers_left: 243 self. debug("No servers left, quitting")245 self.__logger.debug("No servers left, quitting") 244 246 self.exit="No servers left, quitting" 245 247 return … … 251 253 self.socket=None 252 254 server=self.servers_left.pop(0) 253 self. debug("Trying to connect to %r" % (server,))255 self.__logger.debug("Trying to connect to %r" % (server,)) 254 256 if self.raw_channel: 255 257 self.pass_message_to_raw_channel("Connecting to %s:%s..." % (server.host,server.port)) … … 258 260 self.socket.connect((server.host,server.port)) 259 261 except (IOError,OSError,socket.error),err: 260 self. debug("Server connect error: %r" % (err,))262 self.__logger.debug("Server connect error: %r" % (err,)) 261 263 if self.raw_channel: 262 264 self.pass_message_to_raw_channel("Connect error: %r" % (err,)) … … 283 285 def _send(self,str): 284 286 if self.socket and not self.exited: 285 self. debug("IRC OUT: %r" % (str,))287 self.__logger.debug("IRC OUT: %r" % (str,)) 286 288 self.socket.send(str+"\r\n") 287 289 if self.raw_channel: 288 290 self.pass_output_to_raw_channel(str) 289 291 else: 290 self. debug("ignoring out: %r" % (str,))292 self.__logger.debug("ignoring out: %r" % (str,)) 291 293 292 294 def send(self,str): … … 301 303 self._process_input(input) 302 304 except: 303 self. print_exception()305 self.__logger.exception("Exception cought:") 304 306 305 307 def _process_input(self,input): 306 self. debug("Server message: %r" % (input,))308 self.__logger.debug("Server message: %r" % (input,)) 307 309 split=input.split(" ") 308 310 if split[0].startswith(":"): … … 363 365 def irc_message(self,prefix,command,params): 364 366 if len(params)<2 or not prefix: 365 self. debug("ignoring it")367 self.__logger.debug("ignoring it") 366 368 return 367 369 user=self.get_user(prefix) 368 370 if not user: 369 self. debug("could not convert %r to IRCUser object" % (prefix,))371 self.__logger.debug("could not convert %r to IRCUser object" % (prefix,)) 370 372 return 371 373 if user.current_thread: … … 408 410 self.lock.acquire() 409 411 try: 410 self. debug("Connected successfully")412 self.__logger.debug("Connected successfully") 411 413 self.ready=1 412 414 for s in self.login_requests: … … 472 474 473 475 def irc_cmd_352(self,prefix,command,params): # RPL_WHOREPLY 474 self. debug("WHO reply received")476 self.__logger.debug("WHO reply received") 475 477 if len(params)<7: 476 self. debug("too short - ignoring")478 self.__logger.debug("too short - ignoring") 477 479 return 478 480 user=self.get_user(params[4]) 479 481 if not user: 480 self. debug("User: %r not found" % (params[4],))482 self.__logger.debug("User: %r not found" % (params[4],)) 481 483 else: 482 484 user.whoreply(params) … … 598 600 to=stanza.get_to() 599 601 if to not in self.used_for: 600 self. debug("Unavailable presence sent with no matching available presence, ignoring it")602 self.__logger.debug("Unavailable presence sent with no matching available presence, ignoring it") 601 603 return 0 602 604 try: … … 638 640 channel_name=node_to_channel(channel_name,self.default_encoding) 639 641 except ValueError: 640 self. debug("Bad channel name: %r" % (channel_name,))642 self.__logger.debug("Bad channel name: %r" % (channel_name,)) 641 643 return None 642 644 if not channel_re.match(channel_name): 643 self. debug("Bad channel name: %r" % (channel_name,))645 self.__logger.debug("Bad channel name: %r" % (channel_name,)) 644 646 return None 645 647 return self.channels.get(normalize(channel_name)) … … 716 718 self.exited=1 717 719 718 def debug(self,msg):719 self.component.debug(msg)720 721 def print_exception(self):722 self.component.print_exception()723 724 720 # vi: sts=4 et sw=4 trunk/jjigw/ircuser.py
r100 r131 18 18 # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 19 20 import logging 20 21 21 22 from pyxmpp import JID … … 25 26 class IRCUser: 26 27 def __init__(self,session,nick,user="",host=""): 28 self.__logger=logging.getLogger("jjigw.IRCUser") 27 29 self.sync_delay=0 28 30 self.session=session … … 51 53 return 52 54 elif self.sync_delay<0: 53 self. debug("Warning: %r.sync_delay<0" % (self,))55 self.__logger.debug("Warning: %r.sync_delay<0" % (self,)) 54 56 return channel.sync_user(self,status=status) 55 57 … … 83 85 channel=self.session.channels.get(normalize(channel)) 84 86 if not channel: 85 self. debug("Ignoring WHO reply: %r - unknown channel" % (params,))87 self.__logger.debug("Ignoring WHO reply: %r - unknown channel" % (params,)) 86 88 return 87 89 else: … … 121 123 return "<IRCUser %r: %r>" % (id(self),self.nick) 122 124 123 def debug(self,msg):124 return self.session.debug(msg)125 126 125 # vi: sts=4 et sw=4 trunk/jjigw/spidentd.py
r71 r131 21 21 import threading 22 22 import socket 23 import logging 23 24 24 25 class SPIdentD: 25 26 def __init__(self,component,config): 27 self.__logger=logging.getLogger("jjigw.SPIdentD") 26 28 self.socket_path=config.socket 27 29 self.component=component … … 40 42 self.loop() 41 43 except socket.error: 42 self. print_exception()44 self.__logger.exception("Exception cought:") 43 45 pass 44 46 finally: … … 82 84 self.queue.put(("remove",conninfo)) 83 85 84 def debug(self,msg):85 self.component.debug(msg)86 87 def print_exception(self):88 self.component.print_exception()89 90 86 # vi: sts=4 et sw=4
