[JDEV] question on dialback.c
Dave Smith
dizzyd at jabber.org
Tue Mar 11 18:03:47 CST 2003
On Tuesday, Mar 11, 2003, at 16:06 America/Denver, Frank Koenen wrote:
> can anyone give me insight on the following lines of code in the
> function dialback_out_read() in dialback.c:
>
> /* make sure we're not connecting to ourselves */
> if( ghash_get( c->d->in_id, xmlnode_get_attrib( x , "id" ) )
> != NULL)
> {
> log_alert(c->key->server,"hostname maps back to
> ourselves!");
> mio_write(m, NULL, "<stream:error>Mirror Mirror on the
> wall</stream:error>", -1);
> mio_close(m);
> break;
> }
>
>
Heh. Dialback is EEEVIIL. Notice, it even has a talking mirror... ;)
> when i try to add roster items of users from one server to the next, i
> get the "hostname maps back to ourselves!"
> error. When I enable -D debug mode on the servers to snoop on them...
> the problem doesn't happen.
Of note, there are numerous race conditions in s2s/dialback that could
be the cause of this problem.
> I have two servers, one running on 10.10.12.10 and one running on
> 10.10.12.11, using a test environment and a locally
> configured DNS server to test. The hostnames and reverse lookups are
> correct.
>
> When I comment out the lines of code above from the dialback.c,
> everything works okay.
> Any reason why the 'ghash_get( c->d->in_id, xmlnode_get_attrib( x ,
> "id" ) ) != NULL' statement causes a false truth?
> Is it safe to comment this block of logic altogether?
Well, if it works for you, you can certainly try it. As I recall, this
code is meant to simply protect hapless sys admins from mis-configuring
their server and setting up a infinite message loop. So, eliminate with
extreme prejudice :)
There's probably a more concrete answer than this, but frankly it's
been way too long since I've worked on dialback. :)
Diz
More information about the JDev
mailing list