* Added 'CUTS.ORIGIN_LOGIN_NAME' and 'CUTS.SOURCE_HOSTNAME' fields to
the database.
* Incremented the database version to 267.
* Added 'RDCut::originLoginName()', 'RDCut::setOriginLoginName()',
'RDCut::sourceHostname()' and 'RDCut::setSourceHostname()' methods
in 'lib/rdcut.cpp' and 'lib/rdcut.h'.
* Added '<originLoginName>' and '<sourceHostname>' tags to the cut
XML schema in 'RDCart::xmlSql()' and 'RDCut::xml()' methods.
* Refactored the layout of the 'Cut Info/Record' dialog in RDLibrary.
* Added a 'Source Host' control to the 'Cut Info/Record' dialog
in RDLibrary.
* Added an 'RDEscapeShellString()' function in 'lib/rdescape_string.h'
and 'lib/rdescape_string.cpp'.
* Fixed a bug in 'lib/rduser.cpp' that caused PAM authentication of
accounts with a password containing one or more '$' characters to fail.
2017-07-17 Fred Gleason <fredg@paravelsystems.com>
* Incremented the package version to 2.16.0int06_rfa00.
2017-07-18 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in the 'ListCuts web API call that caused incorrect
<startPoint> and <endPoint> values to the returned.
2017-07-18 Fred Gleason <fredg@paravelsystems.com>
* Incremented the package version to 2.16.0int06_rfa01.
2017-07-28 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'lib/rdevent_line.cpp' that caused embedded traffic
import events to be assigned incorrect link parameters when scheduled
immediately after a voice track.
2017-07-28 Fred Gleason <fredg@paravelsystems.com>
* Refactored the 'RDUser::authenticated()' method to eliminate use
of rdauth(8).
2017-07-28 Fred Gleason <fredg@paravelsystems.com>
* Removed rdauth(8).
2017-07-28 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'lib/rdevent_line.cpp' that caused an embedded traffic
import event to be assigned incorrect link parameters when scheduled
at midnight.
2017-08-01 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'rdlogmanager/edit_grid.cpp' to broke functioning of
the 'Clear Hour' item in the right-click menu.
2017-08-02 Fred Gleason <fredg@paravelsystems.com>
* Refactored the algorithm for calculating web tickets in
'web/rdxport/rdxport.cpp'.
2017-08-03 Fred Gleason <fredg@paravelsystems.com>
* Added an 'rlm_urlwrite' RLM in 'rlm/rlm_urlwrite.c'.
2017-08-03 Fred Gleason <fredg@paravelsystems.com>
* Increased the length of the 'Formats=' parameter in the
'rlm_filewrite' RLM from 256 to 8192 characters.
2017-08-07 Fred Gleason <fredg@paravelsystems.com>
* Incremented the package version to 2.16.0int06_rfa02.
2017-08-12 Fred Gleason <fredg@paravelsystems.com>
* Implemented a driver for WheatNet SLIO devices.
2017-08-12 Fred Gleason <fredg@paravelsystems.com>
* Implemented a driver for WheatNet LIO devices.
2017-08-13 Fred Gleason <fredg@paravelsystems.com>
* Refactored the WheatNet LIO driver to use event subscription.
2017-08-13 Fred Gleason <fredg@paravelsystems.com>
* Refactored the WheatNet SLIO driver to use event subscription.
2017-08-16 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'lib/rdlog.cpp' that caused incorrect results when
calculating the total number of voice tracks in a log.
* Fixed a bug in 'lib/rdevent_line.cpp' that caused an embedded traffic
import event to be assigned incorrect link parameters when scheduled
at midnight.
* Fixed a bug in 'lib/rdevent_line.cpp' that caused embedded traffic
import events to be assigned incorrect link parameters when scheduled
immediately after a voice track.
* Fixed a bug in 'lib/rdevent_line.cpp' that caused embedded traffic
import events to be assigned incorrect link parameters when scheduled
immediately after a voice track.
* Added an 'RDEscapeShellString()' function in 'lib/rdescape_string.h'
and 'lib/rdescape_string.cpp'.
* Fixed a bug in 'lib/rduser.cpp' that caused PAM authentication of
accounts with a password containing one or more '$' characters to fail.
* Added a 'SYSTEM.SHOW_USER_LIST' field to the database.
* Incremented the database version to 265.
* Added 'RDSystem::showUserList()' and 'RDSystem::setShowUserList()'
methods in 'lib/rdsystem.cpp' and 'lib/rdsystem.h'.
* Added a 'Show User List in RDLogin' control to the 'Edit System'
dialog in 'rdadmin/edit_settings.cpp' and 'rdadmin/edit_settings.h'.
* Altered RDLogin to display a text input field for the user name
when 'Show User List in RDLogin' is unchecked.
* 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.
* Added an 'RDMatrix::KernelGpio' element to the 'RDMatrix::Type enum.
* Implemented a Kernel GPIO switcher driver in 'ripcd/kernelgpio.cpp'
and 'ripcd/kernelgpio.h'.
* Added pseudo-schema change 263 to restore missing LOG_MODES table
records [GitHub issue #000175].
* Added code to create and remove LOG_MODES table records when
adding and removing Host definitions.
* Incremented the database version to 263.
* Added an 'RDMatrix::Modbus' element to the 'RDMatrix::Type enum.
* Implemented a Modbus TCP switcher driver in 'ripcd/modbus.cpp' and
'ripcd/modbus.h'.
* 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.
* 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'.
* Added a 'CUTS.SHA1_HASH' field to the database.
* Incremented the database version to 261.
* Added a 'Sha1' column to the Cut List in 'rdlibrary/audio_cart.cpp'.
* Added 'RDCut::sha1Hash()' and 'RDCut::setSha1Hash()' methods in
'lib/rdcut.cpp' and 'lib/rdcut.h'.
* Added a '--rehash=' directive to rddbcheck(8).
* Added a 'Rehash' Web API call.
* Added an 'RDRehash' class in 'lib/rdrehash.cpp' and 'lib/rdrehash.h'.
* Added a 'WEBAPI_AUTHS' table to the database.
* Added a 'USERS.WEBAPI_AUTH_TIMEOUT' field to the database.
* Incremented the database version to 260.
* Added 'RDUser::webapiAuthTimeout()' and
'RDUser::setWebapiAuthTimeout()' methods in 'lib/rduser.cpp' and
'lib/rduser.h'.
* Added a 'WebAPI Timeout' control to the Edit User dialog in
'rdadmin/edit_user.cpp' and 'rdadmin/edit_user.h'.
* Implemented a 'CreateTicket' Web API call.
* Fixed a bug in 'lib/rdaudioconvert.cpp' that caused conversions
from MPEG Layer 3 VBR data to be truncated when no end point
was specified.
* Fixed a bug in 'web/rdxport/import.cpp' that caused the
end marker to be positioned incorrectly when importing MPEG
Layer 3 VBR files.
* Fixed a bug in 'rdlibrary/audio_cart.cpp' where the 'Conductor'
failed to be imported from RDXL chunks.
* Added a 'songId' field to the cart metadata XML.
* Added 'RDCart::xmlSql()' and second 'RDCart::xml()' methods.
* Refactored the 'RDCart::xml()' method to use a SQL query.
* Refactored the Cart and Cut web methods in 'web/rdxport/carts.cpp'
to use SQL queries.