2019-01-10 Fred Gleason <fredg@paravelsystems.com>

* Fixed a bug in rdairplay(1) and rdvairplayd(1) that caused
	spurious service information to by generated by the PAD subsystem
	when updating events in a null log.
	* Fixed a bug in rdairplay(1) and rdvairplayd(1) that threw a
	segfault when playing an event in a null log.
This commit is contained in:
Fred Gleason 2019-01-10 13:32:36 -05:00
parent df90d567ba
commit 949f9141ab
2 changed files with 23 additions and 9 deletions

View File

@ -18353,3 +18353,9 @@
2019-01-09 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression that caused invalid values for PyPAD UID/GID
to be loaded.
2019-01-10 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in rdairplay(1) and rdvairplayd(1) that caused
spurious service information to by generated by the PAD subsystem
when updating events in a null log.
* Fixed a bug in rdairplay(1) and rdvairplayd(1) that threw a
segfault when playing an event in a null log.

View File

@ -1380,6 +1380,9 @@ void RDLogPlay::resync()
bool RDLogPlay::isRefreshable() const
{
if(play_log==NULL) {
return false;
}
return (play_log->exists())&&
(play_log->linkDatetime()==play_link_datetime)&&
(play_log->modifiedDatetime()>play_modified_datetime);
@ -2961,15 +2964,20 @@ void RDLogPlay::SendNowNext()
//
// Service
//
RDSvc *svc=new RDSvc(svcname,rda->station(),rda->config(),this);
play_pad_socket->write(QString(" \"service\": {\r\n").toUtf8());
play_pad_socket->write(RDJsonField("name",svcname,12).toUtf8());
play_pad_socket->
write(RDJsonField("description",svc->description(),12).toUtf8());
play_pad_socket->
write(RDJsonField("programCode",svc->programCode(),12,true).toUtf8());
play_pad_socket->write(QString(" },\r\n").toUtf8());
delete svc;
if(svcname.isEmpty()) {
play_pad_socket->write(RDJsonNullField("service",8).toUtf8());
}
else {
RDSvc *svc=new RDSvc(svcname,rda->station(),rda->config(),this);
play_pad_socket->write(QString(" \"service\": {\r\n").toUtf8());
play_pad_socket->write(RDJsonField("name",svcname,12).toUtf8());
play_pad_socket->
write(RDJsonField("description",svc->description(),12).toUtf8());
play_pad_socket->
write(RDJsonField("programCode",svc->programCode(),12,true).toUtf8());
play_pad_socket->write(QString(" },\r\n").toUtf8());
delete svc;
}
//
// Log