static int mhdriver_cached_initialize(mailsession * session) { struct mh_cached_session_state_data * data; data = malloc(sizeof(* data)); if (data == NULL) goto err; data->mh_flags_store = mail_flags_store_new(); if (data->mh_flags_store == NULL) goto free; data->mh_ancestor = mailsession_new(mh_session_driver); if (data->mh_ancestor == NULL) goto free_store; data->mh_quoted_mb = NULL; session->sess_data = data; return MAIL_NO_ERROR; free_store: mail_flags_store_free(data->mh_flags_store); free: free(data); err: return MAIL_ERROR_MEMORY; }
static int pop3driver_cached_initialize(mailsession * session) { struct pop3_cached_session_state_data * data; data = malloc(sizeof(* data)); if (data == NULL) goto err; data->pop3_flags_store = mail_flags_store_new(); if (data->pop3_flags_store == NULL) goto free_data; data->pop3_ancestor = mailsession_new(pop3_session_driver); if (data->pop3_ancestor == NULL) goto free_store; data->pop3_flags_hash = chash_new(128, CHASH_COPYNONE); if (data->pop3_flags_hash == NULL) goto free_session; session->sess_data = data; return MAIL_NO_ERROR; free_session: mailsession_free(data->pop3_ancestor); free_store: mail_flags_store_free(data->pop3_flags_store); free_data: free(data); err: return MAIL_ERROR_MEMORY; }
static int initialize(mailsession * session) { struct maildir_session_state_data * data; data = malloc(sizeof(* data)); if (data == NULL) goto err; data->md_session = NULL; data->md_flags_store = mail_flags_store_new(); if (data->md_flags_store == NULL) goto free; session->sess_data = data; return MAIL_NO_ERROR; free: free(data); err: return MAIL_ERROR_MEMORY; }