/* Create MMS retrieve task */ MMSTask* mms_task_retrieve_new( MMSSettings* settings, MMSHandler* handler, const char* id, const char* imsi, const MMSPdu* pdu, GError** error) { const time_t now = time(NULL); MMS_ASSERT(pdu); MMS_ASSERT(pdu->type == MMS_MESSAGE_TYPE_NOTIFICATION_IND); MMS_ASSERT(pdu->transaction_id); if (pdu->ni.expiry > now) { MMSTaskRetrieve* retrieve = mms_task_http_alloc( MMS_TYPE_TASK_RETRIEVE, settings, handler, "Retrieve", id, imsi, pdu->ni.location, MMS_RETRIEVE_CONF_FILE, NULL); if (retrieve->http.task.deadline > pdu->ni.expiry) { retrieve->http.task.deadline = pdu->ni.expiry; } retrieve->transaction_id = g_strdup(pdu->transaction_id); return &retrieve->http.task; } else { MMS_ERROR(error, MMS_LIB_ERROR_EXPIRED, "Message already expired"); } return NULL; }
/** * Create MMS read report task */ MMSTask* mms_task_read_new( const MMSConfig* config, MMSHandler* handler, const char* id, const char* imsi, const char* msg_id, const char* to, MMSReadStatus rs, GError** err) { const char* file = mms_task_read_encode(config, id, msg_id, to, rs, err); if (file) { return mms_task_http_alloc(0, config, handler, "Read", id, imsi, NULL, NULL, file); } return NULL; }