The conversion of the existing Citadel code to dual-stack actually was far
easier than I thought it would be.
This would work quite nicely with my current efforts to remove all of the
round-trip form submissions in the system. For example, in the message editor,
we no longer submit the form when adding attachments. It is my intention
to validate recipients before sending the form as well. And in the
so, first site with the libev based smtp client has just gone live...
Do you need a machine on an IPv6 network to test it with?
Ok, I've built a VM on an IPv6 connected network for you to test with. Check
your email for the login.
Ok. This solves the problem of I can request arbitrary msgnums and the server
will give them to me whether or not they exist in a room to which I have access
-- which was only a minor nuisance before, but with Citadel sites being exposed
to the public Internet with anonymous guest mode enabled,
This may all be true. What I'm *not* willing to do is go to disk to check
the msglist for the current room before each and every message fetch.
I'm sure the tree will be quite unbalanced after the user visits one room,
since it is loaded linearly. As other rooms are visited it should
I'm a little hesitant to put that into 7.xx because I don't know how we fixed
it. Somewhere along the line we did something to the I/O layer that made
it stable enough for XMPP over TLS to work, but I don't know where or what.
Ok, a quick update:
So far I've been able to reduce the crashes, at least, by reducing the load
on the system a bit:
1. I've taken the IP addresses of all the hosts that are trying to email
room_citadel_stats 5-6 times each minute and firewalled them out, so they
can't do that anymore.
The problem uncensored is having appears to be reproducible
on any Citadel server running the current code. Here's how
to reproduce it:
1. Start your Citadel server
2. Run several copies of this script, which will show you exactly
when your connection dropped:
#!/bin/bash
(
while
This might be a race condition of some sort. If I put a one second sleep
between each connection in the second script, it doesn't cause the first script
to drop anymore.
A source code management system approved by Ford -- that's a big deal :)
According to the logs we switched on 2010-aug-31.
If it were just me, I'd still be quite happy using CVS. I didn't see the
point of switching to svn and I really didn't see the point of switching to
git either, when CVS was doing the job.
There's gonna be a huge update coming up as soon as I get things running
smoothly again.
This is mainly intended to reflect the future migration to a libev-based
architecture. The Citadel server is built as a state machine, so the libev
move does make sense. This is fundamentally
And maybe it's my imagination but I could swear it's faster this way.
At the moment I'm using a fixed size thread pool. There are eight worker
threads, one master socket listening thread, and one supervisor thread. I
haven't decided yet whether I want to move the master socket listener
There does seem to be a problem. When citserver is first started there is
no problem, but after it runs for a little while, messages are getting corrupted
as they are read into the buffer for sending.
The symptoms showing up in the log are that the From: address is not
extractable
(so it's
libev in webcit? Why? The main loop of webcit is simple enough. It doesn't
need libev.
I don't think we have the horsepower to run Uncensored under valgrind. It
was bad enough when I constrained its I/O speed a little bit during the last
migration -- the system was practically unusable.
For the time being I have added a check to see whether msg_size is 0, and
if it is, we
Ok, here's more info on the problem:
When the problem starts to happen (again, right after TDAP runs) --
CC-redirect_buffer
no longer works for housekeeping threads (bound to masterCC).
This means that the fulltext indexer is coming up with blanks too, which
I've tentatively verified.
Perhaps I can run tests on a *clone* of Uncensored's db. Over the last two
days I've seen the problem begin after the 04:00 hour; this happens to be
when we run TDAP so it's definitely possible that we're looking at a memory
issue of some sort. It might even be a massive memory leak triggered by
Removed spurious calls to CtdlClearSystemContext()
Hopefully that's what was causing the problem. We'll know by tomorrow morning.
Looks good so far. I also think that getting rid of all the extra complexity
has fixed the RSS reader crashes.
According to what I'm reading it doesn't work on Solaris (with Sun's compiler,
not gcc).
I'm probably the wrong person to ask. I think everyone should be running
Linux.
For a post-8.00 design, would it make sense to use libev as the housekeeping
loop? Then it could take care of SMTP delivery along with everything else
the server needs to do in the background, and we can dedicate a thread to
it (either the supervisor thread or a different one) -- and then the
I really do *not* see a need to rewrite the main loop of WebCit. It works
fine just the way it is.
Works for me. Can we go right away or do we need to get anything else in
there?
Ok, we're good to go with 7.86
Interesting observations. It's definitely a work in progress but I'll make
a note of those observations as we tune it. Admittedly I'm not all that great
a UI designer, so every little bit of feedback helps.
I do like having the icons but I think it's beginning to become a problem
that we
Thanks for ignoring what it means to do a coordinated release between
different products and vendors... I guess that was the first and last advanced
notice for citadel, at least from my side.
You were expecting something different? 100% of the security advisories
to which we have
oops. gotta fix that.
We're going to hold off on any releases for now, though. The guy chose some
weird non-standard disclosure method and then got his panties in a bunch when
I misunderstood it. Normally a coordinated disclosure means that everyone's
got a patched version available for
I think that method is stupid and I'm not going to follow it. In the real
world, coordinated public disclosures include an advisory that says upgrade
to version x.yy in order to protect your server against this vulnerability.
I'm willing to hold off on releasing our own security alert, and even perhaps
waiting until 0 Day to release an updated version of the software. What
I'm *not* willing to do, is to stop using our source code repository the way
it was intended because some tinfoil-hat thinks that someone's going
You know what, I am not really interested in working with people who feel
the need to tell me exactly what they want me to do, so it's ok. I would
much rather accept security alerts from people who do it the normal way.
This update makes a change to struct wcsession; make clean if you're crashing...
array be the smarter solution?
I wasn't planning to make the setting persistent across logins.
The command ARTV is not documented on
http://www.citadel.org/doku.php/documentation:appproto:start
ARTV is deprecated. It has been replaced by MIGR.
I know this is an unpleasant thing, but have you been testing these commits
with Internet Explorer? Unfortunately we do have to support IE7+
Microsoft will always find new ways to suck. Fortunately their reign seems
just about over and hopefully in a decade or so we will not have to worry
about them.
By the way, I applied the git commit-filter you requested.
Please don't! We have some functions in our automation framework that
do a similar check to allow our scripts to access external files in
place of a DUT command and it's ended up causing issues when some of
the commands contain a / character.
Despite the fact that I don't
- wrap this into subst.c:StrBufAppendTemplate() with a new escaper
char? (maybe 'C'?)
We can't use CDATA blocks in templates. CDATA is only valid in XML, not
HTML (unless you're using XHTML, which we are not...)
Fair enough -- I'm not satisfied with what I did, though. I'm going to change
it around a little more. Right now the feed generator is spitting out every
line as a CDATA block while it reads those lines from the Citadel server.
I need to buffer the whole thing and then output it as a single
If it is your intention to keep these RPM's up to date, I would love to
designate
your repo as the official one. Can we name you as the official maintainer
on an ongoing basis?
modules/blog/serv_blog.c: In function 'blog_upload_beforesave':
modules/blog/serv_blog.c:77:13: error: 'BLOG_EUIDBUF_SIZE' undeclared
Update your libcitadel.
stable broken?
gcc -I/var/lib/citadel -Wall -g -Werror=format-security -O2 -Wall
-Wcast-qual -Wcast-align -Wstrict-prototypes -D_REENTRANT -pthread -I
./include/ -I. -I ./include/ -DHAVE_CONFIG_H -c
modules/wiki/serv_wiki.c -o modules/wiki/serv_wiki.o
After a very short comparison of usability, I propose we give
ckeditor.com a try (again?). dothebart mentioned we might have used
that one before. This is a short list of reasons why I prefer
ckeditor:
If it seems better, then I have no particular attachment to TinyMCE and would
Yikes. We're being Googled to death.
Actually, I'm in the process of ripping out the *new* way too. The buttons
for Reply, ReplyQuoted, and Forward need to carry a whole lot of information
(subject, references, recipients) out to the browser and then back in through
a URL submission, and because those buttons are passed through the
This turned out to be nice and clean. It's going to eliminate a lot of
potential
(and existing) bugs.
No, we just pull the top-level headers and we do not fetch the message body.
Good question, and the answer is yes. This is all done within webcit, so
it is incapable of bypassing the citadel server's security model.
templatize the summary (half baked)
I think you mean not baked. It's totally broken right now.
I noticed about a week or two ago that Uncensored has stopped
auto-purging users other than SYS_Citadel. It could theoretically be
Eagle eye there. :) But it's no cause for concern -- I increased the user
purge time so it'll be a while before DAP kills anyone.
Good catch
IG, please note, that if Hdr-HR.DontNeedAuth is set, no server
connection or session is needed, so that name might be a little
misleading and you might want to change it.
I was wondering what that was about. So it doesn't mean no login is required,
it means that no connection to
I've been working with valgrind extensively and have been doing a lot of make
clean. This is a tough one.
Those last couple of commits I made seem to have improved things a bit. More
later.
should this just list rooms which are public subscribeable or our
new public rooms too? else maybe the documentation needs to be
altered imho?
I don't think there is any difference? If you are running an open system
then the public rooms are the ones reachable without a login.
Well, the form of those commands is fairly straightforward; the trick is in
knowing the format of the system configurations that are to be loaded and
saved.
lib/stringbuf.c: In function 'StrECMAEscAppend':
lib/stringbuf.c:2216: error: 'IsUtf8Sequence' undeclared (first use in this
function)
lib/stringbuf.c:2216: error: (Each undeclared identifier is reported only
once
lib/stringbuf.c:2216: error: for each function it appears in.)
make: ***
Attention please:
Due to the excessive volume of commit logs being posted to this room, all
commit logs will now go to a different room called Citadel Commits . It
is a hidden room but it is accessible to everyone. Please go there if you
wish to view commits. You can also
attachments uploading doesn't work with iceweasel7
ok with chromium though...
Tested with Firefox 6, and it works. There is no Firefox 7. Is IceWeasel
7 a production browser?
You can comment out that line. Really. See
http://www.cygwin.com/ml/gdb-patches/2007-01/msg00258.html
for more information.
Aha! In fact, we did XML_StopParser() specifically to handle that
vulnerability.
(The guy who sent out the alert was a real asshole about it too.)
So we just need to change the XML_MAJOR_VERSION we're looking for from 0
to 1 and that will take care of it, as your patch demonstrates.
I don't think so ... are you sure you aren't running up against the limit
of a server command length in Citadel?
I believe we set our limit to 1024 characters in order to match other protocols
such as SMTP/POP which have their line limits set in the same place.
(No strbuf here please; doing so would create a cascading set of bugs that
would set us back by a year or more.)
not that clever.
The lack of cleverness comes from having dumbed it down -- a lot.
We went through a number of incidents where the IGnet config was being
completely
lost on some systems, causing all networking to stop.
Well, it looks like networking broke sometime around the beginning of May.
I'm posting this message to dogpound2, so I guess when I see it on Uncensored
we'll know we fixed it.
Listen up, folks: since parts of the 8.00 code seem to have accidentally
been released (and I still can't figure out why, but I'm assuming it is my
fault) we will release Citadel 8.01 *TODAY*.
This will be a soft launch like we did last time: the code will go gold
but we won't do a big
I'm still not sure how it happened. We're pretty careful about having all
of the release scripts track a stable branch of the code. I think something
got backported that shouldn't have.
Anyway, the Easy Install site is now tracking git master. I have a couple
of little things to do and
Hey everyone, sorry for my relative silence for the last week or so ... I've
been building a new version of the Citadel virtual appliance, using a scripted
installation this time so that the appliance itself can be regenerated at
any time, on any hypervisor. I'm just about done and will initially
I sure wish I was coding, but there's so much else to work on right now...
I spent the evening redesigining the front page of http://www.citadel.org
The page looks a little more modern now. It's tough, as a hacker, for me
to reduce the amount of information on that front page. I
Ooops. Gotta remove those command line options.
citserver and webcit both use syslog() now.
Each program is also set up so that if run in the foreground, it will log
to stderr as well.
I'm looking into systemd stuff right now. I'm not sure if citadel is
systemd ready (I haven't tested it yet), but this document
(http://0pointer.de/public/systemd-man/daemon.html) describes
systemd's requirements on a daemon. May be it's of interest for
someone.
Irrespective of
IG: What about citserver's -t trace_file option? Should it still
work?
Not anymore. It is a vestige of the old logging system which has been
completely
replaced with syslog.
I do see that if you specify the -t option it will create the file and then
do nothing with it; this has
The Free Software Foundation address in this file seems to be
outdated or
Ok, that's fixed. I see that they now want you to publish their web address
instead of their street address, and that's fine.
I've switched to the new suggested declaration, except the words free
software
I've started my own implementation of OpenID 2.0 Relying Party support. After
re-reading the specification for the protocol, I've decided that it's doable,
it's just going to take some time -- but it's worth doing, far more so than
trying to link in libopkele and add C++ dependencies.
For
I've finally finished the implementation of OpenID 2.0 authentication (relying
party) support. There are only two places where we go to the web using libcurl.
I was happy to discover that there were no changes required to the Citadel
server protocol, and therefore no changes required in
What if you read the userlist? That's guaranteed to go to multiple screenfuls.
Attention all Citadel packagers!
Please push the current contents of git master as Citadel 8.03 release
IMMEDIATELY.
The code contains a fix to a VERY SERIOUS bug that is causing upgrades to
fail and email aliases to be lost, causing incoming mail to bounce. There
is no risk of
Ok, I think this has something to do with the fact that the screen dimensions
are not detected until after the user logs in. Perhaps I can move that since
we are no longer tracrecording manually configured screen dimensions on a
per-user basis.
Yup, that was it. Fixed in revision fa5cd0e6595d211591cc8eebfa81874b03b6162d.
Branch stable-78x is now retired. (Any packagers who want to maintain
it are free to do so, but upstream is now officially retiring it.)
Branch stable-80x has been established. I would like it to be short lived.
dothebart is going to begin merging master and libev.
Ok, that's fine -- however I did notice that when I attempted to build Citadel
using an older version of libev/c-ares, I didn't get a configure error saying
that was the problem. Instead, the build simply failed with a bunch of obscure
errors.
Shouldn't the configure script check the
I added a configure check for libev version. I couldn't figure out how to
do it for c-ares though. Is there perhaps an API call that is only available
in the new version that we can check for?
ares_parse_mx_reply is the reason why we need a recent version; it
was added about a year ago by the node.js guys.
Ok, that worked really well. Now we can check for the right version.
Is there a similar function we can check for in libev? If so, then we can
look for that instead
That's part of why I don' t do much with Ubuntu...g  Â
I've been doing a lot with Ubuntu lately.
Most of it involves trolling any story on the web that mentions Ubuntu and
leaving a comment about how Ubuntu has jumped the shark now that they're forcing
Unity on everyone.
hm, a datatype which doesn't exist in the never version is not
enough?
for shure there are also the functions initializing them
ev_cleanup_init() is defined as a macro.
I went with ev_cleanup_start() instead. Is that definitely a function that
only appears in libev 4, not
Right. We're not actually calling that function from citserver; we are merely
checking for its existence in order to make sure we have a new enough version
of libev.
I have also decided to make zlib mandatory from now on.
Cool. What's the official upstream web site for Net::Citadel ? I want to
make sure we have it listed correctly on www.citadel.org
currently its rather a concern howto do rate limmiting so citserver
doesn't overrun peers or even the DNS server when doing a massive
delivery...
We probably want to have a maximum concurrent background tasks setting,
or something to that effect. At the moment, restarting citserver
We'll have to recheck that. I didn't see any when I tested it.
Speaking of which, I've also put a wholist into ctdlsh. It reuses the code
from the defunct 'whobbs' utility, although all I really ended up keeping
was the printf() calls that show the output.
More importantly, ctdlsh now
I wonder if we should simply drop support for Sieve and parse the rulesets
as they are.
Ok, well in any case you don't have to worry about losing mail. The way our
implementation works is that Sieve runs *after* a message arrives in the user's
inbox. The absolute worst case scenario is that a message is left in the
inbox.
Other software does this as well. Thunderbird for
IG, regarding your rework of sendcommand setup...
Is password recovery going to continue working?
Yes, in fact it works better now than it did before. You just run setup
and it does the right thing; it will even extract the correct admin password
and let you verify and/or change
sieve2_validate() returned 12: Sieve Error: script was not retrieved
This error results from an empty script being fed into the Sieve parser.
I have committed a change that will check for this condition and stop
processing
instead of throwing a spurious error.
The bit about eating
Ok, the behavior of the Sieve parser itself is beyond our control because
it's a third-party library; perhaps an inquiry with the developer of libSieve
might be in order.
I'm more concerned with the characters being eaten. Can you show me the
original line of script and what it looked like
Ok, I'm still planning to work on this, but I got sidetracked when I went
to test it -- discovering that when the Sieve editor was templatized, huge
chunks of functionality were simply omitted. I have to put it all back before
I can see why a character is being stripped.
In the next iteration of Easy Install, I intend to build libev, c-ares,
libsieve,
and maybe even libdb as static libraries. Since they're not shared, there
is no point in going through the rigamarole of handling them as dynamic.
Ok, it's time to test Sieve again.
(updated in git and in Easy Install, so far...)
Looks like a nice idea. Will we server software developers have to account
for this if distribution vendors adopt it?
Looks like the RSS reader has been stuck since April 3.
1001 - 1100 of 1678 matches
Mail list logo