Art Cancro [Mon, 11 Feb 2008 18:23:47 +0000 (18:23 +0000)]
The external libiconv test in webcit configure was
faulty. It set the -libiconv compiler flag even if no external
libiconv was available. Fixed this by turning it into an
autoconf builtin test. Hopefully this fixes FreeBSD.
* add typedefs in citadel.h so we don't need to typedef all over the place.
* having a struct 'march' and a global variable 'march' isn't that smart. the variable is marchptr now.
* fixed some warnings and unneded inclodes.
* don't nail upload hellos to .gif as we don't need that anymore
* specify mimetype at image upload
* display the current image in the upload dialog
* specify mimetype at file upload
* display listing with mimetypes
* dummy implementation with mime-icons, just does diskette fallback atm.
* some tiny inacuracy in the translation.
* UIMG and UOPN require the client to specify a Mimetype now.
* the list file now contains this mimetype too, if there is no statement with a '/' in the expected place, we fallback to old notation and specify application/octetstream
* adjust the client library.
* in rooms.c list the [mimetype]. if s.b. doesn't like this notation, please change.
* tiny 'file'-extract, now we can detect the type of an image. and set the mimetype apropriate.
* First bits to fallback to serverwinde gettext if we don't have uselocale on that system.
Art Cancro [Fri, 8 Feb 2008 04:04:55 +0000 (04:04 +0000)]
httpdate_to_datestamp() no longer needs to temporarily
set the TZ environment variable to UTC, which is good because some systems
will fail to set it back afterwards. Instead we grab the offset from the
global 'timezone' variable and add it to tm_sec. mktime() will then
normalize the struct before converting to time_t. This fixes a bug on some
systems where the time zone would appear to spontaneously switch to UTC.
Art Cancro [Tue, 5 Feb 2008 21:13:44 +0000 (21:13 +0000)]
New option in the text client to open attachments
directly instead of saving them to a temporary file. The
fact that most Linux systems now have 'xdg-open' makes this
a big win.
Art Cancro [Sat, 2 Feb 2008 05:45:20 +0000 (05:45 +0000)]
* Thread ID's are now displayed in 0x%08lx format instead
of %ld format. This seems to be the standard.
* Added AUTHMODE_LDAP to the authentication modes in the header file.
The code itself has not been written, but the framework for cleanly
separating handlers for each auth mode is taking shape.
* if we find an '&', try to watch out for an ; within the next 6 chars. if we find a ';' we probably found an entity, and the URL is finished.
* fixiate our endpoint by a '\0' so the other fixups don't trick us.
Art Cancro [Tue, 29 Jan 2008 21:59:07 +0000 (21:59 +0000)]
Eliminated unnecessary complexity by removing support
for RFC 1893 (ESMTP enhanced status codes). This is a
stupid extension that doesn't accomplish what it intended
to, so out it goes.
Art Cancro [Tue, 29 Jan 2008 05:04:05 +0000 (05:04 +0000)]
Third try. :(
The test for libcitadel version in the configure script had too many
places where it could either break or send the build into an infinite
loop of reconfiguration. Moved the test into the citadel.h and
webcit.h header files, where they throw an error if the version is
too old.
Art Cancro [Mon, 28 Jan 2008 16:25:50 +0000 (16:25 +0000)]
* Unfinished code is now disabled.
To enable it, do 'CFLAGS=-DTECH_PREVIEW' prior to configure.
This will activate the Jabber and Wiki modules.
* Citadel and WebCit configure scripts now check to make sure that
libcitadel is current enough.
* Cleaned up some compiler warnings.
Art Cancro [Thu, 24 Jan 2008 16:43:23 +0000 (16:43 +0000)]
Fixed bug #226. The sample message supplied was
a multipart/mixed that contained nothing except an attached message/rfc822
submessage. This is quite unusual but I suppose it is legal. With no viewable
parts at the top level, webcit assumed that the message was corrupt. Changed the
code so that this is no longer an error condition. Instead of displaying an error
and jumping to the exit point, we now display nothing and jump to the portion of
read_message() that displays attachments and submessages.
Art Cancro [Wed, 23 Jan 2008 17:35:26 +0000 (17:35 +0000)]
Modified ical_dezonify() again. It seems that there
is never a need to free the icaltimezone, as it will always be one
of three things:
1. A built-in timezone (memory belongs to libical)
2. Hardcoded UTC timezone (memory belongs to libical)
3. A supplied timezone from another component (memory belongs to caller)
Removed the call to icaltimezone_free().
Dave West [Sun, 20 Jan 2008 13:52:06 +0000 (13:52 +0000)]
Now when a room is created or deleted this users icon bar is updated
immediately.
Other users will have to wait until their iconbar is refreshed (up to
300 seconds) but since they have no knowledge of when the room was
created/deleted they'll never notice.
Dave West [Sat, 19 Jan 2008 23:53:29 +0000 (23:53 +0000)]
Fix the user purge / delete thing once and for all.
When a user is deleted they are purged from the database immediately
unless they are currently logged in.
This used to rely on the autopurger purging the user at a later date.
Now when the user logs out we check to see if they have been marked for
deletion and if they have purge them immediately.
Art Cancro [Sat, 19 Jan 2008 06:51:26 +0000 (06:51 +0000)]
Aha! Finally found the culprit. Someone (possibly me) at
some point in the past decided to set the TZ environment variable
to UTC if it was empty. This is wrong because an empty TZ causes
libc to discover the timezone by other means. As a result, hosts
that were in other timezones were getting their times changed to
UTC.
* decode subject in the right position; if we decode the full text, we don't get hickups with sections passing the border.
* put in a correct dummy string.
Art Cancro [Thu, 17 Jan 2008 20:29:27 +0000 (20:29 +0000)]
The encoding and decoding tables for Base64 are
no longer calculated at startup. CtdlInitBase64Table() is removed. The tables
are now hardcoded as 'const' arrays. Not only will this eliminate the need to do
a startup calculation, but since it is now const we will get a nice clean segv if
some other code attempts to clobber them.
Art Cancro [Thu, 17 Jan 2008 05:08:46 +0000 (05:08 +0000)]
dtable/etable initialization code in libcitadel was
not complete. CtdlEncodeBase64() still initialized upon each call -- and it was
initializing dtable, not etable, causing dtable to have the wrong data the next time
CtdlDecodeBase64() is called. Fixed. Also noticed that WebCit was not calling the
initialization function at all, so this has probably been broken ever since the move
to libcitadel. Fixed this too.