Oddly enough this message never made it into my inbox.  If you're
still having the issue please can you post a dump of the transport
output with <dumpProtocol/> enabled.

(version numbers between the transport and the xmpppy lib needs to
match, so 0.3 transport with 0.3 lib, or cvs transport with 0.4 lib)

It seems that ejabberd can sometimes send non-100%-valid xml which
breaks the expat parser used by xmpppy.

Replying to:

Daniel Clark dclark at pobox.com
Sat Dec 30 22:53:52 GMT 2006

When I run irc.py, I get:

Traceback (most recent call last):
  File "/usr/local/bin/irc.py", line 1762, in ?
    connection = xmpp.client.Component(hostname,port,component=component)
TypeError: __init__() got an unexpected keyword argument 'component'

I've read the thread at
http://thread.gmane.org/gmane.network.jabber.py-transports/2961/focus=2961
, but I'm 99.99% certain I have the most recent xmpp libraries: file:

dpkg -l | grep xmpp
ii  python-xmpp              0.4-1                           Python
library for communication with XMPP (

This was built by me from the latest xmpppy CVS (I also tried with the
.4 release tarball, same error message.)

I also tried with stock irclib.py and irclib.py with the irclib.diff
available in xmpppy CVS (it wasn't included with the tarball); that
didn't make any difference either (and FYI the patch applies cleanly
against irclib 0.4.6, but there are some offsets).

Should pyIRCt work with python-irclib 0.4.6? Is there an older
known-to-work version I should try instead?

Here is my transport.ini , with password sanitization:

[transport]
Server = 127.0.0.1
Hostname = irc.opensysadmin.com
Port = 5269
Secret = CENSORED
;ServerUser=username-for-jabberd2-connection
;UserFile = user.dbm
;LocalAddress = vanity.host.example.net
;Administrators = romeo at montague.net,juliet at capulet.com
;LogFile = ircerror.log
;FatalErrors = true

Note that Port = 5269 is the default ejabberd server-to-server port.

I also tried using the latest CVS irc.py, but get this when I try to run irc.py:

$ ./irc.py
Traceback (most recent call last):
  File "./irc.py", line 2210, in ?
    if not transport.xmpp_connect():
  File "./irc.py", line 2129, in xmpp_connect
    connected = self.jabber.connect((config.mainServer,config.port))
  File "/usr/lib/python2.4/site-packages/xmpp/client.py", line 272, in connect
    CommonClient.connect(self,server=server,proxy=proxy)
  File "/usr/lib/python2.4/site-packages/xmpp/client.py", line 179, in connect
    if not self.Process(1): return
  File "/usr/lib/python2.4/site-packages/xmpp/dispatcher.py", line
122, in Process
    self.Stream.Parse(data)
xml.parsers.expat.ExpatError: unbound prefix: line 1, column 0

Any my config.xml file:

<?xml version="1.0" ?>
<pyirct>
    <!-- This file contains options to be configured by the server
administrator. -->
    <!-- Please read through all the options in this file -->

    <!-- The JabberID of the transport -->
    <jid>irc.opensysadmin.com</jid>

    <!-- The public IP or DNS name of the machine the transport is
running on -->
    <!-- This is used to select the outgoing IP address used to
connect to IRC networks -->
    <!--  otherwise known as the vanity address, it's safe to leave it
commented -->
    <!--<host>vanity.host.example.net</host>-->

    <!-- The name of the transport in the service discovery list. -->
    <!-- <discoName>IRC Transport</discoName> -->

    <!-- The location of the spool file.. if relative, relative to the
PyIRCt dir. -->
    <!-- Include the jid of the transport, if running multiple copies
of the same transport -->
    <spoolFile>ircuser.dbm</spoolFile>

    <!-- The location of the PID file, relative to the PyIRCt directory -->
    <!-- Comment out if you do not want a PID file -->
    <pid>PyIRCt.pid</pid>

    <!-- The IP address or DNS name of the main Jabber server -->
    <mainServer>127.0.0.1</mainServer>

    <!-- The JID of the main Jabber server -->
    <mainServerJID>jabber.opensysadmin.com</mainServerJID>

    <!-- The TCP port to connect to the Jabber server on (this is the
default for ejabberd) -->
    <port>5269</port>

    <!-- The authentication token to use when connecting to the Jabber
server -->
    <secret>CENSORED</secret>

    <!-- SASL username used to bind to Jabber server. -->
    <!-- secret, above, is used for sasl password -->
    <!--<saslUsername>username-for-jabberd2-connection</saslUsername>-->

    <!-- Allow users to register with this transport -->
    <allowRegister/>

    <!-- Send activity messages to users (for clients that don't
support MUC)  -->
    <activityMessages/>

    <!-- Use external component binding. -->
    <!-- This dodges the need to manually configure all jids that talk
to this transport. -->
    <!-- Jabberd2 requires saslUsername and useRouteWrap for this to work. -->
    <!-- Wildfire as of 2.6.0 requires just this. -->
    <!--<useComponentBinding/>-->

    <!-- Wrap stanzas in <route> stanza. -->
    <!-- Jabberd2 requires this for useComponentBinding. -->
    <!--<useRouteWrap/>-->

    <!-- You can choose which users you wish to have as
administrators. These users can perform some tasks with Ad-Hoc
commands that othe
rs cannot -->
    <!--<admins>
        <jid>romeo at montague.net</jid>
        <jid>juliet at capulet.com</jid>
    </admins>-->

    <!-- The file to log to. Leave this disabled for stdout only -->
    <debugFile>ircerror.log</debugFile>

    <!-- Show the raw data being sent and received from the xmpp and
irc servers -->
    <!--<dumpProtocol/>-->

    <!-- The default charset to use for the transport, if not supplied
by the user when registering -->
    <!-- <charset>utf-8</charset> -->

</pyirct>

Thanks for any help,
-- 
Daniel Clark # http://dclark.us # http://opensysadmin.com

-- 
- Norman Rasmussen
 - Email: [EMAIL PROTECTED]
 - Home page: http://norman.rasmussen.co.za/
_______________________________________________
py-transports mailing list
py-transports@blathersource.org
http://lists.modevia.com/cgi-bin/mailman/listinfo/py-transports

Reply via email to