From ec5fc02c54446ae9f4e52017429362640750ec49 Mon Sep 17 00:00:00 2001 From: Patrick Linstruth Date: Fri, 2 Feb 2018 12:47:27 -0800 Subject: [PATCH 1/5] Add RLMDateTimeDecode utility function --- rdairplay/rlmhost.cpp | 12 ++++++++++++ rdairplay/rlmhost.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/rdairplay/rlmhost.cpp b/rdairplay/rlmhost.cpp index dc9b8fe2..7c8ba51e 100644 --- a/rdairplay/rlmhost.cpp +++ b/rdairplay/rlmhost.cpp @@ -525,3 +525,15 @@ const char *RLMGetStringValue(void *ptr,const char *filename, delete p; return host->plugin_value_string; } + + +const char *RLMDateTimeDecode(void *ptr, const char *format, + const char *svc_name) +{ + RLMHost *host=(RLMHost *)ptr; + strncpy(host->plugin_value_string, + RDDateTimeDecode(format,QDateTime::currentDateTime(), + rdstation_conf,air_config, + svc_name),1024); + return host->plugin_value_string; +} diff --git a/rdairplay/rlmhost.h b/rdairplay/rlmhost.h index 3a7e59f0..0d726cb4 100644 --- a/rdairplay/rlmhost.h +++ b/rdairplay/rlmhost.h @@ -98,6 +98,8 @@ class RLMHost : public QObject friend const char *RLMGetStringValue(void *ptr,const char *filename, const char *section,const char *label, const char *default_value); + friend const char *RLMDateTimeDecode(void *ptr, const char *format, + const char *svc_name); char plugin_value_string[1024]; }; From 9950d52bf58ae69da4bc8c8999b532562d41270c Mon Sep 17 00:00:00 2001 From: Patrick Linstruth Date: Fri, 2 Feb 2018 12:48:39 -0800 Subject: [PATCH 2/5] Allow filename wildcards in filename utilizing RDDateTimeDecode() --- rlm/rlm_filewrite.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/rlm/rlm_filewrite.c b/rlm/rlm_filewrite.c index 9803c285..62fd2a0f 100644 --- a/rlm/rlm_filewrite.c +++ b/rlm/rlm_filewrite.c @@ -185,6 +185,7 @@ void rlm_filewrite_RLMPadDataSent(void *ptr,const struct rlm_svc *svc, char str[8192]; char msg[1500]; FILE *f; + const char *filename; for(i=0;ilog_mach) { @@ -205,22 +206,26 @@ void rlm_filewrite_RLMPadDataSent(void *ptr,const struct rlm_svc *svc, rlm_filewrite_formats+8192*i, rlm_filewrite_encodings[i]),8192); rlm_filewrite_ProcessString(str); + if ((filename=RLMDateTimeDecode(ptr,rlm_filewrite_filenames+256*i,svc->svc_name))==NULL) { + RLMLog(ptr,LOG_WARNING,"rlm_filewrite: RLMDateTimeDecode failure"); + return; + } if(rlm_filewrite_appends[i]==0) { - f=fopen(rlm_filewrite_filenames+256*i,"w"); + f=fopen(filename,"w"); } else { - f=fopen(rlm_filewrite_filenames+256*i,"a"); + f=fopen(filename,"a"); } if(f!=NULL) { snprintf(msg,1500,"rlm_filewrite: sending pad update: \"%s\" to \"%s\"", - str,rlm_filewrite_filenames+256*i); + str,filename); fprintf(f,"%s",str); fclose(f); RLMLog(ptr,LOG_INFO,msg); } else { snprintf(msg,1500,"rlm_filewrite: unable to open file \"%s\"", - rlm_filewrite_filenames+256*i); + filename); RLMLog(ptr,LOG_WARNING,msg); } } From 7dd61e5bd17758a409fdd8b13afde911dc664715 Mon Sep 17 00:00:00 2001 From: Patrick Linstruth Date: Fri, 2 Feb 2018 12:50:14 -0800 Subject: [PATCH 3/5] Add RLMDateTimeDecode utility function --- rlm/rlm.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rlm/rlm.h b/rlm/rlm.h index a47b91d7..e6ce43a0 100644 --- a/rlm/rlm.h +++ b/rlm/rlm.h @@ -344,8 +344,8 @@ extern "C" { const char *RLMGetStringValue(void *ptr,const char *filename, const char *section,const char *label, const char *default_value); - - + const char *RLMDateTimeDecode(void *ptr, const char *format, + const char *svc_name); #ifdef __cplusplus } #endif From ae61c67605213b2b4852ddf7470bb8f47ce03285 Mon Sep 17 00:00:00 2001 From: Patrick Linstruth Date: Fri, 2 Feb 2018 12:58:21 -0800 Subject: [PATCH 4/5] Updated "Filename" instructions to include the use of filepath wildcards --- conf/rlm_filewrite.conf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/conf/rlm_filewrite.conf b/conf/rlm_filewrite.conf index d5397930..6b4e6b47 100644 --- a/conf/rlm_filewrite.conf +++ b/conf/rlm_filewrite.conf @@ -16,8 +16,10 @@ ; Filename ; -; The full path to the file to be written. The user running RDAirPlay -; must have write permissions for this location. +; The full path to the file to be written. The filename may contain filepath +; wildcards as defined in Appendix C of the Rivendell Operations and +; Administration Guide. The user running RDAirPlay must have write +; permissions for this location. Filename=/tmp/rlm_filewrite.txt ; Append Mode From 4774afd26814f9428e271049db8a586b53e380a8 Mon Sep 17 00:00:00 2001 From: Patrick Linstruth Date: Fri, 2 Feb 2018 13:16:54 -0800 Subject: [PATCH 5/5] Put back blank lines --- rlm/rlm.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rlm/rlm.h b/rlm/rlm.h index e6ce43a0..345df22b 100644 --- a/rlm/rlm.h +++ b/rlm/rlm.h @@ -346,6 +346,8 @@ extern "C" { const char *default_value); const char *RLMDateTimeDecode(void *ptr, const char *format, const char *svc_name); + + #ifdef __cplusplus } #endif