static int do_set_param(Request *req) { u8 *name = g_buffer; char *content = (char *)g_buffer; int retv = 0; Section * section; Ack ack; retv = receive_text(name, req->dataSize); name[req->dataSize] = 0; APP_INFO("Section Name is : %s\n", (char *)name); section = find_section((char *)name); ack.info = ack.result = (NULL == section) ? -1 : 0; retv = send_text((u8 *)&ack, sizeof(ack)); if (ack.result == -1) { APP_INFO("Section [%s] is not found!\n", (char *)name); return -1; } // Receive parameter settings retv = receive_text((u8 *)content, req->info); content[req->info] = 0; if (0) { APP_INFO("===== Parameter Setting is : \n%s", content); } else { APP_INFO("===== Parameter Setting is : \n%s", content); retv = mw_config_params(section->map, content); retv = (*section->set)(section->name); ack.result = ack.info = retv; } retv = send_text((u8 *)&ack, sizeof(ack)); return retv; }
static int do_get_param(Request *req) { u8 *name = g_buffer; char *content = (char *)g_buffer; int retv = 0; Section * section; Ack ack; // Get section name retv = receive_text(name, req->dataSize); name[req->dataSize] = 0; APP_INFO("Section Name is : %s\n", (char *)name); section = find_section((char *)name); if (NULL == section) { ack.result = -1; ack.info = -1; APP_INFO("Section [%s] is not found!\n", (char *)name); return send_text((u8 *)&ack, sizeof(ack)); } else { retv = (*section->get)(section->name, req->info); retv = mw_output_params(section->map, &content); APP_INFO("\n%s\n", content); ack.result = retv; ack.info = strlen(content); send_text((u8 *)&ack, sizeof(ack)); return send_text((u8 *)content, ack.info); } }
static void on_immediate_message (ModemSMSService *sms, gchar const *message, GHashTable *info, gpointer _self) { RingTextManager *self = RING_TEXT_MANAGER (_self); char const *sender; RingTextChannel *channel; g_return_if_fail (info != NULL); g_return_if_fail (message != NULL); sender = tp_asv_get_string (info, "Sender"); g_return_if_fail (sender != NULL); channel = get_text_channel (self, sender, 0, 0); g_return_if_fail (channel != NULL); receive_text (self, channel, message, info, 0); }
static void main_loop(void) { #ifdef CONFIG_AMBARELLA_IMAGE_SERVER_DAEMON if (start_server() < 0) { APP_ERROR("start_server"); return; } #endif while (1) { if (connect_server() < 0) break; while (1) { Request req; if (receive_text((u8 *)&req, sizeof(req)) < 0) break; process_request(&req); } disconnect_server(); } }