+ case UserStats:
+ if (msg->unpacked)
+ mumble_proto__user_stats__free_unpacked(msg->payload.userStats, NULL);
+ else {
+ if (msg->payload.userStats->from_client)
+ free(msg->payload.userStats->from_client);
+ if (msg->payload.userStats->from_server)
+ free(msg->payload.userStats->from_server);
+ if (msg->payload.userStats->version) {
+ if (msg->payload.userStats->version->release)
+ free(msg->payload.userStats->version->release);
+ if (msg->payload.userStats->version->os)
+ free(msg->payload.userStats->version->os);
+ if (msg->payload.userStats->version->os_version)
+ free(msg->payload.userStats->version->os_version);
+
+ free(msg->payload.userStats->version);
+ }
+ if (msg->payload.userStats->celt_versions)
+ free(msg->payload.userStats->celt_versions);
+ if (msg->payload.userStats->certificates) {
+ if (msg->payload.userStats->certificates->data)
+ free(msg->payload.userStats->certificates->data);
+ free(msg->payload.userStats->certificates);
+ }
+ if (msg->payload.userStats->address.data)
+ free(msg->payload.userStats->address.data);
+
+ free(msg->payload.userStats);
+ }
+ break;
+ case ServerConfig:
+ if (msg->unpacked)
+ mumble_proto__server_config__free_unpacked(msg->payload.serverConfig, NULL);
+ else {
+ free(msg->payload.serverConfig);
+ }
+ break;