{"shas":[["af3e1546ccaea91628d789adfd51d9b6154a5e98","3466dd23bc7867913745114618459f038a99e706@launde.home.brong.net","Remove sieve action string\n\nWe use sieve to forward messages to a notification\ndaemon which can send SMSes, and we don't want them\nfilled with information about the actions which\nSieve took.\n\nThis patch stops the action_string being appended to\nthe message sent to the notify daemon.","Bron Gondwana"],["2606b286d736328dd77b766a14b5ccc08c411df2","3466dd23bc7867913745114618459f038a99e706@opera.com","GUID IMAP COMMANDS\n\nThis patch factors out stuff we used to have in the old MD5UUIDs\npatch, the following FETCH responses in imapd:\n\nFETCH DIGEST.SHA1 => 40 character hex string (message sha1)\nFETCH RFC822.SHA1 => 40 character hex string (message sha1, calculated)\nFETCH RFC822.FILESIZE => size of actual file on disk (via stat or mmap)\n\nIt also adds a capability string item: \"DIGEST=SHA1\"\n\nTotally non-standard of course, but way useful for our replication checking\nscripts.  Embrace and extend 'r' us.\n\nAnyone feel like writing an RFC for fetching the digest of a message via\nIMAP?  If the server calculated it on delivery and cached it then you'd have\na great way to clean up after a UIDVALIDITY change or other destabilising event\nwithout having to fetch every message again.","Bron Gondwana"],["dcfc39ab03cd05116cff39acf6e5d8763cb23431","3466dd23bc7867913745114618459f038a99e706@launde.brong.net","Tool to build debian package directory","Bron Gondwana"],["787876122f4a64ff3ed70ed17c9879d94e94ca92","3466dd23bc7867913745114618459f038a99e706@opera.com","Fatal -> abort in common daemons","Bron Gondwana"],["460c28675ba356569b5b019f4c130f6816b89f9e","3466dd23bc7867913745114618459f038a99e706@opera.com","Fastmail Secrets (no rated)","Bron Gondwana"],["cd1a4ca966536e5ad6590f92170e0ff9cf91ca24","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Parse the References: header in messages\n\nInto a new string field in struct body, which callers can scan for\nmessage-ids using find_msgid().","Greg Banks"],["37a326933594b0669c1f125257c63668cbd411c3","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Add unit test for parsing body.references","Greg Banks"],["3ef8c6dc3d81993924a966ae9b98a5512ab92058","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Add conversations database.\n\nIt's a very simple database with only one type of record, which\nmaps a message-id with angle brackets, e.g. \"<0001@example.com>\",\nto a conversation id and a timestamp.  The conversation id is a\n64b int.\n\nstruct conversations_state holds a reference to an open conversations\ndatabase.  There can be more than one of these in existance.  There\nwill eventually be a conversations databases per-user, but this code\ndoesn't know that and just takes a filename.\n\nconversations_open() opens a database handle and starts a transaction.\n\nconversations_close() aborts the transation if it has not been\n    commited, and closes the database handle.\n\nconversations_commit() commits a transaction.\n\nconversations_set() stores a conversation id for a msgid, and sets\n    the record's timestamp to the current system time.\n\nconversations_get() retrieves the conversation id given a msgid.\n\nconversations_prune() removes all records older than a given time.","Greg Banks"],["40d48a0cc6e007a635070ab445df599089d1deab","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Add unit test for conversations db.","Greg Banks"],["1d5369166cdd0cc71676e6ace6df7b73e6167cef","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Update rfc822_header.[ch] for References:\n\nThis should have happened in commit\n'Parse the References: header in messages'","Greg Banks"],["60b5eae413644f9b122243af376152f065938dfc","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Move find_msgid() to global.c\n\nWas a static function in index.c, now make it a useful global function.\nNot 100% sure that global.c is the right place but it's certainly\nbetter than index.c (plus the next change but one links if I do it\nthis way).","Greg Banks"],["c04f71d4d5b2495d90801ea4d95f361f1569a135","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Add a unit test for find_msgid().","Greg Banks"],["ab5f66940106101bc9fd3d9beed0c7a2b735db2c","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Add mboxname_to_parts()\n\nWhich splits up an internal mbox name into its constituent parts:\ndomain, userid, and box, any of which can be NULL.","Greg Banks"],["f9b35f3b19ec9d5791816f1cc16215f4a6f8bb56","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Add mboxname_same_userid()\n\nWhich compares the userids in two mboxnames to see if they're\nthe same (taking care of the domain also).","Greg Banks"],["d5cb6db0b4154ddbeb6cd49855474cb910d0d715","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Add unit test for some mboxname.c functions.","Greg Banks"],["f61312f9370f89f6416443c11f946913a793e520","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Add dir_hash_b()\n\nThis is a thin wrapper around dir_hash_c() which builds a\n1-char C string in the buffer given it, instead of returning\nthe first char as an int.  This is more convenient when we're\nbuilding pathnames.","Greg Banks"],["b4b9306a0181742f315f7ba01697277267aba396","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Add conversations_getpath()\n\nwhich constructs and returns a new string which is the pathname\nof the canonical location of the conversations db for a given\nuserid.  Uses strconcat() and mboxname_to_parts() to do this\ncleanly (unlike every other path construction function in Cyrus).\n\nNote that we deliberately don't combine this with conversations_open()\nfor two reasons:\n\na) it allows unit testing with non-canonical pathnames\n\nb) it allows callers do to interesting things in between the\n   two steps, which will become useful in a utility soon.","Greg Banks"],["3143139ab6cfa5ff54614e07ab519260ecb0a0e1","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Add conversationsdump utility.\n\nSimple commandline utility to dump the contents of a userid's\nconversations database.  Useful for debugging.","Greg Banks"],["578561365d3816cd4244f623aab3af311f9666d3","3466dd23bc7867913745114618459f038a99e706@opera.com","APPEND updates the conversations db","Bron Gondwana"],["ba59e2c16121293529ab50764dc4f69b74c49cc1","3c474cf4bdc26bce6c823d6384748a5a3679f008@fastmail.fm","Update conversations for COPY\n\nHandles COPYing messages\n\n- to a folder owned by the same user as the origin folder\n  (trivially reuses the CID, writing it into the destination\n  folder's index).\n\n- to a folder owned by a different user as the origin folder\n  (calculates a new CID using the conversations database of\n  the destination folder's owner, and writes it into the\n  destination folder's index).\n\n- to a folder in a domain's shared space or in the default\n  domain's shared space, which has no owner, (calculates a new\n  CID using the conversations database for the domain's shared\n  space, and writes it into the destination folder's index).","Greg Banks"]],"repo":"brong/cyrus-imapd","actor":"brong","ref":"refs/heads/future","size":90,"head":"48dd41df7d80562de7f894f3bfca84ae83eaeac8","actor_gravatar":"c55ece7022f0678e7b270ec72115b394","push_id":26433915}