diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt index 7b9e1db..15f484d 100644 --- a/server/CMakeLists.txt +++ b/server/CMakeLists.txt @@ -3,7 +3,7 @@ project(TeaSpeak-Server) set(CMAKE_VERBOSE_MAKEFILE ON) #--allow-multiple-definition -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -Wall -Wno-reorder -Wno-sign-compare -static-libgcc -static-libstdc++ -g -Wl,-no-whole-archive -pthread ${MEMORY_DEBUG_FLAGS}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -Wall -Wno-reorder -Wno-sign-compare -static-libgcc -static-libstdc++ -g -Wl,-no-whole-archive,--no-undefined -pthread ${MEMORY_DEBUG_FLAGS}") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O3") diff --git a/server/src/client/ConnectedClientNotifyHandler.cpp b/server/src/client/ConnectedClientNotifyHandler.cpp index 76a22e1..9b6fab8 100644 --- a/server/src/client/ConnectedClientNotifyHandler.cpp +++ b/server/src/client/ConnectedClientNotifyHandler.cpp @@ -99,7 +99,7 @@ bool ConnectedClient::notifyGroupPermList(const std::shared_ptr& group, b } else { cmd[index]["permid"] = (uint16_t) (type->type | PERM_ID_GRANT); } - cmd[index]["permvalue"] = permission.values.value; + cmd[index]["permvalue"] = permission.values.grant; cmd[index]["permnegated"] = permission.flags.negate; cmd[index]["permskip"] = permission.flags.skip; index++; diff --git a/server/src/client/voice/VoiceClientConnection.cpp b/server/src/client/voice/VoiceClientConnection.cpp index 7ff4322..c93b20a 100644 --- a/server/src/client/voice/VoiceClientConnection.cpp +++ b/server/src/client/voice/VoiceClientConnection.cpp @@ -352,7 +352,9 @@ unique_ptr VoiceClientConnection::next_reassembled_packe } if(current_packet->type() != PacketTypeInfo::Command && current_packet->type() != PacketTypeInfo::CommandLow) { - return buffer->pop_front(); /* we don't have to reassemble anything */ + auto tmp = buffer->pop_front(); /* we don't have to reassemble anything */ + more |= buffer->front_set(); /* set the more flag if we know that we have more of this packet */ + return tmp; } unique_ptr final_packet; @@ -435,6 +437,7 @@ unique_ptr VoiceClientConnection::next_reassembled_packe } } + more |= buffer->front_set(); /* set the more flag if we have more to process */ buffer_lock.unlock(); std::string error = "success"; diff --git a/server/src/server/VoiceServer.cpp b/server/src/server/VoiceServer.cpp index 600ef21..8ce94f7 100644 --- a/server/src/server/VoiceServer.cpp +++ b/server/src/server/VoiceServer.cpp @@ -512,7 +512,7 @@ void VoiceServer::handleMessageWrite(int fd, short events, void *_event_handle) voice_client->socket, event_handle->socket_id, voice_server->io->resolve_file_descriptor(voice_client), - voice_client->isAddressV4() ? "v4" : voice_client->isAddressV4() ? "v6" : "v?", + voice_client->isAddressV4() ? "v4" : voice_client->isAddressV6() ? "v6" : "v?", event_handle->family == AF_INET ? "v4" : "v6" ); } else {