[JDEV] Re: jabberd 1.4.3 release candidate again
Frank Seesink
frank at mail.wvnet.edu
Mon Nov 3 16:50:52 CST 2003
maqi at jabberstudio.org wrote:
> jabberd 1.4.3 will be released the next days. It's a maintenance release
> including some fixes and several features.
> http://jabberd.jabberstudio.org/1.4/release-1.4.3.shtml
>
> Please check out the jabberd14 HEAD code from CVS for testing and post
> comments here.
____________________________________________________________
JADC2S COMPILATION ISSUE
Another issue I have run into revolves around the new jadc2s code in
./jadc2s/:
1. Makefile's first line reads
include platform-settings
but SHOULD read
include ../platform-settings
2. Attempts to compile jadc2s result in the following compiler errors
on mio.c:
________________________________________
$ make
...
gcc -g -Wall -I. -I.. -I/usr/include/openssl -DHAVE_SSL
-I/usr/local/include -
c -o mio/mio.o mio/mio.c
mio/mio.c:82: error: syntax error before "MIO_VARS"
mio/mio.c:82: warning: no semicolon at end of struct or union
mio/mio.c:118: error: syntax error before "void"
mio/mio.c: In function `mio_close':
mio/mio.c:123: warning: implicit declaration of function `MIO_REMOVE_FD'
mio/mio.c:126: error: dereferencing pointer to incomplete type
mio/mio.c:126: error: dereferencing pointer to incomplete type
mio/mio.c:130: error: dereferencing pointer to incomplete type
mio/mio.c: In function `_mio_accept':
mio/mio.c:151: error: dereferencing pointer to incomplete type
mio/mio.c:151: error: dereferencing pointer to incomplete type
mio/mio.c:157: error: dereferencing pointer to incomplete type
mio/mio.c:157: error: dereferencing pointer to incomplete type
mio/mio.c:168: error: dereferencing pointer to incomplete type
mio/mio.c:168: error: dereferencing pointer to incomplete type
mio/mio.c:175: error: dereferencing pointer to incomplete type
mio/mio.c: In function `_mio_connect':
mio/mio.c:184: error: dereferencing pointer to incomplete type
mio/mio.c:189: error: dereferencing pointer to incomplete type
mio/mio.c:190: warning: implicit declaration of function `MIO_UNSET_WRITE'
mio/mio.c: In function `mio_fd':
mio/mio.c:204: error: dereferencing pointer to incomplete type
mio/mio.c:211: error: dereferencing pointer to incomplete type
mio/mio.c:212: error: dereferencing pointer to incomplete type
mio/mio.c:213: error: dereferencing pointer to incomplete type
mio/mio.c:214: error: dereferencing pointer to incomplete type
mio/mio.c:215: warning: implicit declaration of function `MIO_INIT_FD'
mio/mio.c:223: error: dereferencing pointer to incomplete type
mio/mio.c:223: error: dereferencing pointer to incomplete type
mio/mio.c: In function `mio_app':
mio/mio.c:231: error: dereferencing pointer to incomplete type
mio/mio.c:232: error: dereferencing pointer to incomplete type
mio/mio.c: In function `mio_run':
mio/mio.c:244: warning: implicit declaration of function `MIO_CHECK'
mio/mio.c:249: error: dereferencing pointer to incomplete type
mio/mio.c:252: error: dereferencing pointer to incomplete type
mio/mio.c:257: warning: implicit declaration of function `MIO_ERROR'
mio/mio.c:265: error: dereferencing pointer to incomplete type
mio/mio.c:270: error: dereferencing pointer to incomplete type
mio/mio.c:273: error: dereferencing pointer to incomplete type
mio/mio.c:273: warning: implicit declaration of function `MIO_CAN_READ'
mio/mio.c:280: error: dereferencing pointer to incomplete type
mio/mio.c:280: warning: implicit declaration of function `MIO_CAN_WRITE'
mio/mio.c:287: error: dereferencing pointer to incomplete type
mio/mio.c:290: error: dereferencing pointer to incomplete type
mio/mio.c:290: error: dereferencing pointer to incomplete type
mio/mio.c:291: warning: implicit declaration of function `MIO_UNSET_READ'
mio/mio.c:296: error: dereferencing pointer to incomplete type
mio/mio.c:299: error: dereferencing pointer to incomplete type
mio/mio.c:299: error: dereferencing pointer to incomplete type
mio/mio.c:305: error: dereferencing pointer to incomplete type
mio/mio.c:310: error: dereferencing pointer to incomplete type
mio/mio.c:315: error: dereferencing pointer to incomplete type
mio/mio.c:317: error: dereferencing pointer to incomplete type
mio/mio.c:317: error: dereferencing pointer to incomplete type
mio/mio.c:324: error: dereferencing pointer to incomplete type
mio/mio.c: In function `mio_new':
mio/mio.c:338: error: invalid application of `sizeof' to an incomplete type
mio/mio.c:339: error: dereferencing pointer to incomplete type
mio/mio.c:345: error: dereferencing pointer to incomplete type
mio/mio.c:348: error: dereferencing pointer to incomplete type
mio/mio.c:349: error: dereferencing pointer to incomplete type
mio/mio.c:350: error: dereferencing pointer to incomplete type
mio/mio.c:352: warning: implicit declaration of function `MIO_INIT_VARS'
mio/mio.c: In function `mio_free':
mio/mio.c:360: warning: implicit declaration of function `MIO_FREE_VARS'
mio/mio.c:362: error: dereferencing pointer to incomplete type
mio/mio.c: In function `mio_read':
mio/mio.c:372: error: dereferencing pointer to incomplete type
mio/mio.c:374: error: dereferencing pointer to incomplete type
mio/mio.c:378: warning: implicit declaration of function `MIO_SET_READ'
mio/mio.c: In function `mio_write':
mio/mio.c:387: error: dereferencing pointer to incomplete type
mio/mio.c:389: error: dereferencing pointer to incomplete type
mio/mio.c:393: error: dereferencing pointer to incomplete type
mio/mio.c:393: error: dereferencing pointer to incomplete type
mio/mio.c:396: warning: implicit declaration of function `MIO_SET_WRITE'
mio/mio.c: In function `mio_listen':
mio/mio.c:444: error: dereferencing pointer to incomplete type
mio/mio.c: In function `mio_connect':
mio/mio.c:492: error: dereferencing pointer to incomplete type
make: *** [mio/mio.o] Error 1
________________________________________
Looking through the code in ./jadc2s/mio/, I can see why the compiler is
having fits, and I don't believe this is Cygwin-specific. The use of
#defines for structs in mio_poll.h and mio_select.h and then the use of
those #defines within other structs is not pretty.
By the way, is jadc2s considered solid or totally experimental? Just
curious.
____________________________________________________________
mio_ssl.c warning loop
Finally, not related to the jadc2s mio.c issue, there is what I ran
across purely by accident while testing the latest CVS code.
I had just built the latest CVS under Cygwin using
./configure --enable-ssl
make
and jabberd compiled/linked without incident. Then I started testing as
I usually do, executing
./jabberd/jabberd.exe -v
to make sure the .EXE kicks back the version (it did). Next, I fired up
jabberd interactively
./jabberd/jabberd.exe
using the default jabber.xml provided in CVS, then fired up Rhymbox (the
Windows Jabber client I have been using lately), my intention being to
create an account and do basic non-SSL testing first.
But I had forgotten to clean out the user profile I had created in
Rhymbox from my last battery of tests. End result: Rhymbox attempted
to log in as a non-existent user via SSL (port 5223). In the window
where I had launched jabberd, I suddenly saw line after line of
...
20031103T17:19:12: [warn] (mio_ssl.c:226): SSL accept without an IP
...
going on without end. Closing down the Jabber client did NOT cause this
to stop, and I was forced to CTRL-C within the jabberd window to get the
daemon to shutdown.
Has anyone else witnessed this behavior? I suspect this may have been
the behavior all along. I just never noticed. I'm afraid I discovered
this purely by accident, but I can see how this would be a "Very Bad
Thing" (tm) for jabber servers. A user attempting to log in via SSL to
a jabberd box using a very vanilla jabber.xml config causes the
error.log to fill up rather quickly.
I realize that configuring without the --enable-ssl flag avoids
listening on port 5223, and compiling/linking/running this config works
just fine. So 'caveat administrator' if you have compiled with SSL
support. Looks like poor config file can burn you...but when was that
not the case? :-)
More information about the JDev
mailing list