X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=src%2Fmessagehandler.c;h=b1a55fbcf96a04f60e44ee7271b830f0fa143e26;hb=893f97a3eab1da17bfa9f00edb081e4fba32548b;hp=8d188652308c158f89862bf5ae53553c668f051d;hpb=a72efcd9b1c000c47bbe363f51c9123528e41d84;p=umurmur.git diff --git a/src/messagehandler.c b/src/messagehandler.c index 8d18865..b1a55fb 100644 --- a/src/messagehandler.c +++ b/src/messagehandler.c @@ -143,22 +143,22 @@ void Mh_handle_message(client_t *client, message_t *msg) /* Channel stuff */ Chan_userJoin(defaultChan, client); /* Join default channel */ - /* Codec version */ - if (msg->payload.authenticate->n_celt_versions > MAX_CODECS) - Log_warn("Client has more than %d CELT codecs. Ignoring %d codecs", - MAX_CODECS, msg->payload.authenticate->n_celt_versions - MAX_CODECS); - - Log_debug("Client %d has %d CELT codecs", client->sessionId, msg->payload.authenticate->n_celt_versions); + /* Codec version */ + Log_debug("Client %d has %d CELT codecs", client->sessionId, + msg->payload.authenticate->n_celt_versions); if (msg->payload.authenticate->n_celt_versions > 0) { int i; - client->codec_count = msg->payload.authenticate->n_celt_versions > MAX_CODECS ? - MAX_CODECS : msg->payload.authenticate->n_celt_versions; - for (i = 0; i < client->codec_count; i++) { - client->codecs[i] = msg->payload.authenticate->celt_versions[i]; - Log_debug("Client %d CELT codec ver 0x%x", client->sessionId, client->codecs[i]); - } + codec_t *codec_itr; + client->codec_count = msg->payload.authenticate->n_celt_versions; + + for (i = 0; i < client->codec_count; i++) + Client_codec_add(client, msg->payload.authenticate->celt_versions[i]); + codec_itr = NULL; + while (Client_codec_iterate(client, &codec_itr) != NULL) + Log_debug("Client %d CELT codec ver 0x%x", client->sessionId, codec_itr->codec); + } else { - client->codecs[0] = (int32_t)0x8000000a; + Client_codec_add(client, (int32_t)0x8000000a); client->codec_count = 1; }