=============================================================
              TeamSpeak 3 - Server Changelog
             Copyright TeamSpeak Systems GmbH
                 http://www.teamspeak.com
=============================================================
           + Added feature or noticeable improvement
           - Bug fix or something removed
           * Changed or Information
           ! Important - Take note!
=============================================================

## Server Release 3.13.3 17 December 2020

### Fixed
- Privilege escalation issue (thanks to alex97000)

## Server Release 3.13.2 18 November 2020

### Fixed
- Server does not start when serveradmin account is not found.


## Server Release 3.13.1 11 November 2020

### Fixed
- Database update script does not work for MySQL and PostgreSQL


## Server Release 3.13.0 9 November 2020

### Important
- Support for 32-bit builds of FreeBSD has been dropped. 64-bit FreeBSD is still supported.
- The server_quickstart.txt file is now in Markdown format as server_quickstart.md. It has also been significantly updated.

### Fixed
- Fixed slow startup after an SQLite schema migration
- Better handling of invalid base64 snapshots
- Fixed an issue with negative whisper power permission checks
- Fixed possible memory leak under certain obscure conditions
- Fixed query login groups being improperly cached in certain cases
- Invalid password attempts should respect SERVERINSTANCE_SERVERQUERY_BAN_TIME

### Added
- New support for PostgreSQL databases. Please read server_quickstart for more information.
- New support for MMDB style GeoIP databases (again, see server_quickstart!)
- Webquery supports access by server port : /byport/9987/clientinfo will send the command to the virtualserver at port 9987.
- Added warning for cases of UDP socket failure
- banclient can now accept multiple clientids
- banclient, clientmove and clientkick accept the -continueonerror parameter to ignore errors
- New optional parameter for clientlist '-location'
- Advanced users: Added a new command line argument `logquerytiminginterval` for diagnostic logging of ServerQuery timing.
- Advanced users: Added a new command line argument `querypoolsize` to allow you to specify the number of threads in the ServerQuery pool.

### Changed
- Note: query_ip_whitelist has been renamed to query_ip_allowlist, and query_ip_blacklist is now query_ip_denylist.
- Note: the old whitelist/blacklist names are still accepted.
- Webquery errors will return a HTTP 4xx series status code.
- Improved database performance for some query commands (notably serverlist)
- permget returns 'invalid perm id' error if permid is 0, or convert error if negative
- instanceedit no longer allows query groups for server template groups
- serveredit should correctly update client idle time
- Better validation of tokencustomsets when creating privilege keys
- Various permlist commands now include the relevant id (client, etc) in the output for your convenience
- MariaDB plugin should be a little more tolerant of broken connections
- We now print a warning if you specify an unknown command line option

## Server Release 3.12.1 31 March 2020

### Fixed
- Fixed bug related with new TS5 Client Permission Manager


## Server Release 3.12.0 18 March 2020

### Important
- New feature WebQuery that allows user to access to query system using http(s) and json. 

### Added
- New query commands `apikeyadd`, `apikeydel` and `apikeylist`
  for managing API keys used in WebQuery
- New permissions `b_virtualserver_apikey_add` and `b_virtualserver_apikey_manage` that restrict who can create/delete/list API keys.
- New possible value for parameter `query_protocols` named `http` and `https` that enables WebQuery
- New parameters `query_http_ip` and `query_http_port` that define where WebQuery can be reached, default is all interfaces on port `10080`
- New parameters `query_https_ip` and `query_https_port` that define where WebQuery can be reached, default is all interfaces on port `10443`

### Changed
- macOS 10.14 Mojave is required from now on
- Raised version of snapshots and added support for API keys 

### Fixed
- Whisper bug that resulted in users not being able to receive whispers
- Removed requirement of having a cpu with POPCNT for 32bit version, and added an appropriate error message for the 64bit version
- Deploying snapshots will import client and channel permissions, again


## Server Release 3.11.0 15 January 2020

### Important
- Channel with deprecated codecs (Speex/CELT) are being updated to use Opus instead.

### Added
- The query command `privilegekeylist` also returns the `token_customset` now.
- The query command `channellist` has a new option `-banners`

### Changed
- Because of degraded performance on larger servers, the new hint system has been disabled per default.
- Made further improvements to timeout and latency handling for larger servers.

### Fixed
- Adding or removing user in ServerQuery groups may have returned invalid error codes.
- Changing `serverinstance_guest_serverquery_group` properly ensures only
  ServerQuery groups can be assigned.

## Server Release 3.10.2 20 November 2019

### Fixed
- No more `invalid parameter` when user had no active TeamSpeak-Account (myTS).
- Using the initial privilege key on login resulted in a crash.


## Server Release 3.10.1 18 November 2019

### Fixed
- Whispers check `i_client_whisper_power` and `i_client_needed_whisper_power` permissions again.


## Server Release 3.10.0 6 November 2019

### Important
- TeamSpeak Client 3.3.0 or later is needed to connect to this and upcoming server
  releases.

### Added
- New channel property `channel_unique_identifier` that contains a channel UID that 
  is unchanged by snapshot import/exports.
- New compressed snapshot format that is easier to use.
- New optional parameter `-keepfiles` for `serversnapshotdeploy` that doesn't delete 
  files of channels that exist in the snapshot and on the server.
- New optional parameter `password` to snapshot commands for specifying an optional 
  password to encrypt the snapshot. The password is always being omitted from the 
  log files.
- New command line parameter `hints_enabled`(defaults to `1`).
  When enabled, the server will send permission hints to clients, that allows clients
  to know, if certain actions are likely to succeeded or not.

### Changed
- New embedded default license is valid until the 1st of July 2020.
- Improved TeamSpeak Server performance, and reduced packet loss on very busy servers.
- Allocation of client IDs has been changed.
- Permission `i_ft_file_delete_power` is now required to overwrite a file.

### Fixed
- "Server Admin Token" has been renamed to "Server Admin Privilege Key" in the new 
  server window.
- Fixed a few potential crashes.
- Fixed database error when getting the same custom property assigned twice on MariaDB.
- Fixed `clientgetids` incorrectly returning `database empty result set` when more then 
  one client was connected with the queried `cluid`.


## Server Release 3.9.1 2 July 2019

### Fixed
- Fixed a TeamSpeak Server crash.


## Server Release 3.9.0 24 June 2019

### Added
- Support for new license types (Gamer, Commercial, Sponsorship).
- `clientaddservergroup` and `clientdelservergroup` allowing to add and remove one
  or more server groups to a client.

### Changed
- `servergroupaddclient` and `servergroupdelclient` allow to add and remove one or more 
  clients to a server group.
- `quit` can be used while being flood banned.
- `channeledit`, `channelpermlist` and `custominfo` return more appropriate error codes.
- `servertemppasswordadd` does not allow a zero duration.
- Parsing of boolean parameters has been made more restrictive.
- Plugin command notifications contain invoker data.

### Fixed
- QueryAdmin-Password and ServerAdmin-Token are printed again, when starting the server 
  using the startscript or with the daemon parameter.
- A crash related to 'set_option: Bad file descriptor' has been fixed.
- Temporary passwords are being checked for clients with the ignore server password privilege. 
- A bug where some ServerQuery notifications were sent twice after using `servernotify`.
- `serverlist -short -uid` works as expected now.
- `clientlist -badges` shows all client badges again.
- Startscript checks if instance is already running.
- Server did not start any longer on some Linux systems (Thank you 'Ragyal').

=== Server Release 3.8.0 28 May 2019

Important: This release requires GNU C library (glibc) 2.17 or later on Linux. If you need to
           check which version of glibc is installed on your system, you can use `ldd --version`,
           which usually comes with any glibc installation.
Important: Client badge information is now signed to prevent using fake data. Badges in the old
           format will not be visible on this server.
           TeamSpeak Client version 3.3.0 with support for signed badges will be available soon.

Added: The query command `banlist` now supports optional pagination parameters.
       Please refer to the ServerQuery documentation for details.
Added: Temporary passwords are now stored in the database and will be loaded on start.
Added: New command line parameters 'daemon' and 'pid_file'. This makes it possible
       to start the server as a daemon.
Added: Channel properties and permissions to support channel banners.
       This feature requires TeamSpeak Client version 5.

