* Fixed a bug in rdadmin(1) that caused the credentials fields to
be greyed out when configuring a podcast feed to use SFTP uploads.
* Fixed a bug in 'RDExport' that caused encoding of credentials
to be corrupt.
* Fixed a regression in the RDFeed service that caused detection
of feed names to fail.
* 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.
* Fixed a bug in 'web/rdxport/carts.cpp' and 'web/rdxport/import.cpp'
that caused the 'EditCart' web API call to return an error when
attempting to set the Title field to its current value when
Allow Duplicate Cart Titles was not enabled.
* 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.
* Added a 'SYSTEM.FIX_DUP_CART_TITLES' field to the database.
* Incremented the database version to 264.
* Added 'RDSystem::fixDuplicateCartTitles()' and
'RDSystem::setFixDuplicateCartTitles()' methods in 'lib/rdsystem.cpp'
and 'lib/rdsystem.h'.
* Added an 'Auto-Correct Duplicate Cart Titles' checkbox to the
'System Settings' dialog in 'rdadmin/edit_settings.cpp' and
'rdadmin/edit_settings.h'.
* Modified the 'EditCart' web call to enforce the 'Auto-Correct
Duplicate Cart Titles' setting.
* Fixed a bug in 'lib/rdcart.cpp' that caused the 'Import' web API call
to return 404 when importing with 'CREATE' set to '1' and unique titles
enabled in the database.
* Added an rdauth(1) utility in 'utils/rdauth/'.
* Fixed a regression in 'lib/rdcart.cpp' that caused the 'Import'
web API call to fail with an 'unsupported format' error.
* Fixed a regression in 'web/rdxport/rdxport.cpp' that broke
the CreateTicket web API call when connecting from localhost
or the machines registered IP address.
* Added a 'USERS.LOCAL_AUTH' field to the database.
* Added a 'USERS.PAM_SERVICE' field to the database.
* Added an index on 'STATIONS.IPV4_ADDRESS' to the database.
* Incremented the database version to 262.
* Added 'RDUser::localAuthentication()',
'RDUser::setLocalAuthentication()', 'RDUser::pamService()' and
'RDUser::setPamService()' methods in 'lib/rduser.cpp' and
'lib/rduser.h'.
* Added 'PAM Service' and 'Authenticate This User Locally' controls
to the Edit User dialog in 'rdadmin/edit_user.cpp' and
'rdadmin/edit_user.h'.
* Added a PAM service configuration in 'conf/rivendell.pam'.