@@ -3825,10 +3825,7 @@ BOOL exmdb_server::write_message_v2(const char *dir, cpid_t cpid,
38253825 uint64_t folder_id, const MESSAGE_CONTENT *pmsgctnt,
38263826 uint64_t *outmid, uint64_t *outcn, ec_error_t *pe_result)
38273827{
3828- BOOL b_exist;
3829- uint64_t mid_val = 0 , cn_val = 0 , fid_val1 = 0 ;
3830-
3831- b_exist = FALSE ;
3828+ BOOL b_exist = false ;
38323829 auto pmid = pmsgctnt->proplist .get <uint64_t >(PidTagMid);
38333830 auto pdb = db_engine_get_db (dir);
38343831 if (!pdb)
@@ -3843,12 +3840,13 @@ BOOL exmdb_server::write_message_v2(const char *dir, cpid_t cpid,
38433840 }
38443841 auto fid_val = rop_util_get_gc_value (folder_id);
38453842 if (NULL != pmid) {
3843+ uint64_t parent_fid = 0 ;
38463844 if (!common_util_get_message_parent_folder (pdb->psqlite ,
3847- rop_util_get_gc_value (*pmid), &fid_val1 ))
3845+ rop_util_get_gc_value (*pmid), &parent_fid ))
38483846 return FALSE ;
3849- if (0 != fid_val1 ) {
3847+ if (parent_fid != 0 ) {
38503848 b_exist = TRUE ;
3851- if (fid_val != fid_val1 ) {
3849+ if (fid_val != parent_fid ) {
38523850 *pe_result = ecRpcFailed;
38533851 return TRUE ;
38543852 }
@@ -3861,9 +3859,9 @@ BOOL exmdb_server::write_message_v2(const char *dir, cpid_t cpid,
38613859
38623860 bool partial = false ;
38633861 if (!message_write_message (false , pdb->psqlite , cpid, false ,
3864- fid_val, pmsgctnt, &mid_val, &cn_val , &partial))
3862+ fid_val, pmsgctnt, outmid, outcn , &partial))
38653863 return FALSE ;
3866- if (0 == mid_val ) {
3864+ if (*outmid == 0 ) {
38673865 // auto rollback at end of scope
38683866 *pe_result = ecRpcFailed;
38693867 return false ;
@@ -3873,12 +3871,12 @@ BOOL exmdb_server::write_message_v2(const char *dir, cpid_t cpid,
38733871 db_conn::NOTIFQ notifq;
38743872 if (b_exist) {
38753873 pdb->proc_dynamic_event (cpid, dynamic_event::modify_msg,
3876- fid_val, mid_val , 0 , *dbase, notifq);
3877- pdb->notify_message_modification (fid_val, mid_val , *dbase, notifq);
3874+ fid_val, *outmid , 0 , *dbase, notifq);
3875+ pdb->notify_message_modification (fid_val, *outmid , *dbase, notifq);
38783876 } else {
38793877 pdb->proc_dynamic_event (cpid, dynamic_event::new_msg, fid_val,
3880- mid_val , 0 , *dbase, notifq);
3881- pdb->notify_message_creation (fid_val, mid_val , *dbase, notifq);
3878+ *outmid , 0 , *dbase, notifq);
3879+ pdb->notify_message_creation (fid_val, *outmid , *dbase, notifq);
38823880 }
38833881 if (sql_transact.commit () != SQLITE_OK)
38843882 return false ;
0 commit comments