From: Martin Johansson Date: Mon, 3 Dec 2012 19:33:00 +0000 (+0100) Subject: Add function for sending textmessages. X-Git-Url: http://git.code-monkey.de/?p=umurmur.git;a=commitdiff_plain;h=f8b5a8c02b63f644ca1d977af362b2f9f8037534 Add function for sending textmessages. --- diff --git a/src/client.c b/src/client.c index 3444882..abb9377 100644 --- a/src/client.c +++ b/src/client.c @@ -273,24 +273,7 @@ void recheckCodecVersions(client_t *connectingClient) iCodecBeta = version; } else if (bOpus == enableOpus) { if (connectingClient && !connectingClient->bOpus) { - char *message; - uint32_t *tree_id; - message_t *sendmsg = NULL; - - message = malloc(strlen(OPUS_WARN) + 1); - if (!message) - Log_fatal("Out of memory"); - tree_id = malloc(sizeof(uint32_t)); - if (!tree_id) - Log_fatal("Out of memory"); - *tree_id = 0; - sendmsg = Msg_create(TextMessage); - sendmsg->payload.textMessage->message = message; - sendmsg->payload.textMessage->n_tree_id = 1; - sendmsg->payload.textMessage->tree_id = tree_id; - sprintf(message, OPUS_WARN); - Client_send_message(connectingClient, sendmsg); - sendmsg = NULL; + Client_textmessage(client_itr, OPUS_WARN); } return; } @@ -314,24 +297,7 @@ void recheckCodecVersions(client_t *connectingClient) while (Client_iterate(&client_itr) != NULL) { if ((client_itr->authenticated || client_itr == connectingClient) && !client_itr->bOpus) { - char *message; - uint32_t *tree_id; - message_t *sendmsg = NULL; - - message = malloc(strlen(OPUS_WARN) + 1); - if (!message) - Log_fatal("Out of memory"); - tree_id = malloc(sizeof(uint32_t)); - if (!tree_id) - Log_fatal("Out of memory"); - *tree_id = 0; - sendmsg = Msg_create(TextMessage); - sendmsg->payload.textMessage->message = message; - sendmsg->payload.textMessage->n_tree_id = 1; - sendmsg->payload.textMessage->tree_id = tree_id; - sprintf(message, OPUS_WARN); - Client_send_message(client_itr, sendmsg); - sendmsg = NULL; + Client_textmessage(client_itr, OPUS_WARN); } } @@ -693,6 +659,27 @@ client_t *Client_iterate(client_t **client_itr) return c; } +void Client_textmessage(client_t *client, char *text) +{ + char *message; + uint32_t *tree_id; + message_t *sendmsg = NULL; + + message = malloc(strlen(text) + 1); + if (!message) + Log_fatal("Out of memory"); + tree_id = malloc(sizeof(uint32_t)); + if (!tree_id) + Log_fatal("Out of memory"); + *tree_id = 0; + sendmsg = Msg_create(TextMessage); + sendmsg->payload.textMessage->message = message; + sendmsg->payload.textMessage->n_tree_id = 1; + sendmsg->payload.textMessage->tree_id = tree_id; + strcpy(message, text); + Client_send_message(client, sendmsg); +} + int Client_send_message_except(client_t *client, message_t *msg) { diff --git a/src/client.h b/src/client.h index a0f42d5..7e762e1 100644 --- a/src/client.h +++ b/src/client.h @@ -125,5 +125,6 @@ void recheckCodecVersions(client_t *connectingClient); void Client_codec_add(client_t *client, int codec); void Client_codec_free(client_t *client); codec_t *Client_codec_iterate(client_t *client, codec_t **codec_itr); +void Client_textmessage(client_t *client, char *text); #endif diff --git a/src/messagehandler.c b/src/messagehandler.c index faffea2..cb7f486 100644 --- a/src/messagehandler.c +++ b/src/messagehandler.c @@ -247,24 +247,7 @@ void Mh_handle_message(client_t *client, message_t *msg) Client_send_message(client, sendmsg); if (!bOpus && client->bOpus && fake_celt_support) { - char *message; - uint32_t *tree_id; - message_t *sendmsg = NULL; - - message = malloc(strlen(NO_CELT_MESSAGE) + 1); - if (!message) - Log_fatal("Out of memory"); - tree_id = malloc(sizeof(uint32_t)); - if (!tree_id) - Log_fatal("Out of memory"); - *tree_id = 0; - sendmsg = Msg_create(TextMessage); - sendmsg->payload.textMessage->message = message; - sendmsg->payload.textMessage->n_tree_id = 1; - sendmsg->payload.textMessage->tree_id = tree_id; - sprintf(message, NO_CELT_MESSAGE); - Client_send_message(client, sendmsg); - sendmsg = NULL; + Client_textmessage(client, NO_CELT_MESSAGE); } /* Iterate channels and send channel info */