static void * server_pipe_thread(void *pointer){ ortp_pipe_t child; do{ child=ortp_server_pipe_accept_client(server_pipe); if (server_pipe_running && child!=(ortp_pipe_t)-1){ char buf[256]={0}; if (ortp_pipe_read(child,(uint8_t*)buf,sizeof(buf))>0){ g_message("Received wakeup command with arg %s",buf); gdk_threads_enter(); g_timeout_add(20,(GSourceFunc)execute_wakeup,g_strdup(buf)); gdk_threads_leave(); } ortp_server_pipe_close_client(child); } }while(server_pipe_running); ortp_server_pipe_close(server_pipe); return NULL; }
static void stop_pipe_reader(void){ pipe_reader_run=FALSE; linphonec_command_finished(); ortp_server_pipe_close(server_sock); ortp_thread_join(pipe_reader_th,NULL); }