void broad_cast(client_node_t* current_client, char* message) { client_node_t* client_list = get_client_list(); int c; for(c=1; c<=30; c++) { if(client_list[c].id != -1) { mq_send_msg(TELL_MSG, current_client->id, c, message); kill(client_list[c].pid, SIGUSR1); client_wait(); } } }
int main ( int argc, char *argv[] ) { MQ_MODULE_E src, dest; char send_data[64]; char recv_data[64]; memset(send_data, '\0', sizeof(send_data)); memset(recv_data, '\0', sizeof(recv_data)); src = MODULE_CAPI_RETRIEVE; dest = MODULE_CONF_MGR_RETRIEVE; strcpy(send_data, "send1"); if ( mq_init() == -1 ) { DEBUG_PRINTF("mq_init failed\n"); return EXIT_FAILURE; } if ( mq_send_msg(src, dest, send_data, sizeof(send_data), MQ_PRIO_1) < 0) { DEBUG_PRINTF("mq_send_msg failed\n"); return EXIT_FAILURE; } strcpy(send_data, "send2"); if ( mq_send_msg(src, dest, send_data, sizeof(send_data), MQ_PRIO_2) < 0) { DEBUG_PRINTF("mq_send_msg failed\n"); return EXIT_FAILURE; } mq_unload(); return EXIT_SUCCESS; }
int tell(client_node_t* current_client, char* client_id_str, char* message) { client_node_t* client_list = get_client_list(); int client_id = atoi(client_id_str); if(client_list[client_id].id == -1 || client_id < 1 || client_id > 30) { return -1; } else { char msg_to_send[2048]; sprintf(msg_to_send, "*** %s told you ***: %s\n", current_client->name, message); mq_send_msg(TELL_MSG, current_client->id, client_id, msg_to_send); kill(client_list[client_id].pid, SIGUSR1); client_wait(); } return 0; }