Art Cancro [Mon, 26 Apr 2010 16:20:53 +0000 (16:20 +0000)]
* Executive decision. From now on, intr (ctrl-c) begins an attempt at a graceful shutdown, but quit (ctrl-backslash) forcibly quits the server. Signal handler for SIGQUIT has been disabled.
* add Remove button
* post_message(): use IKEY and Flathash, we just use numbers anyway.
* post_message(): add handler for removal of attachments; it seems as if 'filename' comes out URL-encoded, so we need to decode it.
We need to iterate and strcmp() so we find the right one :(
* post_message(): when adding a new item just using count+1 isn't sufficient anymore; we need to use the key value + 1 of the last item in the list instead
* DeleteEntryFromHash(): don't skip indirection via the lookuptable, else we free some random payload
* DeleteEntryFromHash(): NULL the end of the list; This is the entry we just removed.
* hashlist_test: add some tests with removing items from the list
* move policy.c into modules/expire/expire_policy.c, since it just controls this.
* remove all unneded includes to policy.h
* remove hardcoded reference to policy from mk_module_init.sh (hard to find...)
* add one more callback hook to the webcit DAV handler structure; this will be used to revalidate URLs, move or delete certain items referenced by URLs
* add handler vor EUID based namespaces; so far we just have the exists logic; this will be filled with the other required operations soon.
* finish REST URL parsing with 'best-guess'-room logic
* ReadPostData(): abort if we fail to read the whole content
* session_loop(): allocate buffers after reading post data, so we don't have to free them on error
* session_loop(): abort if reading post data fails
* change_start_page(), LoadStartpage(): check whether the startpage is allowed by rule
* InitModule_MSG() disallow postpart_download, postpart, confirm_move_msg, delete_msg, move_msg, post to become the startpage; they don't do usefull things there.
Art Cancro [Thu, 8 Apr 2010 04:33:45 +0000 (04:33 +0000)]
* Moved instant messaging into its own module -- serv_instmsg
* Removed serv_chat and the CHAT command
* Implemented serv_roomchat and the RCHT command, which implements a brand new chat protocol
* GetRESTFolder(): find the parts of the URL matching our rooms; since there may be uids/messageids/mimeparts keep a 'best guess' we return if theres no direct match
* GetRESTFolder(): collect sub-rooms of the current URL so we can list them later
* cdb_decompress_if_necessary(): memset 0 the buffer before accessing it
* cdb_decompress_if_necessary(): don't lean on cdb being big enough to fill our header
* string_append_c(): use another name for buf
* imap_roomname():
* 256 is double ROOMNAMELEN; calculate it here to show the relation in place
* extract_token() gives us -1 or the stringlength, use it instead of doing another strlen a line below
* use safestrncpy()
* do_imap_match():
* while lowercasing run till \0 rather than doing strlen above
* respect the size of the target buffer...
* For-loop: assign pointers here, since we start using them here; use IsEmptyStr all over the place (also some forgotten ones...)
* CtdlClientGetLine(): we don't support Error while SSL I/O; remove it.
* client_readline_sslbuffer() put in Pos from the outside
* client_readline_sslbuffer() rewrite contents with StrBufTCP_read_buffered_line_fast() as sample
* fix imap uid fetching:
- imap_strip_headers() : fix loading of the line from the buffer
- imap_strip_headers() : split evaluation for headers_not/headers so we can more easily determine and abort if we want to print the header
- imap_strip_headers() : if ptr IS StrBufNotNULL we're done reading headers
- imap_fetch_body() : partial has to be a StrBuf too if its source is; adjust processing accordingly
* add StrBufPook which blobs out a sub-part of the string
* add StrBufStripAllBut, which aims to replace stripallbut, whose functionality is not yet all clear to me.
* add NULL protection to StrBufSub
Art Cancro [Sun, 7 Mar 2010 05:01:27 +0000 (05:01 +0000)]
* Never mind ... I understand now. Messages which were copied *in* by code between r8300 and r8431 are corrupt on-disk and cannot be rendered. Backed out my last change.
Art Cancro [Sun, 7 Mar 2010 00:19:01 +0000 (00:19 +0000)]
* msgbase.c now contains both the new and old versions of CtdlOutputPreLoadedMsg() so that I can work on other things while the new version is debugged. define NEW_COPLM to get the new version, otherwise you get the one from r8422.
* fix convert_internet_message_buf(); we forgot to append a newline here
* calculate the body start pos while iterating, so we can react the same way we did before
Art Cancro [Fri, 5 Mar 2010 21:19:07 +0000 (21:19 +0000)]
* New parameter to CtdlSaveMsgPointersInRoom() to suppress the reference count adjustment. To be used ONLY when we're going to rewrite the metadata manually. Used ONLY by serv_migrate. Everyone else HANDS OFF.