Changed: The startscript restart parameter now allows to use more than one parameter.
Changed: New server logs are no longer created with a BOM.
Changed: Server / channel icons will not display as negative values anymore in ServerQuery.
Changed: ServerQuery commands `clientlist -ip` and `clientinfo` won't display brackets around IPv6
         addresses of clients anymore.
Changed: Max size of text messages has been increased to 8 KiB for improved usability in upcoming
         TeamSpeak Client releases.

Fixed: Reduced packet loss on systems under high load.
Fixed: In some rare case the server did crash when shutting down a virtual server.
Fixed: The startscript restart parameter could not be used when ran outside the server directory.
Fixed: Server did report the ability to create channels to the weblist in cases where a client
       could not create any channel.
Fixed: No more 'Error querying client connection info: 1796' messages in the client log.
Fixed: Server freezes related to heavy server usage.
Fixed: Critical log messages on startup do not create cores.

=== Server Release 3.7.1 28 March 2019
Changed: Improved modification prevention of unique server identifier

Fixed: Regression of permission bypass checks.
Fixed: A rare crash when using the ServerQuery.

=== Server Release 3.7.0 19 March 2019
Important: Future releases of the Linux server will require glibc 2.17 or newer.
           Any older version will not be supported anymore.

Added: New experimental features for the upcoming TeamSpeak 5 Client.
Added: Server now logs when deleting someone else's avatar.
Added: The IP address of a connecting ServerQuery client is now logged.
Added: The query commands `clientlist -ip` and `clientinfo` show the IP address
       of connected query clients.
Added: Restricted the amount of possible ServerQuery connections to five per IP.
       Whitelisted IPs ignore this limit, and the limit can be changed using
       `instanceedit serverinstance_serverquery_max_connections_per_ip=<limit>`
       in the ServerQuery.

Changed: Updated default license to be valid until the 31st of January 2020.
Changed: ServerQuery clients will no longer have their IP address added to the
         default nickname.
Changed: The query command `privilegekeyadd` will no longer create privilege
         keys for query groups.

Fixed: Improved speed of clientdblist.
Fixed: Unicode support in interactive query ssh sessions.
Fixed: IP-Location database is up to date again.
Fixed: Server crash when a client sent a malformed login.
Fixed: Broken ban pattern matches on older Linux platforms.

Removed: Legacy codecs (Speex, CELT) can no longer be selected when creating
         or editing channels. Support for these codecs will be removed with
         future server releases.
Removed: Permission 'b_client_issue_client_query_command' was removed, because
         it was not being used for anything.

=== Server Release 3.6.1 30 january 2019
Fixed: Adding a client channel permission will set the correct values again.
Fixed: Fixed server crash related to adding a lot of server queries.

=== Server Release 3.6.0 22 january 2019
Added: Crashes on Windows and Linux will create dumps in the new "crashdumps" directory.
Added: New query commands for adding, removing and listing of server query logins.
       * queryloginadd  => adds new query logins
       * querylogindel  => delete an existing query login
       * queryloginlist => list the query logins
       For more information use `help <command>` in the query.

Changed: SSH-Query is enabled by default.
         To disable it start the server with "query_protocols=raw" 
Changed: LD_LIBRARY_PATH is not needed anymore.
Changed: Improved query history for ssh connections.

Fixed: Privilege keys are again deleted when used.
Fixed: Server crashed on older Linux kernels on startup.
Fixed: "Failed to register local accounting service" should happen less often on windows.

=== Server Release 3.5.1 18 december 2018
Fixed: Exploits that allowed to bypass permission checks.
       The exploits allowed to gain talk power and channel commander temporarily,
       to set their own avatar and client descriptions,
       and made it possible to prevent a client ban.

=== Server Release 3.5.0 29 october 2018
Added: Option added to ban users via mytsid or for not having a mytsid.
       Example: banadd mytsid=AaqQu8Z/CzDMxRZ87P5oWpYempDPoO9K3l3VErhVPo+j banreason=banned\smytsid
       Example: banadd mytsid=empty banreason=banned\severyone\sthat\sdoesn't\shave\sa\smytsi
Added: Ability for the the commands 'clientinfo', clientdbinfo, 'clientgetids', 'clientgetdbidfromuid', 'clientgetnamefromuid', 
       'clientgetnamefromdbid' and 'clientgetuidfromclid' to send more then one query at the same time.

Removed: Permission 'b_serverinstance_version_view' and 'i_needed_modify_power_serverinstance_version_view'
         and access to the 'version' command can not be restricted anymore.
Removed: Permission 'b_channel_create_private'. This feature never made it into the server.

Fixed: Privilegekeys remain valid when used by a user that can not receive the group in question.
Fixed: The command 'privilegekeydelete' returns 'ok_no_update' now, when the key did not exist in the first place.
Fixed: Privilegekeys that contain non printable ASCII characters are now rejected before checking in the database.
Fixed: Mistakes in the 'server_quickstart' and in the server query documentation have been removed.
Fixed: Trying to delete a virtual server with id '0' will result in 'server_invalid_id' now.

=== Server Release 3.4.0 10 september 2018
Added: New parameter 'client_nickname' for the 'use' command, allows setting the nickname of query clients before they become visible on the server.
Added: Added new parameter 'version' for the linux/mac/freebsd servers, that returns the version of the server and then exits. 
       Does not work with 'ts3server_startscript.sh' unfortunately.
Changed: The Server enforces the maximum number of clients.
Changed: The 'sendPluginCommand' has gotten its own flood protection, and wont trigger flood protection for the rest of the client anymore.
         It is controlled by the new 'virtualserver_antiflood_points_needed_plugin_block' variable, its default value of 0 means 
         that the same limit as 'virtualserver_antiflood_points_needed_command_block' is being used.

=== Server Release 3.3.1 20 august 2018
Added: snapshots now save and restore the total connection count of clients.
Fixed: When you send only whitespace to the server query, it will continue accepting commands now.
Fixed: Moved certain ban related log messages from instance log to the server log where they should have been all along.
Fixed: The query commands customset and customdelete work with mariadb now.
Fixed: In rare cases the server crashed, when a client disconnected from server query system.

=== Server Release 3.3.0 1 august 2018
Added: We are proud to introduce myTeamSpeak integrations for Twitch. With it you can link your Twitch account
       with myTeamSpeak and configure the Server to give every twitch subscriber and follower a group when he joins the server.
       It will be taken away automatically, should the user unsubscribe or unfollow again.
Added: We added SSH for the server query... that took a while, didn't it?
       To enable start the server with "query_protocols=raw,ssh", and connect to port 10022.
       A few points of note:
       * the ssh support comes with new command line parameters, see doc/server_quickstart.txt for more information.
       * we also added history, tab-completion and keyboard shortcuts like killing, yanking and searching.
       * there is a maximum of 4096 characters per input line. We might fix that in a later version.
       * Bot or admin tools connecting over ssh should not allocate a PTY, giving access to the good old query, 
         just encrypted - and without the 4096 characters limit per input line.
       * We overhauled server query flooding. It is now more forgiving, allowing for naive implementations that still run fast.
Added: The new commandline option 'serverquerydocs_path' allows to override where the server is looking for the 
       serverquerydocs directory. Not particularly interesting we know, but it allows us to fix the 'help' command 
       in docker images, finally.

Fixed: We added a fix for those annoying instance check errors on Windows. Might not catch all cases though, keep those reports coming.
Fixed: The channel_needed_subscribe_power finally shows the actual power needed to subscribe to a channel, and not just 0.
Fixed: As some have already noted, the last release broke client_lastconnected, so we unbroke it for this release.

=== Server Release 3.2.0 14 may 2018
Added: In light of the recent attacks that have been discovered, we took a closer look to make sure
       we haven't missed anything and prevent some possible future attacks.
Added: We have enabled the use of unicode emojis 🎉, we hope to see some creative use on your servers. 🐵
       This works in all places where the server deals with text, nicknames, channel names, chat etc.
Added: Query commands customset and customdelete for custom client properties, making those just so much more usable.
Added: The query commands serverstop and serverprocessstop now have a new optional parameter to tell your users why it's stopping. No more hardcoded message.
       serverstop sid=123 reasonmsg=BeRightBack!

