* Added a 'SaveFile' test method to the web API.
* Added a 'SaveString' test method to the web API.
* Refactored the multipart-mime parser in 'RDFormPost' to process
UTF-8 strings correctly.
* Added a 'SERVICES.LOG_SHELFLIFE_ORIGIN' field to the database.
* Incremented the database version to 275.
* Added a drop-down control to the 'Set Logs to auto-delete' control
to allow origin to be specified in the 'Edit Service' dialog in
rdadmin(1).
* Implemented application of the 'Purge Logs' setting when creating
logs manually.
* Changed the wording of the 'Purge Logs' and 'Purge ELR Data'
control in the Edit Service dialog in rdadmin(1).
* Added 'RDLog::create()' and 'RDLog::remove()' static methods.
* Added a 'USER_SERVICE_PERMS' table to the database.
* Incremented the database version to 272.
* Added a 'Service Permissions' button to the Edit User dialog in
rdadmin(1).
* Added a 'STATIONS.SHORT_NAME' field to the database.
* Incremented the database version to 270.
* Added 'RDStation::shortName()' and 'RDStation::setShortName()'
methods.
* Removed the 'Broadcast Security Model' control from the 'Edit
Host' dialog.
* Added a 'Short Name' control to the 'Edit Host' dialog.
* Implemented a '%R' wildcard for Rivendell Host Short Name.
* Added a '<fadedownGain>' parameter to the return of the 'ListLog'
web API call.
* Added 'FADEUP_GAIN' and 'FADEDOWN_GAIN' parameters to the 'SaveLog'
web API call.
* Modified 'lib/rdformpost.cpp' to use read-only accessors for
std::map values.
* Added a check for valid event IDs for the 'SaveLog' method in
'web/rdxport/logs.cpp'.
* Added an 'AddLog' method to the Web API.
* Added an 'DeleteLog' method to the Web API.
* Added a 'SaveLog' method to the Web API.
* Added 'eventLength', 'linkEventName', 'linkStartSlop',
'linkEndSlop', 'linkId', 'linkEmbedded', 'extStartTime',
'extLength', 'extCartName', 'extData', 'extEventId',
and 'extAnncType' XML fields to the return of the ListLog web
API method