static void test_done( MMSDispatcherDelegate* delegate, MMSDispatcher* dispatcher) { Test* test = MMS_CAST(delegate,Test,delegate); if (!mms_handler_test_receive_pending(test->handler, NULL)) { test_finish(test); } }
static void test_done( MMSDispatcherDelegate* delegate, MMSDispatcher* dispatcher) { Test* test = MMS_CAST(delegate,Test,delegate); const TestDesc* desc = test->desc; const char* name = desc->name; if (test->ret == RET_OK) { const void* resp_data = NULL; gsize resp_len = 0; GBytes* reply = test_http_get_post_data(test->http); if (reply) resp_data = g_bytes_get_data(reply, &resp_len); if (resp_len > 0) { MMSPdu* pdu = g_new0(MMSPdu, 1); test->ret = RET_ERR; if (mms_message_decode(resp_data, resp_len, pdu)) { if (pdu->type != MMS_MESSAGE_TYPE_READ_REC_IND) { MMS_ERR("Unexpected PDU type %u", pdu->type); } else if (pdu->ri.rr_status != desc->rr_status) { MMS_ERR("Read status %d, expected %d", pdu->ri.rr_status, desc->rr_status); } else if (g_strcmp0(pdu->ri.to, desc->to)) { MMS_ERR("Phone number %s, expected %s", pdu->ri.to, desc->to); } else { MMS_READ_REPORT_STATUS status = mms_handler_test_read_report_status(test->handler, test->id); if (status != MMS_READ_REPORT_STATUS_OK) { MMS_ERR("Unexpected status %d", status); } else { test->ret = RET_OK; } } } else { MMS_ERR("Can't decode PDU"); } mms_message_free(pdu); } } MMS_INFO("%s: %s", (test->ret == RET_OK) ? "OK" : "FAILED", name); g_main_loop_quit(test->loop); }
inline static MMSEngine* mms_engine_from_dispatcher_delegate(MMSDispatcherDelegate* delegate) { return MMS_CAST(delegate,MMSEngine,dispatcher_delegate); }