Changed: Improved regex matching in the ban manager, it now properly handles UTF-8 characters.
         Old style regex matching like .*(&#128520).* was actually a bug and is not supported anymore. 
         Sorry but you have to change those to use the correct regex escape sequence,
         for the example above it would be .*(\uD83D\uDE08).*
Changed: The server does not report all slots filled when only reserved slots are left.

Fixed: When using a privilege key the custom values of the user are not overwritten anymore.
Fixed: At some point we apparently removed logging of file deletions. It's back now.
Fixed: Successful server query logins were logged regardless of query logging settings, sorry about that spam.

Removed: CLIENT_ICON_ID from clientdbinfo.

=== Server Release 3.1.3  30 april 2018
 + Fixed a potential crash on malicious incoming traffic.

=== Server Release 3.1.2  24 april 2018
 + Better handling of nonlinear system clocks.
 + Fixed crash on malicious incoming traffic.

=== Server Release 3.1.1  26 february 2018
 - Fixed a bug that prevented the 3.1 server from running on older CPUs.

=== Server Release 3.1.0  14 february 2018
 ! Before you run the teamspeak 3 server it is required that you agree to our license. This license
   can be found in the file "license.txt" or "LICENSE" (depending on your platform), which is
   located in the same location as the ts3server binary (the main folder). If, after reading it,
   you agree to the license, this can be indicated in one of three ways:
   1: Create a file called ".ts3server_license_accepted" in the current working directory. The
      contents of this file are irrelevant and can be empty. For example on linux do:
      touch .ts3server_license_accepted
   2: Start the ts3server with the commandline parameter "license_accepted" set to 1. For example:
      ts3server license_accepted=1
   3: Set the OS environment variable TS3SERVER_LICENSE to "accept". For example on Windows:
      set TS3SERVER_LICENSE=accept
 ! New accounting subsystem. Please read accounting.txt in the docs folder.
 ! Windows xp and vista support has been dropped.
 - Fixed a bug where a channel could be created with a password without the needed permission.
 - fixed some performance issues when copying a server group
 * Accounting server Documentation updated
 + New property 'virtualserver_nickname' allowing to add the server nickname
   into the server settings. Changes to the new property are only possible by
   users with the new 'virtualserver_nickname' permission.
 + New parameter 'wait_until_ready' in ts3db_mariadb.ini that specifies in
   seconds how long the ts3server should wait for the database to become
   available.
 * Released under new license. See accompanying license file.

=== Server Release 3.0.13.8  19 july 2017
 + Server Query connections now have a combined maximum buffer size. When this limit is exceeded,
   the connection using the most memory is closed. The buffer size is controlled by the command
   line variable "query_buffer_mb". The default is 20, which means the maximum amount of buffered
   data is 20 megabyte. The mimimum is 1 megabyte. Make sure to only enter positive integer numbers
   here.
 * Connecting to the server query port, now counts as 1 command, with regard to flood protection.
 - Fix client able to connect with no nickname

=== Server Release 3.0.13.7  10 july 2017
 - Fixed server query clients now honor name bans
 - Fixed assert when client sends oversized voice packets
 - Fixed crash when deleting channel without correct file permissions
 - Fixed permissions issue when creating channels

=== Server Release 3.0.13.6  9 november 2016
 - Fixed virtual server stops responding to clients
 - TSDNS server now also listens on ipv6 when available
 * TSDNS server Documentation updated
 
=== Server Release 3.0.13.5  24 october 2016
 - not logging received packets with 0 bytes any more
 - fixed ftinitdownload/ftinitupload can hang on server query
 
=== Server Release 3.0.13.4  7 september 2016
 + "Error opening file: No such file or directory" message now includes filename
 - Fixed server crash when ipv6 client connects while using MariaDB (or MySQL) server
 - Database plugins are now checked more thoroughly at server startup
 ! To fix the problem with MariaDB, the server needs to alter columns in the client and bindings
   table. For large databases, this can take a while. It is recommended that all ts3servers that use
   the same database, are stopped and then one new ts3server is started first which does the update.
   After this, the other instances can be started too.
   
=== Server Release 3.0.13.3  19 august 2016
 - fixed a problem where virtual servers refuse to start due to invalid flags or order
 - fixed a crash in fix crash on servergroupautodelperm / servergroupautoaddperm

=== Server Release 3.0.13.2  15 august 2016
 - fixed a crash introduced in 3.0.13.1
 - fixed a deadlock in the server causing some instances to hang / be unresponsive
 - fixed a crash reported by a customer.

=== Server Release 3.0.13.1  15 august 2016
 - fixed several vulnerabilities.

=== Server Release 3.0.13  1 august 2016
 + ipv6 support
 + improved database performance
 + improved snapshot create/deploy performance
 + Enable "tcp_nodelay" option for server query (less latency)
 + bindinglist command now has a new parameter "subsystem"
 - file transfer now only accepts connections from ip addresses that have started an upload / 
   download. There is a reserve of 20 slots that are allowed to connect even though that particular
   ip address did not start an upload/download. This is to support exotic client routing
   configurations like tcp load balancers.
 - fixed incorrect filetransfer port reported in instanceinfo
 - binding voice to the any address (0.0.0.0 / 0::0), which is the default behaviour of the server,
   now supports clients connecting to all addresses instead of just the default ip of the network
   interface.
 - fixed assertion in puzzle feature (Thanks to Schlumpi for helping us find this)
 - fixed virtual server log and bindinglist for voice showing multiple senseless bindings
 * file transfer now only allows an idle time of 2 seconds after connect
 * new file transfer implementation
 * updated sqlite to 3.11.1
 * sqlite db now uses WAL as journal mode
 ! the new file transfer routines on unix systems now depend on async io (aio*) routines. For
   freebsd this probably means you need to load the aio kernel module using 'kldload aio'
 ! for server query users: ftinitupload/download replies may now omit the ip parameter. If it is
   omitted, it means the transfer should be started on the same ip that was currently used by the
   server query ip.
 ! for ftinitupload/download there is now an optional "proto" parameter. See the server query manual
   for more info.

=== Server Release 3.0.12.4  27 april 2016
 - fixed an other server crashes on malicious input (again)
 - fixed a deadlock on some query command

=== Server Release 3.0.12.3  4 march 2016
 - fixed an other server crashes on malicious input

=== Server Release 3.0.12.2  15 feb 2016
 - fixed more server crashes on malicious input
 - reduced memory use

=== Server Release 3.0.12.1  9 feb 2016
 - fix 2 server crashes on malicious input
 - fixed file stat bugs on windows xp
 - fixed logview command returning utf8 byte order mark

=== Server Release 3.0.12 26 jan 2016
 + added "virtualserver_min_android_version" and "virtualserver_min_ios_version" to specifically
   set the minimal allowed client versions for android and ios on the server.
 + added "-mapping" to the serversnapshotdeploy command. This optional parameters will add a mapping
   of the old and new channelid's in the return
 + Grouped several SQL queries together into one statement which improves performance
 - fixed clientdbfind command returning false entries
 - fixed some hangs after heavy network io on linux/freebsd/osx
 - fixed issue with clientinfo command
 - fixed crash when (automatically) deleting a channel
 - fixed tsdnsserver libc++ issue on Linux
 * The server will now print a warning if the locale is set to "C"
 * Replaced Server query manual pdf file with a html version
 * Unsigned variables (client/server/instance etc) now only accept positive values and -1 (synonym 
   for maximum value). Other negative values result in conversion error.
 * Serverquery manual fixes
 * Made a small change to the way the server handles the initialization protocol
 ! Removed "virtualserver_max_upload_total_bandwidth" and 
   "virtualserver_max_download_total_bandwidth" from the server template if the value was "-1"
 ! The server binaries file names now do NOT have the platform suffixes any more. They are all
   called "ts3server"
 ! The OSX version is now 64 bit only. OSX 10.7 is now the minimum supported version.
 ! Some SQL queries changed or added. If you use custom SQL queries, please take note of this.
 ! The minimum supported FreeBSD version for the server is 10.1 from now on. Release 3.0.13 (next)
   will need a libc++ from ports/pkg or FreeBSD 10.2.

=== Server Release 3.0.11.4 24 august 2015
 - fixed DOS vulnerability
 - fixed clients dropping with "convert error"
 - added some timing logs

=== Server Release 3.0.11.3 20 apr 2015
 - fixed DDOS amplification vulnerability

=== Server Release 3.0.11.2 15 dec 2014
 - fixed possible deadlock in server query
 - fixed a mariadb/mysql db creation issue
 - fixed a mariadb/mysql performance issue
 - fixed a server query crash

=== Server Release 3.0.11.1 15 oct 2014
 - Small but important bug fix in accounting

=== Server Release 3.0.11 30 sep 2014
 ! Starting this release, TS3 servers will not support the Mac OSX PowerPC architecture.
 ! Starting this release the Windows version of the server requires an SSE2 capable CPU.
 ! Starting 3.0.12 (next release), TS3 server won't support OSX 10.6 or lower.
 ! Starting this release, the MySQL database plugin has been replaced by a MariaDB plugin. Please
   read doc/update_mysql_to_mariadb.txt for instructions on how to update. Also note the default
   character set for the database is now 'utf8mb4', which means the server needs to be at least
   MySQL 5.5.3 or MariaDB 5.5 .
 ! When a new database is created, we will be using a few extra defaults for the Guest Server Query
   group. Permissions for existing databases will be left untouched.
   The new defaults for the Guest Server Query group should prevent the Server Query from being
   abused with spam. The extra permissions are:
   * b_channel_join_permanent = false, negate = true, skip = true
   * b_channel_join_semi_permanent = false, negate = true, skip = true
   * b_channel_join_temporary = false, negate = true, skip = true
   * b_channel_create_permanent = false, negate = true, skip = true
   * b_channel_create_semi_permanent = false, negate = true, skip = true
   * b_channel_create_temporary = false, negate = true, skip = true
   * b_client_server_textmessage_send = false, negate = true, skip = true
   * b_client_channel_textmessage_send = false, negate = true, skip = true
   * b_client_offline_textmessage_send = false, negate = true, skip = true
   * i_client_private_textmessage_power = -1, negate = true, skip = true
   * i_client_poke_power = -1, negate = true, skip = true
 ! If only 1 serveradmin is logged into the query, this serveradmin can select any server (use)
   regardless of the client limit.
 ! The "Wan IP" feature of the windows server has been removed as it does not work any more.
   If you want to know your wan ip address, use an existing free service like http://ipinfo.io
 + Updated ip2location database
 + Better checking and better error message for errors with query white/blacklists.
 - Fixed crash relating to invalid ip addresses on FreeBSD.
 - Fixed a possible crash during client connect.
 - Fixed channel event notifications stop working after a while.
 - Fixed query logins getting permissions on other virtual servers.
 - Fixed crash when deleting complaints.
 - Fixed issue where clients were not deleted from the database after dbclientkeepdays when
   connecting several TS3 servers to the same database with different dbclientkeepdays values.
 - The server instance no longer starts copies of virtual servers.
 - Guest ServerQuery user now always has default server query group, even while using a virtual
   server.
 - Instance server group permissions now honor the negate flag.
 - Temporary passwords and tokens(privilege keys) of a client are deleted when the client is deleted
   from the database.
 - Complaints of and about a client are deleted when the client is deleted from the database.
 - Fixed possible server hang with query connections.
 - ts3server_startscript.sh restart now works with parameters.
 - ts3server_startscript.sh does a better test for FreeBSD.

=== Server Release 3.0.10.3 6 jan 2014
 + fixed crash on malicious incoming traffic
 
=== Server Release 3.0.10.2 11 dec 2013
 + fixed temporary server groups issue
 + fixed crash at startup while upgrading from 3.0.8 or earlier

 === Server Release 3.0.10.1 11 nov 2013
 + security fix to prevent cient crashes
 + added more debug info on some file operations
 - fix crash on client disconnect

 === Server Release 3.0.10 1 okt 2013
 + Added support for new variable CHANNEL_DELETE_DELAY on temporary channels
 + channellist and channelinfo query commands now show seconds_empty param. -1 means not empty

=== Server Release 3.0.9 12 Sep 2013
 + Added support for Overwolf integration (requires client 3.0.12 or above)
 + Added "-badges" parameter to "clientlist" serverquery command
 - Fixed a deadlock. (Would kick all clients from the server)
 - Fixed a bug on nickname bans
 * Added a new variable CHANNEL_DELETE_DELAY but it is disabled for now. Will be fully supported next release

=== Server Release 3.0.8 12 Aug 2013
 ! Changed the platform string for the Mac OsX platform from "MacOSX" to "OS X"
 ! new login protocol. Old clients can not connect to this server version. (An error message will be shown)
 + added new commandline parameter "query_skipbruteforcecheck" to disable any protection for whitelisted Ip addresses for the ServerQuery interface
 + added some protection against DOS attacks due to cpu usage during login
 + only official client version strings are accepted
 + query logins are now always logged. With account name.
 + Moving virtual server between instances should now not trigger the "running elsewhere" accounting error.
 + removed dependency on libstdc++ runtime library on Linux platform
 * Fixed dependencies on newer glibc versions
 - fixed a hang on virtual server shutdown
 - fixed race condition on pending connections
 - other various bug fixes

=== Server Release 3.0.7.2 15 May 2013
 + added serverinstance_pending_connections_per_ip variable which limits the number of concurrent
   pending (=new) connections allowed from the same ip. 0 means unlimited and is the default. Set
   to non null to combat dos attacks. Be aware this causes a dos attack in itself if the attacker
   spoofs the source ip.
   
=== Server Release 3.0.7.1 18 March 2013
 - fixed hostinfo does not work with no running virtualserver
 - fixed server hanging after serverstop (and other) commands
 - fixed temporary passwords wont work where channel names include / or \
 * improved indentation of server query help file

=== Server Release 3.0.7 4 March 2013
 ! extended max possible permissions, newer client will be needed to use
   this server release
 ! permissionlist command got a new parameter "-new", if set the permissionlist
   will be sent in a new format
 + bans got some magic to prevent abusing
 + temporary server passwords work also if no virtualserver password is set
 + added permissions b_channel_create_modify_with_codec_opusvoice, b_channel_create_modify_with_codec_opusmusic
 - fixed bug where guest users could trigger "channel edited" or
   "server edited" events although they had no permissions to edit channels
   or servers
 - fixed problems with avatar deletion
 - fixed an assert while banning yourself
 - fixed folders could not be deleted
 - virtualserver temporary passwords are checked before normal virtualserverpassword
 - fixed bug with permission b_channel_create_modify_with_force_password
 - fixed bug with server deletion and not-existing filebase
 - fixed bug where icon deletion went wrong
 - TSDNS server is now case-insensitive
 - fixed a hang due to too many open handles in TSDNS
 - fixed missing serverquery commands in help.txt
 - fixed complainlist does not work anymore if an client was deleted
  
=== Server Release 3.0.6.1 29 June 2012
 !	fixed broken weblist

=== Server Release 3.0.6 21 June 2012
 - fixed broken queryclient database deletion
 + complaints got some magic to prevent abusing
 + complaints adding/deletion get logged (client logging need to be enabled)
 + bans adding/deletion get logged (client logging need to be enabled)
 + notifychannelgrouplist / notifyservergrouplist added i_group_needed_modify_power, 
   i_group_needed_member_add_power and i_group_needed_member_remove_power  values
 + added permission b_channel_create_modify_with_force_password
 + added permission b_client_is_sticky (sticks a client to current channel)
 + added permission b_client_ignore_sticky (ignores sticky flag)
 * Compress command packets to reduce network traffic (voice and filetransfer
   will not be affected)
    
=== Server Release 3.0.5 23 April 2012
 ! MySQL users, please alter your table server_properties and extend the "value" field 
   from varchar(255) to varchar(2048)
 ! privilegekeylist no longer shows groups which does not match
   i_group_needed_member_add_power and/or i_group_member_add_power
 + added possibility to give a channel password when creating a temporary
   server password (check docs for details)
 * the following actions will reset client idletime:
   logview, clientdblist, complainlist, complainadd, talkower grant and revoke
 + clientlist can also show ips (paramter -ip)
 - fixed an issue were channel properties saved two times on create or edit
 - fixed an issue were clientdbdelete did not delete avatar files correctly
 - fixed invalid ident names for virtualserver_antiflood_points_needed_command_block and 
   virtualserver_antiflood_points_needed_ip_block (breaks client-side serveredit below version 3.0.6)
 
=== Server Release 3.0.3 19 March 2012
! permissions updated to revision 14
+ added temporary serverpasswords (servertemppasswordadd, servertemppassworddel, servertemppasswordlist)
  check docu for details
+ added new permission b_client_request_talker to control who can request talk power  
+ added new permission b_client_avatar_delete_other to allow deleting avatars from other clients
+ ftinitdownload and ftinitupload shows binded ips
- fixed queryclient antiflood bug

=== Server Release 3.0.2 29 February 2012
! anti spam system reworked
  - removed virtualserver_antiflood_points_needed_warning, virtualserver_antiflood_points_needed_kick,
    virtualserver_antiflood_points_needed_ban, virtualserver_antiflood_ban_time
  - added virtualserver_antiflood_points_needed_command_block
    - stops executing of commands, no ban is invoked anymore
  - added virtualserver_antiflood_points_needed_ip_block
    - prevents from connecting, no ban is invoked
! mysql users please alter all fields in tables "servers" and "clients" regarding download/
  upload from "int unsigned" to "bigint unsigned"
+ whoami shows client_origin_server_id (server which the client does belong too)
+ addded servergroupautodelperm and servergroupautoaddperm bound to b_permission_modify_power_ignore (check docu for details)
- fixed empty channeledit command invoked an channeledit message to clients
- fixed query ban message had no line endings
- fixed issue with permlist commands giving not correct error back on an empty list

=== Server Release 3.0.1 17 nov 2011
! removed database logging (sqlite users please manually do an vacuum on your database)
! we got now a logfile for every virtualserver and one general
! logview command revoked, please check docs for details
! added new start parameter logappend
  starting the instance with logappend=1 will append the logfile and wont create
  a new one on each instance start
! removed client_login_name and client_login_password properties from snapshots
* properties CHANNEL_ICON_ID and CLIENT_ICON_ID wont be stored anymore in database
- fixed bug within server deploy (correct snapshot returned invalid_client_id)
- command serverlist -all returns "other_instance" for virtualserver_status if
  the virtualserver belongs to an other instance
- some improvements for quering virtualservers regarding machine_id parameter
- command servercreate wont need an virtualserver_name anymore, will use the
  template default name instead
- fixed guest client can set channel_icon_id and channel_flag_password
- fixed b_client_skip_channelgroup_permissions == 0 only overwrites skipped 
  permission if negated
- fixed that channel deletion with parent channels gives wrong log output
- fixed token could be created in an channel where you dont got correct permissions

=== Server Release 3.0.0 10 Aug 2011
! disable_db_logging set to true by default
+ serversnapshotdeploy can deploy into a new virtualserver now, to archive this do a "use 0"
  just before the command
+ clients table got a new field "client_lastip" where we store last ip used by the client
- clientdbinfo, clientdblist, clientdbfind does show client_lastip
- fixed clientdblist count parameter returned always 1
- fixed issue where server kept status virtual_online while using logout command
- fixed problem where a channel you could not subscribe was not automatically
  unsubscribed when you left it
- fixed issue where VIRTUALSERVER_ASK_FOR_PRIVILEGEKEY && VIRTUALSERVER_AUTOGENERATED_PRIVILEGEKEY
  where exported/imported through a snapshot
- fixed issues with channel permission wont take values from clientchannel permissions
- fixed multiple complains by one user possibility if autoban count is set to two
- fixed strange serverquery password behavior
- improved client traffic reset performance
- improved database performance
 
=== Server Release 3.0.0-rc1 23 May 2011
! mysql users, please alter your table channel_properties and 
  extend the "value varchar(255)" field to varchar(8192)
! mysql users, please alter your table bans and 
  extend the "ban_name varchar(255)" field to varchar(2048)
! server uses now 10 database connections (sqlite and mysql)
! added new parameter "dbconnections" for defining max database
  connections to use (2-100) default is 10
! i_group_auto_update_type values changed
* channel permissions got their own needed/power permissions instead 
  of using the group labeled ones
* renamed i_client_modify_power > i_client_permission_modify_power
          i_client_needed_modify_power > i_client_needed_permission_modify_power 
          i_client_max_clones > i_client_max_clones_uid
+ added new parameter "disable_db_logging" which turns off logging
  to database (logview commands wont work anymore)
+ added the TSDNS server to the server installer. Read the documentation in
  the "tsdns" subfolder for details
+ added permissions i_channel_delete_power, i_channel_needed_delete_power
        i_channel_permission_modify_power, i_channel_needed_permission_modify_power
+ added permission i_group_auto_update_max_value
+ added permissions i_client_needed_whisper_power and i_client_whisper_power
  that determine who can whisper to whom
+ Added total bytes transfered by filetransfer to serverinfo, hostinfo and
  server connectioninfo
+ improved permission add/delete performance
+ channelgroupaddperm, channelgroupdelperm, servergroupaddperm, servergroupdelperm added
  optional parameter "continueonerror" 
+ uploading and deleting of icons will be logged if filetransfer log is enabled  
+ added some indexes for speedup lookups regarding servers.server_port and messages.message_flag_read
+ added permission b_virtualserver_change_template
+ serveredit and serverinfo command can be used with use 0 to modify and display
  virtualserver template values (serverinfo display is different from normal output!)
+ added server property VIRTUALSERVER_HOSTBANNER_MODE:
	HostBannerMode_NO_ADJUST=0
	HostBannerMode_ADJUST_IGNORE_ASPECT=1
	HostBannerMode_ADJUST_KEEP_ASPECT=2
- fixed bogus mysql create script for channel_properties
- default groups cant be permanent anymore
- removing double group assignements on server start
- fixed problem where multi-line client descriptions where stored in database
- fixed query gave out wrong error messages
- fixed permreset did not remove icon_id assignments
- fixed double assigned permissions where deleted completly
- fixed channelmove / channelcreate not checking b_channel_create_child and i_channel_needed_modify_power
- fixed sql parameter errors while inserting defaults.sql
- fixed not removing privilege key on channel deletion
- fixed snapshotdeploy would fail on virtualserver_max_slots / virtualserver_limit reached
- fixed not checking correct permissions for CHANNEL_FLAG_MAXFAMILYCLIENTS_UNLIMITED,
  CHANNEL_FLAG_MAXFAMILYCLIENTS_INHERITED
- fixed not checking notifyregister / notifyunregister permissions
- fixed server critical while using notifyregister=server and multiple queries dropping at the same time
- fixed set channelgroup did not include channel name info in server log
- fixed create subchannel did not include parent channel info in server log
- fixed issue mac osx server uses 100% cpu
- Fixed a bug that could be triggered remotely and would cause the server to
  shut down with a critical message in the log file.

=== Server Release 3.0.0-beta30 23 Nov 2010
! new tcp stack
! instance_properties respect now machine_id
! updated to sqlite 3.7.3
! clientdbfind returns a max of 50 rows
! clientdblist duration limited to a max of 200 rows
+ reduced CPU usage for large servers
+ ServerQuery: added server port to "whoami" output
+ ServerQuery: added client_created and client_lastconnected times to output
  of "clientlist" when "-times" parameter is passed. Value is in seconds since
  1970.
+ ServerQuery: added parent id to output of "channelinfo"
+ new channel/server group get new default permissions 
  i_group_needed_member_add_power based on i_group_member_add_power
  i_group_needed_member_remove_power based on i_group_member_remove_power
+ added permission i_group_sort_id
  commands notify notifyservergrouplist / notifychannelgrouplist output "sortid" field
+ added permission i_group_show_name_in_tree
  commands notify notifyservergrouplist / notifychannelgrouplist output "namemode" field
+ added new PluginTargetMode PluginCommandTarget_CURRENT_CHANNEL_SUBSCRIBED_CLIENTS  
+ servergroupclientlist uses now internal id/uid/name cache which results in faster
  processing and lower database usage
+ query and template groups accept only local icon_ids  
+ added command line option "no_password_dialog" which prevents showing the password dialog
  on windows (eg. no_password_dialog=1)
+ added new command "permget" (check docu for details)
+ added permission b_client_permissionoverview_own
+ added servernotifyregister event "tokenused"
+ windows tray icon shows now your wan ip 
- fixed problem handling malformated client requests that could lead to the
  server shutting down after logging a critical log message.
- fixed issue that lead to clients not being able to edit the slot count back to
  the value that was set when they originally connected to the server
- fixed serversnapshotdeploy using wrong sql file on failure
- fixed issue with servernotifyregister not unregistering serverquery clients
  on remote connection closed
- fixed bug with temporary channels not being deleted immediately when a
  sub-channel was moved out of them and they so became empty
- fixed bug that lead to the output of the ServerQuery command "hostinfo" to
  display wrong data in the bandwidth last minute and bandwidth last second
  fields
- fixed channel client permissions where not removed on channel delete
- fixed possibility to host more slots than allowed
- fixed bug where a clone leaving server removed temp groups of still connected 
  clones
- fixed client which where added to query groups wont be correctly removed
  on serverdelete/clientdelete  
- fixed serverprocessstop works again under windows
- fixed client channel/server groups got not updated while changing 
  default groups
- server traffic quota reset script respects machine_id  
- fixed clientinfo on a serverquery can cause a crash
- fixed client disconnect closes wrong clientserverquery connection
- fixed wrong handling VIRTUALSERVER_WEBLIST_ENABLED

=== Server Release 3.0.0-beta29 29 Sep 2010
! Voice packets are now not transfered encrypted by default. Added options to
  configure this behavior on virtual server or per channel level. Clients of
  versions beta29 and earlier will not be able to communicate with new clients.
! removed permission i_client_kick_power and i_client_needed_kick_power
! certain log messages, like query and accounting wont go anymore
  to the database
! serverquery sends between the ts3 prompt also a new welcome message
! token functions renamed to privilegekey (privilegekeyadd, privilegekeydelete, privilegekeyuse, privilegekeylist)
  old function names are still working but will be removed.
+ added permissions i_client_kick_from_server_power, i_client_needed_kick_from_server_power
  i_client_kick__from_channel_power, i_client_needed_kick_from_channel_power
+ added permissions b_channel_modify_make_codec_encrypted, b_virtualserver_modify_codec_encryption_mode
+ client kick from channel wont check for i_client_needed_move_power / i_client_move_power
- fixed clientIDCache issues
- property "instance_uptime" is now in seconds since 1970
- fixed removing an offline client from channelgroup wont be logged
- fixed issues with serversnapshotdeploy and using invalid filepaths
- fixed issues with serversnapshotdeploy and writing zero database entries
- fixed issues with serversnapshotdeploy where a failed deploy left invalid
  data 
- fixed users are shown in weblist, even when a server with reserved slots is empty

=== Server Release 3.0.0-beta28 09 Sep 2010
! Changed the way some text message characters are escaped. You now require
  at least beta26 clients to connect to the server.
+ if VIRTUALSERVER_MAXCLIENTS is zero and VIRTUALSERVER_HOSTMESSAGE_MODE is
  HostMessageMode_MODALQUIT the client shows
  the VIRTUALSERVER_HOSTMESSAGE
+ clientlist serverquery command now accepts "-country" flag
- clientlist serverquery command prints client_flag_talking again when -voice
  is passed
- fixed bug that could lead to failing asserts on big endian system when
  clients connected
- handle EINTR on linux systems, which should prevent a critical error
  concerning the epoll_wait call that some people were seeing
- fixed weblist shows full server, when reserved slots are available
- fixed bug where clients could connect to the server with empty nick names
  which in turn could cause other clients to terminate
- fixed bug that could lead to other clients terminating when you connected
  to the server with multiple cloned clients and changed your avatar

=== Server Release 3.0.0-beta27 06 Aug 2010
- fixed bug that could lead to crashes on servers with incorrect time source
- fixed problem with epoll_ctl and linux kernel <= 2.6.9

=== Server Release 3.0.0-beta26 29 Jul 2010
+ introduced webserverlist
+ added servergroupcopy and channelgroupcopy commands (check docu for details)
+ server welcome messages are now allowed to be multi-line
+ windows uses now a trayicon, use commandline parameter "open_win_console=1" 
  if you want to open an console window
+ query command serverlist got new optional parameter "-onlyoffline" which
  shows only virtualservers which are not running (check docu for details)  
+ added client property CLIENT_COUNTRY, contains country code for the client
  which is extracted from the used ip  
+ added support for whisper to servergroups, channelgroups, channelcommander
+ clientlist shows CLIENT_IS_CHANNELCOMMANDER (with option -voice)
+ clientinfo shows CLIENT_IP (you need the b_client_remoteaddress_view permission for that)
- unsubscribe client from channel on clientmove if client does not got the
  needed subscribepower  
- fixed clientdblist and "-count" showing always zero
- fixed bug with reserved slots that could allow admins that did not have the
  privilege to modify the max slot count to let more clients onto their server
  than specified in the max slot count setting.
- fixed bug where auto pruned clients could lead to a critical
- fixed plugincommand where we used the channel subscriber list instead
  of real client members only.
- fixed that antiflood options needed an virtualserver restart to take affect  
! query command "use" wont start a virtualserver in virtualmode anymore without
  given optional parameter "-virtual" 
! interval client pruning disabled

=== Server Release 3.0.0-beta25 17 Jun 2010
+ added CLIENT_ICON_ID to clientlist (parameter -icon)
+ added CHANNEL_ICON_ID to channellist (parameter -icon)
+ added permission i_channel_description_view_power and i_channel_needed_description_view_power
+ starscript and runscript will now work even when executed from a different
  location than the server installation folder
+ added serverquery command clientdbinfo (check docu for details)
+ added permission b_virtualserver_client_dbinfo  
+ added new parameter "-count" to clientdblist which gives a property "count" with
  total available client count
+ serverquery commands servergrouppermlist, channelgrouppermlist, channelpermlist, clientpermlist
  and channelclientpermlist added new optional parameter "-permsid". gives permID strings instead
  of numbers as output
+ added permission b_client_use_channel_commander
- fixed bug where servergrouplist and channelgrouplist wont check for querygroup permissions
- fixed bug where it was not possible to delete channelgroup templates
- permission update respects "machine_id"
  NOTE: server_id 0 groups, templates will be updated in any case
- client pruning respects "machine_id"
- fixed that virtualserver_uptime isnt correct in certain cases
  for serverinfo, serverlist query commands
- fixed CHANNEL_ICON_ID shown incorrectly in channelinfo
- fixed VIRTUALSERVER_ICON_ID shown incorrectly in serverinfo
- fixed invalid channeldescriptionchanged event while creating new channels
- fixed bug that lead to temporary server groups not being properly cleared
  when a client dropped instead of disconnect
- fixed bug where when a client dropped that was muted by some other client
  this other client could incorrectly mute some third uninvolved client
! fixed several vulnerabilities
  
! beta24 skipped
  
=== Server Release 3.0.0-beta23 01 Jun 2010
+ if logquerycommands is active display a log entry for query clients
  which got banned because of flooding/to many password tries
+ servergroupadd / channelgroupadd take new parameter type (check docu for details)  
+ added virtualserver property VIRTUALSERVER_RESERVED_SLOTS
+ added permission b_virtualserver_modify_reserved_slots
+ added permission b_client_use_reserved_slot
+ added possibility for reserved slots 
+ added permission i_client_modify_power
+ added permission i_client_needed_modify_power
+ permission tiers "client" and "channelclient" respects i_client_modify_power and
  i_client_needed_modify_power
+ via commandline parameter no_permission_update=1 new permissions wont be 
  added automatically (this can break your server if you dont update them
  manually)
+ new permissions are now automatically added (i_group_auto_update_type needs
  to be setup correctly)
+ added permission i_channel_create_modify_with_codec_latency_factor_min
+ added permission b_channel_modify_codec_latency_factor
- removed unnecessary glibc dependency on linux x86 and amd64
- improved virtualserver startup time
- fixed bug where icon_id wont work for channel client permissions
- fixed bug in permfind which could lead to a crash
- changing template groups or query group memberships no longer 
  requires an instance restart
- fixed possibly server crash exploit
- fixed possibly server deadlock / query connection stall
- fixed crash in mysql database plugin while shutdown
! VIRTUALSERVER_UPTIME is now seconds
! permission "skip flag" skips now Channel, ChannelGroup
! clients added to serverquery groups need to be assigned to serverID == 0.
  If you have added any clients to one of your serverquery groups, you'll need
  to update your database manually to retain functionality. All serverquery
  group assignments are stored in a database table called
  "group_server_to_client". To update your existing serverquery group
  assignments, please execute this command on your database:
  UPDATE group_server_to_client SET server_id = 0 WHERE
    group_id = <YOUR_QUERY_GROUP_ID>;

=== Server Release 3.0.0-beta22 13 April 2010
- fixed possible crash while executing serverlist
- clientinfo shows client_icon_id in correct int format
- clientpermlist wont send cldbid to serverquery clients
  also returns error_database_empty_result instead of an error_ok
  if no entries were found
- fixed that a semi-permanent channel could be created inside an temporary  
- via commandline parameter dbpluginparameter=skipcheck the sqlite database integrity
  checks can be skipped
- fixed that filetransfer quoatas were not reset correctly  
- we now respect the b_client_ban_delete_own permission
- fixed not recognizing channel permissions while using defaultchannels on client connect

=== Server Release 3.0.0-beta21 30 March 2010
- deleting an servergroup dont updated the CLIENT_SERVERGROUPS property correctly
- fixed TLS problems under windows based operating systems
- fixed serverlist gives back status "unknown" if server is actually just offline
- fixed possible crash while using permfind
- fixed possible crash while selecting a server via serverquery
- fixed possible, rare, deadlock while shutting down a virtualserver
+ added virtualserver property virtualserver_hostbutton_gfx_url
+ added serverlist command option -short which gives only id, port, status back
+ added permission b_client_modify_own_description
+ added a ip blacklist for the query
+ added command line option "query_ip_blacklist", defines filename
  for the query ip blacklist
+ query ip blacklist and whitelist understand Classless Inter-Domain Routing notation (cidr)
  e.g: 0.0.0.0/0 for blacklist will refuse all incoming connections
! new permission i_group_auto_update_type which enables
  auto-updating for server groups and channel groups whenever the permission system gets
  updated. supported values: 0-8 (check permissiondoc.txt for details) note that existing
  groups on all virtual servers need to be updated manually since we cannot detect the purpose
  of an existing group automatically
 
=== Server Release 3.0.0-beta20 10 March 2010
- fixed channel/client icons not shown correctly in certain setups
- remove unwanted /r/n sequences while reading query_ip_whitelist.txt

=== Server Release 3.0.0-beta19 9 March 2010
- fixed i_client_max_avatar_filesize / i_group_max_icon_filesize not checking for -1
- banlist wont hide anymore certain properties
- fixed possible serverstart race which lead to messed up serverproperties
- fixed talk request timestamp not populated properly
+ clientdblist added property CLIENT_TOTALCONNECTIONS
+ improved multithreading / scability 
+ serverstart works now also for virtualservers which are in virtualmode
+ added server properties VIRTUALSERVER_NAME_PHONECTIC, VIRTUALSERVER_ICON_ID
+ added channel properties CHANNEL_ICON_ID
+ added client properties CLIENT_ICON_ID
+ clientlist added property CLIENT_IS_RECORDING (option: -voice)
+ added permissions b_virtualserver_modify_icon_id
! removed "group" from i_icon_id, i_max_icon_filesize, b_icon_manage

=== Server Release 3.0.0-beta18 08 Feb 2010
- fixed possible servercreate race by an serverstart
- fixed case where an servercreate was delayed by several minutes
- fixed permission overview permid=0 not recognized
- fixed bug where traffic quotas where not reset correctly on each new month
- fixed PERMISSION_b_permission_modify_power_ignore not working in certain setups
- fixed snapshotdeploy wont set correct channel id for channelgroups
+ added support for serversite group icons (needs client build >= 10183)
+ added i_group_max_icon_filesize, defines max filesize for serversite icons
+ added b_group_icon_manage, defines if client is able to upload/delete/browse icons
+ its now possible to give ether permid=int_value or permsid=string_value for 
  all given permission functions

=== Server Release 3.0.0-beta17 02 Feb 2010
- fixed possible crash while deleting subchannels
- clientlist option -VOICE added CLIENT_IS_PRIORITY_SPEAKER property
- fixed issue where query could start an stopped virtualserver while
  instance terminating
- fixed channel_flag_password was not set automatically while creating
  a new channel over query  
- fixed strange behavior while changing b_group_is_permanent permission value
- fixed licensing issue with max slots below 32
- query_ip_whitelist.txt removed out of package and is created if not available
- fixed PERMISSION_b_client_channel_textmessage_send not working properly
- fixed ghosting channel bug with certain default sub channel setups
- fixed critical after editing an perm/semi channel to an temp
- fixed unclear local accounting error messages
- fixed query bug which resulted in "invalid socketID" errors
+ added custominfo command (check docu for details)  
+ added permissions PERMISSION_b_client_custom_info_view
+ added permidgetbyname command (check docu for details)
+ added b_virtualserver_permission_reset
+ added command permreset (check docu for details)
! added b_permission_modify_power_ignore permission, allows to 
  add/delete permissions without having the needed grant values
! added command line parameter dblogkeepdays (default 90)
  defines how many days to keep database log entries
  (triggered on every start and while running every day)
! added command line parameter dbclientkeepdays (default 30)
  removes all clients which had not connected the x days and dont
  got an servergroup assigned
  (triggered on every start and while running every day)

=== Server Release 3.0.0-beta16 20 Jan 2010
- default query anti flood properties changed to be less strict
- added warning while using machine_id and no servers got loaded
- fixed possible exception in query core on certain linux derivates
+ query_ip_whitelist.txt auto reloads every five minutes
  entries are displayed to logfile, first time and every time they changed
  while reloading
+ reduce memory usage
+ shut down server cleanly on unix systems even when receiving SIGINT,
  SIGHUP and SIGTERM

=== Server Release 3.0.0-beta15 18 Jan 2010
- fixed mysql plugin reading config file

=== Server Release 3.0.0-beta13 18 Jan 2010
! To connect to a beta13 server you MUST update your client to beta11 or
  higher
- fixed 64bit database id mismatch
- reject big packets which could lead to server criticals
- fixed bug where none permanent groups wont display members
- channelgroupclientlist returns ERROR_database_empty_result
- fixed talk power can be granted without permission
- fixed not checking max bantime correclty
- fixed bug where group members / permission where not removed from database
- client request talk message size limit increased to 50 characters
- correctly reject talk requests with oversize message
- when manually adding a ban apply this ban to all matching clients that are
  currently connected
- work around convert error that could occure when setting some values to "-1"
  on some glibc versions
- fixed clientdbdelete not checking if client is online and removing all permissions
- respect b_client_ignore_bans on renames also
- fixed filetransfer permission checks
- fixed bug where it was not possible to connect via query if VIRTUALSERVER_MAXCLIENTS was set to zero
- fixed accounting deadlock which could occur while shutting down an virtualserver
+ added virtualserver_port to servercreate output
+ added new permission PERMISSION_b_virtualserver_custom_search
+ added query command customsearch (please check docu)
+ added sqlite PRAGMA integrity_check on startup
+ added table custom fields
+ tokenadd can take optional parameter tokendescription and tokencustomset
+ token table extended with token_created, token_description, token_customset fields
+ added query ip whitelist, entries wont be affected by flood protection
+ added command line option query_ip_whitelist (default query_ip_whitelist.txt)
+ added CLIENT_IDLE_TIME to clientlist (parameter -times)
+ added channel id to clientinfo, ident: cid
+ server accepts token while connecting
+ added checks for default/template groups
+ disconnect query after to many failed password tries
+ complain added to flood protection (middle)
+ added virtualservers_total_maxclients, virtualservers_total_clients_online, virtualservers_total_channels_online to hostinfo
+ added servergroups got default permission PERMISSION_b_group_is_permanent
+ added servergroups/channelgroups got default permission PERMISSION_i_group_needed_modify_power (current clients PERMISSION_i_group_modify_power is used)
+ new permission PERMISSION_b_virtualserver_modify_min_client_version
+ new virtualserver property VIRTUALSERVER_MIN_CLIENT_VERSION
+ windows crash dump wont display an dialog box anymore
+ added check to prevent deleting needed template groups
+ added flood protection for serverquery
+ added SERVERINSTANCE_SERVERQUERY_FLOOD_COMMANDS, SERVERINSTANCE_SERVERQUERY_FLOOD_TIME, SERVERINSTANCE_SERVERQUERY_BAN_TIME to instance properties
! you cant remove clients from groups which do not
  belong to your virtualserver (postponed feature)
! make sure that the changes below reflect your setup else you will break your server
+ added SERVERINSTANCE_TEMPLATE_SERVERDEFAULT_GROUP, SERVERINSTANCE_TEMPLATE_CHANNELADMIN_GROUP,
  SERVERINSTANCE_TEMPLATE_CHANNELDEFAULT_GROUP this properties are used now while creating
  a new virtualserver for selecting the needed groups. 

=== Server Release 3.0.0-beta12 31 Dec 2009
- fixed overlooked case where a client could post a talk request although
  is_talker was granted
- fixed general channel create behaviour
- fixed sendServerGroupClientList database usage problems
+ added CLIENT_IS_TALKER to clienlist (parameter -voice)
+ VIRTUALSERVER_ANTIFLOOD_POINTS_TICK_REDUCE cant be zero

=== Server Release 3.0.0-beta11 29 Dec 2009
- throw an ERROR_client_to_many_clones_connected while connecting 
  instead of an PERMISSION_i_client_max_clones permission error
- clear CLIENT_IS_TALKER, CLIENT_TALK_REQUEST and CLIENT_TALK_REQUEST_MSG
  they are no longer required to talk.
- properly handle PERMISSION_i_channel_max_depth and PERMISSION_i_channel_min_depth
  while creating a channel
+ added CLIENT_ID to whoami
- remove log spam that occured when oversized UPD packets were received

=== Server Release 3.0.0-beta10 27 Dec 2009
- Fixed bug that could lead to the server sending UDP packets with the
  network interface max capacity. Only systems with a instable system clock
  were affected.
- Fixed a deadlock that could freeze the server so it no longer responded 
- fixed PERMISSION_b_channel_delete_* behaviour
- prevent a memleak using pthread_create that could lead to a CRITICAL error
  message when the filetransfer port was attacked by many thousand connections
+ text messages added to flood protection (small)
! clientdblist takes now optional parameters "start" and "duration"
  default values are start=0, duration=25

=== Server Release 3.0.0-beta9 26 Dec 2009
- prevent denial of service on filetransfer port, that could also cause ASSERT failures

=== Server Release 3.0.0-beta8 25 Dec 2009
- fixed possible crash while unregistering a query client
- fixed possible case where clients got deleted from wrong groups
+ added CLIENT_IDLE_TIME, CONNECTION_CONNECTED_TIME to clientinfo
+ added CLIENT_VERSION, CLIENT_PLATFORM to clientlist (new parameter -info)
+ added VIRTUALSERVER_UNIQUE_IDENTIFIER to serverlist (new parameter -uid)
! VIRTUALSERVER_HOSTBANNER_GFX_INTERVAL dont accepts values between 1-59

=== Server Release 3.0.0-beta7 24 Dec 2009
- minor tcp stack improvements
+ added permission log entries for changing default groups
! updated to sqlite 3.6.21

=== Server Release 3.0.0-beta6 23 Dec 2009
- fixed PERMISSION_i_client_needed_move_power not taking all aspects into account
- fixed PERMISSION_b_channel_modify_sortorder not used
- fixed tcp flooding bug
+ dont print company name for none profit licenses to logfile
+ added crashdump support for win32/win64

=== Server Release 3.0.0-beta5 22 Dec 2009
- query password ban returns now a proper error message
- channelgroup && servergroup deleting checks for modify power
- fixed possibility that you set PERMISSION_i_group_needed_modify_power beyond
  your own power
- fixed not checking PERMISSION_i_client_move_power correctly while clientmove
- fixed possibly deadlock  
+ added permission PERMISSION_b_virtualserver_modify_priority_speaker_dimm_modificator
  you need to manually add this permission if you are upgrading the server
+ added PERMISSION_b_virtualserver_modify_log_settings  
  you need to manually add this permission if you are upgrading the server
! + added VIRTUALSERVER_LOG_CLIENT, VIRTUALSERVER_LOG_QUERY, VIRTUALSERVER_LOG_CHANNEL
        VIRTUALSERVER_LOG_PERMISSIONS, VIRTUALSERVER_LOG_SERVER, VIRTUALSERVER_LOG_FILETRANSFER
  to virtualserver properties
  default logging disabled except for permissions
! default permissions are more end-user friendly
! beta4 skipped

=== Server Release 3.0.0-beta3 21 Dec 2009
- tokenadd checks for PERMISSION_i_group_needed_member_add_power
- fixed tokenadd with channel groups not used correctly
- handle select failures for tcp connections more properly
- fixed PERMISSION_b_channel_join_ignore_maxclients
+ client nickname change added to flood protection (small)
+ clientpoke added to flood protection (middle)
+ inform windows users about the virtualserver token

=== Server Release 3.0.0-beta2 20 Dec 2009
- fixed rare server crash (while reconnecting client)
- fixed bug with serverdblist updating client_nickname fields
- fixed permission problem with channel groups
+ serverstop can return ERROR_server_is_not_running 
+ poke message got a max character limit of 100
! added PERMISSION_b_client_issue_client_query_command
  enables/disables the internal gui client serverquery function
- fixed bug that lead to the server connection info values overflowing
  at 2^31

=== Server Release 3.0.0-beta1 19 Dec 2009
- fixed typo for bandwidth properties
- fixed VIRTUALSERVER_MAXCLIENTS behaviour in virtual mode
+ fixed mysql problem while editing virtualserver error database_no_modifications
+ added query password brute force protection
+ serverinfo shows also VIRTUALSERVER_QUERYCLIENTS_ONLINE
+ VIRTUALSERVER_NAME increased to 64 chars

=== Server Release 3.0.0-alpha4-pre-7 17 Dec 2009
+ use command extended to use also a port usage: use port=9987 (please check docu)
+ serverinfo also gives virtualserver_status
- clientdblist shows correct timestamps
- servercreate handles virtualserver_password correctly
- fixed query socket reusing bug

=== Server Release 3.0.0-alpha4-pre-6 16 Dec 2009
- servercreate accepts now virtualserver_autostart, virtualserver_machine_id
- mysql set MYSQL_OPT_RECONNECT to true
+ added commandline parameter "createinifile" (default name "ts3server.ini")
  usage example: binary createinifile=1
+ added commandline parameter "inifile"
  usage example: binary inifile=ts3server.ini
+ added commandline parameter "dbpluginparameter" (check docu for details)
+ added VIRTUALSERVER_NEEDED_IDENTITY_SECURITY_LEVEL (check docu for details)
! Protocol change. Old clients can not connect to new servers and new clients
  can not connect to old servers. preparition for our open beta.

=== Server Release 3.0.0-alpha4-pre-5 15 Dec 2009
- added missing mysql create/drop files

=== Server Release 3.0.0-alpha4-pre-4 14 Dec 2009
- VIRTUALSERVER_PORT, VIRTUALSERVER_AUTOSTART, VIRTUALSERVER_MACHINE_ID
  can be edited while virtualserver is running, changes take effect after
  manual restart
- we prevent using tokenadd with template groups
+ mysql support added, please check server_quickstart.txt
  - if you encounter problems, we need logs, mysql version
    operating system, etc

=== Server Release 3.0.0-alpha4-pre-3 12 Dec 2009
+ added commandline parameter "logpath"
  usage example: binary logpath=logs
+ serverdelete adds an logentry
- fixed CLIENT_IS_TALKER behaviour
- handle autoprobe errors more gracefully

=== Server Release 3.0.0-alpha4-pre-2 10 Dec 2009
- autoprobing fixes
  - fixed invalid virtualserver_port property after autoprobing (was -1)
  - takes also stopped servers into account (machine_id is ignored)
  - make sure every new autoprobe request starts from beginning
+ enable plugins to send command packets
+ banadd, banclient displays bandid (check docu for details)
+ added commandline parameter "licensepath"
  usage example: binary licensepath=e:\\ts3license\\

=== Server Release 3.0.0-alpha3 08 Dec 2009
- fixed broken ban time under windows

=== Server Release 3.0.0-alpha2 07 Dec 2009
- fixed invalid ban timestamp
- fixed dead group member entries after group deletion
- fixed bug where a serverdelete cleared up the whole filebase

=== Server Release 3.0.0-alpha1 04 Dec 2009
- if an virtualserver is unable to start just throw an error instead
  of shutting down the whole intance
- fixed a bug which could lead to a deadlock while adding a new
  server with a port already in use
! virtualserver which is in virtualmode will automatically shutdown
  after last client(query) left
! servercreate returns also the token needed to get serveradmin  
+ added command serveridgetbyport (check docu for details)
+ added command permfind (check docu for details)

=== Server Release r8910 01 Dec 2009
* Initial public server release

