mirror of
https://bitbucket.org/jsuto/piler.git
synced 2024-12-25 20:30:11 +01:00
folder feature to the daemon
This commit is contained in:
parent
561b75230e
commit
927e202dcd
@ -69,6 +69,7 @@ struct _parse_rule config_parse_rules[] =
|
|||||||
{ "debug", "integer", (void*) int_parser, offsetof(struct __config, debug), "0", sizeof(int)},
|
{ "debug", "integer", (void*) int_parser, offsetof(struct __config, debug), "0", sizeof(int)},
|
||||||
{ "default_retention_days", "integer", (void*) int_parser, offsetof(struct __config, default_retention_days), "2557", sizeof(int)},
|
{ "default_retention_days", "integer", (void*) int_parser, offsetof(struct __config, default_retention_days), "2557", sizeof(int)},
|
||||||
{ "enable_cjk", "integer", (void*) int_parser, offsetof(struct __config, enable_cjk), "0", sizeof(int)},
|
{ "enable_cjk", "integer", (void*) int_parser, offsetof(struct __config, enable_cjk), "0", sizeof(int)},
|
||||||
|
{ "enable_folders", "integer", (void*) int_parser, offsetof(struct __config, enable_folders), "0", sizeof(int)},
|
||||||
{ "encrypt_messages", "integer", (void*) int_parser, offsetof(struct __config, encrypt_messages), "1", sizeof(int)},
|
{ "encrypt_messages", "integer", (void*) int_parser, offsetof(struct __config, encrypt_messages), "1", sizeof(int)},
|
||||||
{ "extra_to_field", "string", (void*) string_parser, offsetof(struct __config, extra_to_field), "", MAXVAL-1},
|
{ "extra_to_field", "string", (void*) string_parser, offsetof(struct __config, extra_to_field), "", MAXVAL-1},
|
||||||
{ "extract_attachments", "integer", (void*) int_parser, offsetof(struct __config, extract_attachments), "1", sizeof(int)},
|
{ "extract_attachments", "integer", (void*) int_parser, offsetof(struct __config, extract_attachments), "1", sizeof(int)},
|
||||||
|
@ -93,6 +93,8 @@ struct __config {
|
|||||||
|
|
||||||
int mmap_dedup_test;
|
int mmap_dedup_test;
|
||||||
|
|
||||||
|
int enable_folders;
|
||||||
|
|
||||||
int debug;
|
int debug;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
#define VERSION "1.2.0-master"
|
#define VERSION "1.2.0-master"
|
||||||
|
|
||||||
#define BUILD 919
|
#define BUILD 920
|
||||||
|
|
||||||
#define HOSTID "mailarchiver"
|
#define HOSTID "mailarchiver"
|
||||||
|
|
||||||
@ -91,6 +91,7 @@
|
|||||||
#define SQL_CUSTOMER_TABLE "customer"
|
#define SQL_CUSTOMER_TABLE "customer"
|
||||||
#define SQL_IMPORT_TABLE "import"
|
#define SQL_IMPORT_TABLE "import"
|
||||||
#define SQL_LEGAL_HOLD_TABLE "legal_hold"
|
#define SQL_LEGAL_HOLD_TABLE "legal_hold"
|
||||||
|
#define SQL_FOLDER_MESSAGE_TABLE "folder_message"
|
||||||
#define SQL_MESSAGES_VIEW "v_messages"
|
#define SQL_MESSAGES_VIEW "v_messages"
|
||||||
#define SQL_ATTACHMENTS_VIEW "v_attachment"
|
#define SQL_ATTACHMENTS_VIEW "v_attachment"
|
||||||
|
|
||||||
@ -107,7 +108,7 @@
|
|||||||
#define SQL_PREPARED_STMT_INSERT_INTO_FOLDER_TABLE "INSERT INTO `" SQL_FOLDER_TABLE "` (`name`, `parent_id`) VALUES(?,?)"
|
#define SQL_PREPARED_STMT_INSERT_INTO_FOLDER_TABLE "INSERT INTO `" SQL_FOLDER_TABLE "` (`name`, `parent_id`) VALUES(?,?)"
|
||||||
#define SQL_PREPARED_STMT_UPDATE_METADATA_REFERENCE "UPDATE " SQL_METADATA_TABLE " SET reference=? WHERE message_id=? AND reference=''"
|
#define SQL_PREPARED_STMT_UPDATE_METADATA_REFERENCE "UPDATE " SQL_METADATA_TABLE " SET reference=? WHERE message_id=? AND reference=''"
|
||||||
#define SQL_PREPARED_STMT_GET_GUI_IMPORT_JOBS "SELECT id, type, username, password, server FROM " SQL_IMPORT_TABLE " WHERE started=0 ORDER BY id LIMIT 0,1"
|
#define SQL_PREPARED_STMT_GET_GUI_IMPORT_JOBS "SELECT id, type, username, password, server FROM " SQL_IMPORT_TABLE " WHERE started=0 ORDER BY id LIMIT 0,1"
|
||||||
|
#define SQL_PREPARED_STMT_INSERT_FOLDER_MESSAGE "INSERT INTO " SQL_FOLDER_MESSAGE_TABLE " (`folder_id`, `id`) VALUES(?,?)"
|
||||||
|
|
||||||
/* Error codes */
|
/* Error codes */
|
||||||
|
|
||||||
|
@ -315,6 +315,7 @@ struct __data {
|
|||||||
MYSQL_STMT *stmt_insert_into_sphinx_table;
|
MYSQL_STMT *stmt_insert_into_sphinx_table;
|
||||||
MYSQL_STMT *stmt_insert_into_meta_table;
|
MYSQL_STMT *stmt_insert_into_meta_table;
|
||||||
MYSQL_STMT *stmt_insert_into_attachment_table;
|
MYSQL_STMT *stmt_insert_into_attachment_table;
|
||||||
|
MYSQL_STMT *stmt_insert_into_folder_message_table;
|
||||||
MYSQL_STMT *stmt_get_attachment_id_by_signature;
|
MYSQL_STMT *stmt_get_attachment_id_by_signature;
|
||||||
MYSQL_STMT *stmt_get_attachment_pointer;
|
MYSQL_STMT *stmt_get_attachment_pointer;
|
||||||
MYSQL_STMT *stmt_query_attachment;
|
MYSQL_STMT *stmt_query_attachment;
|
||||||
|
@ -129,6 +129,23 @@ int store_recipients(struct session_data *sdata, struct __data *data, char *to,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int store_folder_id(struct session_data *sdata, struct __data *data, uint64 id, struct __config *cfg){
|
||||||
|
int rc = ERR;
|
||||||
|
|
||||||
|
if(prepare_sql_statement(sdata, &(data->stmt_insert_into_folder_message_table), SQL_PREPARED_STMT_INSERT_FOLDER_MESSAGE, cfg) == ERR) return rc;
|
||||||
|
|
||||||
|
p_bind_init(data);
|
||||||
|
|
||||||
|
data->sql[data->pos] = (char *)&data->folder; data->type[data->pos] = TYPE_LONGLONG; data->pos++;
|
||||||
|
data->sql[data->pos] = (char *)&id; data->type[data->pos] = TYPE_LONGLONG; data->pos++;
|
||||||
|
|
||||||
|
if(p_exec_query(sdata, data->stmt_insert_into_folder_message_table, data) == OK) rc = OK;
|
||||||
|
close_prepared_statement(data->stmt_insert_into_folder_message_table);
|
||||||
|
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int update_metadata_reference(struct session_data *sdata, struct _state *state, struct __data *data, char *ref, struct __config *cfg){
|
int update_metadata_reference(struct session_data *sdata, struct _state *state, struct __data *data, char *ref, struct __config *cfg){
|
||||||
int ret = ERR;
|
int ret = ERR;
|
||||||
|
|
||||||
@ -223,6 +240,11 @@ int store_meta_data(struct session_data *sdata, struct _state *state, struct __d
|
|||||||
|
|
||||||
if(cfg->verbosity >= _LOG_DEBUG) syslog(LOG_PRIORITY, "%s: stored indexdata, rc=%d", sdata->ttmpfile, rc);
|
if(cfg->verbosity >= _LOG_DEBUG) syslog(LOG_PRIORITY, "%s: stored indexdata, rc=%d", sdata->ttmpfile, rc);
|
||||||
|
|
||||||
|
if(cfg->enable_folders == 1){
|
||||||
|
rc = store_folder_id(sdata, data, id, cfg);
|
||||||
|
if(cfg->verbosity >= _LOG_DEBUG) syslog(LOG_PRIORITY, "%s: stored folderdata, rc=%d", sdata->ttmpfile, rc);
|
||||||
|
}
|
||||||
|
|
||||||
ret = OK;
|
ret = OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user