2017-04-20 Fred Gleason <fredg@paravelsystems.com>

* Added a '--enable-rdxport-debug' switch to 'configure.ac'.
This commit is contained in:
Fred Gleason
2017-04-20 10:26:41 -04:00
parent e803cb40bc
commit 7cf2b5b2f7
17 changed files with 211 additions and 177 deletions

View File

@@ -15747,3 +15747,5 @@
'rdlogin/rdlogin.cpp'. 'rdlogin/rdlogin.cpp'.
2017-04-18 Fred Gleason <fredg@paravelsystems.com> 2017-04-18 Fred Gleason <fredg@paravelsystems.com>
* Incremented the package version to 2.15.3int03. * Incremented the package version to 2.15.3int03.
2017-04-20 Fred Gleason <fredg@paravelsystems.com>
* Added a '--enable-rdxport-debug' switch to 'configure.ac'.

View File

@@ -80,8 +80,10 @@ AC_ARG_ENABLE(lame,[ --disable-lame disable MPEG Layer 3 encode suppor
[LAME_DISABLED=yes],[]) [LAME_DISABLED=yes],[])
AC_ARG_ENABLE(flac,[ --disable-flac disable FLAC encode/decode support], AC_ARG_ENABLE(flac,[ --disable-flac disable FLAC encode/decode support],
[FLAC_DISABLED=yes],[]) [FLAC_DISABLED=yes],[])
AC_ARG_ENABLE(mp4v2,[ --disable-mp4 disable M4A decode support], AC_ARG_ENABLE(mp4v2,[ --disable-mp4 disable M4A decode support],
[MP4V2_DISABLED=yes],[]) [MP4V2_DISABLED=yes],[])
AC_ARG_ENABLE(rdxport-debug,[ --enable-rdxport-debug enable DEBUG support for RDXport services],
[RDXPORT_DEBUG_ENABLED=yes],[])
# #
# Check for Qt # Check for Qt
@@ -242,6 +244,13 @@ if test -z $DOCBOOK_DISABLED ; then
fi fi
AM_CONDITIONAL([DOCBOOK_AM], [test "$USING_DOCBOOK" = yes]) AM_CONDITIONAL([DOCBOOK_AM], [test "$USING_DOCBOOK" = yes])
#
# RDXport Debug
#
if test $RDXPORT_DEBUG_ENABLED ; then
AC_DEFINE(RDXPORT_DEBUG)
fi
# #
# Set Hard Library Dependencies # Set Hard Library Dependencies
# #

View File

@@ -41,18 +41,18 @@ void Xport::AudioInfo()
// //
int cartnum=0; int cartnum=0;
if(!xport_post->getValue("CART_NUMBER",&cartnum)) { if(!xport_post->getValue("CART_NUMBER",&cartnum)) {
XmlExit("Missing CART_NUMBER",400); XmlExit("Missing CART_NUMBER",400,"audioinfo.cpp",LINE_NUMBER);
} }
int cutnum=0; int cutnum=0;
if(!xport_post->getValue("CUT_NUMBER",&cutnum)) { if(!xport_post->getValue("CUT_NUMBER",&cutnum)) {
XmlExit("Missing CUT_NUMBER",400); XmlExit("Missing CUT_NUMBER",400,"audioinfo.cpp",LINE_NUMBER);
} }
// //
// Verify User Perms // Verify User Perms
// //
if(!xport_user->cartAuthorized(cartnum)) { if(!xport_user->cartAuthorized(cartnum)) {
XmlExit("No such cart",404); XmlExit("No such cart",404,"audioinfo.cpp",LINE_NUMBER);
} }
// //
@@ -60,7 +60,7 @@ void Xport::AudioInfo()
// //
RDWaveFile *wave=new RDWaveFile(RDCut::pathName(cartnum,cutnum)); RDWaveFile *wave=new RDWaveFile(RDCut::pathName(cartnum,cutnum));
if(!wave->openWave()) { if(!wave->openWave()) {
XmlExit("No such audio",404); XmlExit("No such audio",404,"audioinfo.cpp",LINE_NUMBER);
} }
// //
@@ -94,7 +94,7 @@ void Xport::AudioInfo()
break; break;
default: default:
XmlExit("Unknown audio format",400); XmlExit("Unknown audio format",400,"audioinfo.cpp",LINE_NUMBER);
break; break;
} }
printf("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"); printf("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n");

View File

@@ -39,7 +39,7 @@ void Xport::AudioStore()
memset(&stat,0,sizeof(stat)); memset(&stat,0,sizeof(stat));
if(statvfs(xport_config->audioRoot(),&stat)<0) { if(statvfs(xport_config->audioRoot(),&stat)<0) {
XmlExit("Internal Error",400); XmlExit("Internal Error",400,"audiostore.cpp",LINE_NUMBER);
} }
printf("Content-type: application/xml\n"); printf("Content-type: application/xml\n");
printf("Status: 200\n\n"); printf("Status: 200\n\n");

View File

@@ -48,10 +48,10 @@ void Xport::AddCart()
// Verify Post // Verify Post
// //
if(!xport_post->getValue("GROUP_NAME",&group_name)) { if(!xport_post->getValue("GROUP_NAME",&group_name)) {
XmlExit("Missing GROUP_NAME",400); XmlExit("Missing GROUP_NAME",400,"carts.cpp",LINE_NUMBER);
} }
if(!xport_post->getValue("TYPE",&type)) { if(!xport_post->getValue("TYPE",&type)) {
XmlExit("Missing TYPE",400); XmlExit("Missing TYPE",400,"carts.cpp",LINE_NUMBER);
} }
if(type.lower()=="audio") { if(type.lower()=="audio") {
cart_type=RDCart::Audio; cart_type=RDCart::Audio;
@@ -61,7 +61,7 @@ void Xport::AddCart()
cart_type=RDCart::Macro; cart_type=RDCart::Macro;
} }
else { else {
XmlExit("Invalid TYPE",400); XmlExit("Invalid TYPE",400,"carts.cpp",LINE_NUMBER);
} }
} }
xport_post->getValue("CART_NUMBER",&cart_number); xport_post->getValue("CART_NUMBER",&cart_number);
@@ -70,22 +70,22 @@ void Xport::AddCart()
// Verify User Perms // Verify User Perms
// //
if(!xport_user->groupAuthorized(group_name)) { if(!xport_user->groupAuthorized(group_name)) {
XmlExit("No such group",404); XmlExit("No such group",404,"carts.cpp",LINE_NUMBER);
} }
group=new RDGroup(group_name); group=new RDGroup(group_name);
if(cart_number==0) { if(cart_number==0) {
if((cart_number=group->nextFreeCart())==0) { if((cart_number=group->nextFreeCart())==0) {
delete group; delete group;
XmlExit("No free carts in group",500); XmlExit("No free carts in group",500,"carts.cpp",LINE_NUMBER);
} }
} }
if(!group->cartNumberValid(cart_number)) { if(!group->cartNumberValid(cart_number)) {
delete group; delete group;
XmlExit("Cart number out of range for group",404); XmlExit("Cart number out of range for group",404,"carts.cpp",LINE_NUMBER);
} }
delete group; delete group;
if(!xport_user->createCarts()) { if(!xport_user->createCarts()) {
XmlExit("Forbidden",404); XmlExit("Forbidden",404,"carts.cpp",LINE_NUMBER);
} }
// //
@@ -94,11 +94,11 @@ void Xport::AddCart()
cart=new RDCart(cart_number); cart=new RDCart(cart_number);
if(cart->exists()) { if(cart->exists()) {
delete cart; delete cart;
XmlExit("Cart already exists",400); XmlExit("Cart already exists",400,"carts.cpp",LINE_NUMBER);
} }
if(!cart->create(group_name,cart_type)) { if(!cart->create(group_name,cart_type)) {
delete cart; delete cart;
XmlExit("Unable to create cart",500); XmlExit("Unable to create cart",500,"carts.cpp",LINE_NUMBER);
} }
printf("Content-type: application/xml\n"); printf("Content-type: application/xml\n");
printf("Status: 200\n\n"); printf("Status: 200\n\n");
@@ -155,7 +155,7 @@ void Xport::ListCarts()
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
if(!q->first()) { if(!q->first()) {
delete q; delete q;
XmlExit("No such group",404); XmlExit("No such group",404,"carts.cpp",LINE_NUMBER);
} }
where=RDCartSearchText(filter,group_name,"",false); where=RDCartSearchText(filter,group_name,"",false);
} }
@@ -192,7 +192,7 @@ void Xport::ListCart()
// Verify Post // Verify Post
// //
if(!xport_post->getValue("CART_NUMBER",&cart_number)) { if(!xport_post->getValue("CART_NUMBER",&cart_number)) {
XmlExit("Missing CART_NUMBER",400); XmlExit("Missing CART_NUMBER",400,"carts.cpp",LINE_NUMBER);
} }
xport_post->getValue("INCLUDE_CUTS",&include_cuts); xport_post->getValue("INCLUDE_CUTS",&include_cuts);
@@ -200,7 +200,7 @@ void Xport::ListCart()
// Verify User Perms // Verify User Perms
// //
if(!xport_user->cartAuthorized(cart_number)) { if(!xport_user->cartAuthorized(cart_number)) {
XmlExit("No such cart",404); XmlExit("No such cart",404,"carts.cpp",LINE_NUMBER);
} }
// //
@@ -238,7 +238,7 @@ void Xport::EditCart()
// Verify Post // Verify Post
// //
if(!xport_post->getValue("CART_NUMBER",&cart_number)) { if(!xport_post->getValue("CART_NUMBER",&cart_number)) {
XmlExit("Missing CART_NUMBER",400); XmlExit("Missing CART_NUMBER",400,"carts.cpp",LINE_NUMBER);
} }
xport_post->getValue("INCLUDE_CUTS",&include_cuts); xport_post->getValue("INCLUDE_CUTS",&include_cuts);
@@ -246,25 +246,25 @@ void Xport::EditCart()
// Verify User Perms // Verify User Perms
// //
if(!xport_user->cartAuthorized(cart_number)) { if(!xport_user->cartAuthorized(cart_number)) {
XmlExit("No such cart",404); XmlExit("No such cart",404,"carts.cpp",LINE_NUMBER);
} }
if(!xport_user->modifyCarts()) { if(!xport_user->modifyCarts()) {
XmlExit("Unauthorized",404); XmlExit("Unauthorized",404,"carts.cpp",LINE_NUMBER);
} }
if(xport_post->getValue("GROUP_NAME",&group_name)) { if(xport_post->getValue("GROUP_NAME",&group_name)) {
if(!xport_user->groupAuthorized(group_name)) { if(!xport_user->groupAuthorized(group_name)) {
XmlExit("No such group",404); XmlExit("No such group",404,"carts.cpp",LINE_NUMBER);
} }
group=new RDGroup(group_name); group=new RDGroup(group_name);
if(!group->exists()) { if(!group->exists()) {
delete group; delete group;
XmlExit("No such group",404); XmlExit("No such group",404,"carts.cpp",LINE_NUMBER);
} }
if(group->enforceCartRange()) { if(group->enforceCartRange()) {
if(((unsigned)cart_number<group->defaultLowCart())|| if(((unsigned)cart_number<group->defaultLowCart())||
((unsigned)cart_number>group->defaultHighCart())) { ((unsigned)cart_number>group->defaultHighCart())) {
delete group; delete group;
XmlExit("Invalid cart number for group",409); XmlExit("Invalid cart number for group",409,"carts.cpp",LINE_NUMBER);
} }
} }
delete group; delete group;
@@ -276,17 +276,17 @@ void Xport::EditCart()
cart=new RDCart(cart_number); cart=new RDCart(cart_number);
if(!cart->exists()) { if(!cart->exists()) {
delete cart; delete cart;
XmlExit("No such cart",404); XmlExit("No such cart",404,"carts.cpp",LINE_NUMBER);
} }
if(xport_post->getValue("FORCED_LENGTH",&value)) { if(xport_post->getValue("FORCED_LENGTH",&value)) {
number=RDSetTimeLength(value); number=RDSetTimeLength(value);
if(cart->type()==RDCart::Macro) { if(cart->type()==RDCart::Macro) {
delete cart; delete cart;
XmlExit("Unsupported operation for cart type",400); XmlExit("Unsupported operation for cart type",400,"carts.cpp",LINE_NUMBER);
} }
if(!cart->validateLengths(number)) { if(!cart->validateLengths(number)) {
delete cart; delete cart;
XmlExit("Forced length out of range",400); XmlExit("Forced length out of range",400,"carts.cpp",LINE_NUMBER);
} }
} }
switch(cart->type()) { switch(cart->type()) {
@@ -299,7 +299,7 @@ void Xport::EditCart()
value.stripWhiteSpace(); value.stripWhiteSpace();
if(value.right(1)!="!") { if(value.right(1)!="!") {
delete cart; delete cart;
XmlExit("Invalid macro data",400); XmlExit("Invalid macro data",400,"carts.cpp",LINE_NUMBER);
} }
macro+=value; macro+=value;
} }
@@ -403,17 +403,17 @@ void Xport::RemoveCart()
// Verify Post // Verify Post
// //
if(!xport_post->getValue("CART_NUMBER",&cart_number)) { if(!xport_post->getValue("CART_NUMBER",&cart_number)) {
XmlExit("Missing CART_NUMBER",400); XmlExit("Missing CART_NUMBER",400,"carts.cpp",LINE_NUMBER);
} }
// //
// Verify User Perms // Verify User Perms
// //
if(!xport_user->cartAuthorized(cart_number)) { if(!xport_user->cartAuthorized(cart_number)) {
XmlExit("No such cart",404); XmlExit("No such cart",404,"carts.cpp",LINE_NUMBER);
} }
if(!xport_user->deleteCarts()) { if(!xport_user->deleteCarts()) {
XmlExit("Unauthorized",404); XmlExit("Unauthorized",404,"carts.cpp",LINE_NUMBER);
} }
// //
@@ -422,14 +422,14 @@ void Xport::RemoveCart()
cart=new RDCart(cart_number); cart=new RDCart(cart_number);
if(!cart->exists()) { if(!cart->exists()) {
delete cart; delete cart;
XmlExit("No such cart",404); XmlExit("No such cart",404,"carts.cpp",LINE_NUMBER);
} }
if(!cart->remove(NULL,NULL,xport_config)) { if(!cart->remove(NULL,NULL,xport_config)) {
delete cart; delete cart;
XmlExit("Unable to delete cart",500); XmlExit("Unable to delete cart",500,"carts.cpp",LINE_NUMBER);
} }
delete cart; delete cart;
XmlExit("OK",200); XmlExit("OK",200,"carts.cpp",LINE_NUMBER);
} }

View File

@@ -42,30 +42,30 @@ void Xport::CopyAudio()
// //
int source_cartnum=0; int source_cartnum=0;
if(!xport_post->getValue("SOURCE_CART_NUMBER",&source_cartnum)) { if(!xport_post->getValue("SOURCE_CART_NUMBER",&source_cartnum)) {
XmlExit("Missing SOURCE_CART_NUMBER",400); XmlExit("Missing SOURCE_CART_NUMBER",400,"copyaudio.cpp",LINE_NUMBER);
} }
int source_cutnum=0; int source_cutnum=0;
if(!xport_post->getValue("SOURCE_CUT_NUMBER",&source_cutnum)) { if(!xport_post->getValue("SOURCE_CUT_NUMBER",&source_cutnum)) {
XmlExit("Missing SOURCE_CUT_NUMBER",400); XmlExit("Missing SOURCE_CUT_NUMBER",400,"copyaudio.cpp",LINE_NUMBER);
} }
int destination_cartnum=0; int destination_cartnum=0;
if(!xport_post->getValue("DESTINATION_CART_NUMBER",&destination_cartnum)) { if(!xport_post->getValue("DESTINATION_CART_NUMBER",&destination_cartnum)) {
XmlExit("Missing DESTINATION_CART_NUMBER",400); XmlExit("Missing DESTINATION_CART_NUMBER",400,"copyaudio.cpp",LINE_NUMBER);
} }
int destination_cutnum=0; int destination_cutnum=0;
if(!xport_post->getValue("DESTINATION_CUT_NUMBER",&destination_cutnum)) { if(!xport_post->getValue("DESTINATION_CUT_NUMBER",&destination_cutnum)) {
XmlExit("Missing DESTINATION_CUT_NUMBER",400); XmlExit("Missing DESTINATION_CUT_NUMBER",400,"copyaudio.cpp",LINE_NUMBER);
} }
// //
// Verify User Perms // Verify User Perms
// //
if(!xport_user->cartAuthorized(source_cartnum)) { if(!xport_user->cartAuthorized(source_cartnum)) {
XmlExit("No such cart",404); XmlExit("No such cart",404,"copyaudio.cpp",LINE_NUMBER);
} }
if(!xport_user->cartAuthorized(destination_cartnum)) { if(!xport_user->cartAuthorized(destination_cartnum)) {
XmlExit("No such cart",404); XmlExit("No such cart",404,"copyaudio.cpp",LINE_NUMBER);
} }
// //
@@ -75,8 +75,9 @@ void Xport::CopyAudio()
if(link(RDCut::pathName(source_cartnum,source_cutnum), if(link(RDCut::pathName(source_cartnum,source_cutnum),
RDCut::pathName(destination_cartnum,destination_cutnum))!=0) { RDCut::pathName(destination_cartnum,destination_cutnum))!=0) {
XmlExit("dst: "+RDCut::pathName(source_cartnum,source_cutnum)+" src: "+ XmlExit("dst: "+RDCut::pathName(source_cartnum,source_cutnum)+" src: "+
RDCut::pathName(destination_cartnum,destination_cutnum),400); RDCut::pathName(destination_cartnum,destination_cutnum),400,
XmlExit(strerror(errno),400); "copyaudio.cpp",LINE_NUMBER);
XmlExit(strerror(errno),400,"copyaudio.cpp",LINE_NUMBER);
} }
XmlExit("OK",200); XmlExit("OK",200,"copyaudio.cpp",LINE_NUMBER);
} }

View File

@@ -38,23 +38,23 @@ void Xport::DeleteAudio()
// //
int cartnum=0; int cartnum=0;
if(!xport_post->getValue("CART_NUMBER",&cartnum)) { if(!xport_post->getValue("CART_NUMBER",&cartnum)) {
XmlExit("Missing CART_NUMBER",400); XmlExit("Missing CART_NUMBER",400,"deleteaudio.cpp",LINE_NUMBER);
} }
int cutnum=0; int cutnum=0;
if(!xport_post->getValue("CUT_NUMBER",&cutnum)) { if(!xport_post->getValue("CUT_NUMBER",&cutnum)) {
XmlExit("Missing CUT_NUMBER",400); XmlExit("Missing CUT_NUMBER",400,"deleteaudio.cpp",LINE_NUMBER);
} }
// //
// Process Request // Process Request
// //
if((!xport_user->deleteCarts())&&(!xport_user->adminConfig())) { if((!xport_user->deleteCarts())&&(!xport_user->adminConfig())) {
XmlExit("User not authorized",404); XmlExit("User not authorized",404,"deleteaudio.cpp",LINE_NUMBER);
} }
RDCut *cut=new RDCut(cartnum,cutnum); RDCut *cut=new RDCut(cartnum,cutnum);
if(!cut->exists()) { if(!cut->exists()) {
delete cut; delete cut;
XmlExit("No such cut",404); XmlExit("No such cut",404,"deleteaudio.cpp",LINE_NUMBER);
} }
unlink(RDCut::pathName(cartnum,cutnum)); unlink(RDCut::pathName(cartnum,cutnum));
unlink(RDCut::pathName(cartnum,cutnum)+".energy"); unlink(RDCut::pathName(cartnum,cutnum)+".energy");
@@ -64,5 +64,5 @@ void Xport::DeleteAudio()
delete q; delete q;
syslog(LOG_NOTICE,"unlink(%s): %s",(const char *)RDCut::pathName(cartnum,cutnum),strerror(errno)); syslog(LOG_NOTICE,"unlink(%s): %s",(const char *)RDCut::pathName(cartnum,cutnum),strerror(errno));
delete cut; delete cut;
XmlExit("OK",200); XmlExit("OK",200,"deleteaudio.cpp",LINE_NUMBER);
} }

View File

@@ -43,60 +43,60 @@ void Xport::Export()
// //
int cartnum=0; int cartnum=0;
if(!xport_post->getValue("CART_NUMBER",&cartnum)) { if(!xport_post->getValue("CART_NUMBER",&cartnum)) {
XmlExit("Missing CART_NUMBER",400); XmlExit("Missing CART_NUMBER",400,"export.cpp",LINE_NUMBER);
} }
int cutnum=0; int cutnum=0;
if(!xport_post->getValue("CUT_NUMBER",&cutnum)) { if(!xport_post->getValue("CUT_NUMBER",&cutnum)) {
XmlExit("Missing CUT_NUMBER",400); XmlExit("Missing CUT_NUMBER",400,"export.cpp",LINE_NUMBER);
} }
int format=0; int format=0;
if(!xport_post->getValue("FORMAT",&format)) { if(!xport_post->getValue("FORMAT",&format)) {
XmlExit("Missing FORMAT",400); XmlExit("Missing FORMAT",400,"export.cpp",LINE_NUMBER);
} }
int channels=0; int channels=0;
if(!xport_post->getValue("CHANNELS",&channels)) { if(!xport_post->getValue("CHANNELS",&channels)) {
XmlExit("Missing CHANNELS",400); XmlExit("Missing CHANNELS",400,"export.cpp",LINE_NUMBER);
} }
int sample_rate=0; int sample_rate=0;
if(!xport_post->getValue("SAMPLE_RATE",&sample_rate)) { if(!xport_post->getValue("SAMPLE_RATE",&sample_rate)) {
XmlExit("Missing SAMPLE_RATE",400); XmlExit("Missing SAMPLE_RATE",400,"export.cpp",LINE_NUMBER);
} }
int bit_rate=0; int bit_rate=0;
if(!xport_post->getValue("BIT_RATE",&bit_rate)) { if(!xport_post->getValue("BIT_RATE",&bit_rate)) {
XmlExit("Missing BIT_RATE",400); XmlExit("Missing BIT_RATE",400,"export.cpp",LINE_NUMBER);
} }
int quality=0; int quality=0;
if(!xport_post->getValue("QUALITY",&quality)) { if(!xport_post->getValue("QUALITY",&quality)) {
XmlExit("Missing QUALITY",400); XmlExit("Missing QUALITY",400,"export.cpp",LINE_NUMBER);
} }
int start_point=-1; int start_point=-1;
if(!xport_post->getValue("START_POINT",&start_point)) { if(!xport_post->getValue("START_POINT",&start_point)) {
XmlExit("Missing START_POINT",400); XmlExit("Missing START_POINT",400,"export.cpp",LINE_NUMBER);
} }
int end_point=-1; int end_point=-1;
if(!xport_post->getValue("END_POINT",&end_point)) { if(!xport_post->getValue("END_POINT",&end_point)) {
XmlExit("Missing END_POINT",400); XmlExit("Missing END_POINT",400,"export.cpp",LINE_NUMBER);
} }
int normalization_level=0; int normalization_level=0;
if(!xport_post->getValue("NORMALIZATION_LEVEL",&normalization_level)) { if(!xport_post->getValue("NORMALIZATION_LEVEL",&normalization_level)) {
XmlExit("Missing NORMALIZATION_LEVEL",400); XmlExit("Missing NORMALIZATION_LEVEL",400,"export.cpp",LINE_NUMBER);
} }
int enable_metadata=false; int enable_metadata=false;
if(!xport_post->getValue("ENABLE_METADATA",&enable_metadata)) { if(!xport_post->getValue("ENABLE_METADATA",&enable_metadata)) {
XmlExit("Missing ENABLE_METADATA",400); XmlExit("Missing ENABLE_METADATA",400,"export.cpp",LINE_NUMBER);
} }
if(!RDCart::exists(cartnum)) { if(!RDCart::exists(cartnum)) {
XmlExit("No such cart",404); XmlExit("No such cart",404,"export.cpp",LINE_NUMBER);
} }
if(!RDCut::exists(cartnum,cutnum)) { if(!RDCut::exists(cartnum,cutnum)) {
XmlExit("No such cut",404); XmlExit("No such cut",404,"export.cpp",LINE_NUMBER);
} }
// //
// Verify User Perms // Verify User Perms
// //
if(!xport_user->cartAuthorized(cartnum)) { if(!xport_user->cartAuthorized(cartnum)) {
XmlExit("No such cart",404); XmlExit("No such cart",404,"export.cpp",LINE_NUMBER);
} }
// //
@@ -214,6 +214,7 @@ void Xport::Export()
Exit(200); Exit(200);
} }
else { else {
XmlExit(RDAudioConvert::errorText(conv_err),resp_code,conv_err); XmlExit(RDAudioConvert::errorText(conv_err),resp_code,"export.cpp",
LINE_NUMBER,conv_err);
} }
} }

View File

@@ -40,18 +40,18 @@ void Xport::ExportPeaks()
// //
int cartnum=0; int cartnum=0;
if(!xport_post->getValue("CART_NUMBER",&cartnum)) { if(!xport_post->getValue("CART_NUMBER",&cartnum)) {
XmlExit("Missing CART_NUMBER",400); XmlExit("Missing CART_NUMBER",400,"exportpeaks.cpp",LINE_NUMBER);
} }
int cutnum=0; int cutnum=0;
if(!xport_post->getValue("CUT_NUMBER",&cutnum)) { if(!xport_post->getValue("CUT_NUMBER",&cutnum)) {
XmlExit("Missing CUT_NUMBER",400); XmlExit("Missing CUT_NUMBER",400,"exportpeaks.cpp",LINE_NUMBER);
} }
// //
// Verify User Perms // Verify User Perms
// //
if(!xport_user->cartAuthorized(cartnum)) { if(!xport_user->cartAuthorized(cartnum)) {
XmlExit("No such cart",404); XmlExit("No such cart",404,"exportpeaks.cpp",LINE_NUMBER);
} }
// //
@@ -59,10 +59,10 @@ void Xport::ExportPeaks()
// //
RDWaveFile *wave=new RDWaveFile(RDCut::pathName(cartnum,cutnum)); RDWaveFile *wave=new RDWaveFile(RDCut::pathName(cartnum,cutnum));
if(!wave->openWave()) { if(!wave->openWave()) {
XmlExit("No such audio",404); XmlExit("No such audio",404,"exportpeaks.cpp",LINE_NUMBER);
} }
if(!wave->hasEnergy()) { if(!wave->hasEnergy()) {
XmlExit("No peak data available",400); XmlExit("No peak data available",400,"exportpeaks.cpp",LINE_NUMBER);
} }
// //

View File

@@ -77,7 +77,7 @@ void Xport::ListGroup()
// //
QString group_name; QString group_name;
if(!xport_post->getValue("GROUP_NAME",&group_name)) { if(!xport_post->getValue("GROUP_NAME",&group_name)) {
XmlExit("Missing GROUP_NAME",400); XmlExit("Missing GROUP_NAME",400,"groups.cpp",LINE_NUMBER);
} }
// //
@@ -90,7 +90,7 @@ void Xport::ListGroup()
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
if(!q->first()) { if(!q->first()) {
delete q; delete q;
XmlExit("No such group",404); XmlExit("No such group",404,"groups.cpp",LINE_NUMBER);
} }
// //

View File

@@ -46,27 +46,27 @@ void Xport::Import()
// //
int cartnum=0; int cartnum=0;
if(!xport_post->getValue("CART_NUMBER",&cartnum)) { if(!xport_post->getValue("CART_NUMBER",&cartnum)) {
XmlExit("Missing CART_NUMBER",400); XmlExit("Missing CART_NUMBER",400,"import.cpp",LINE_NUMBER);
} }
int cutnum=0; int cutnum=0;
if(!xport_post->getValue("CUT_NUMBER",&cutnum)) { if(!xport_post->getValue("CUT_NUMBER",&cutnum)) {
XmlExit("Missing CUT_NUMBER",400); XmlExit("Missing CUT_NUMBER",400,"import.cpp",LINE_NUMBER);
} }
int channels=0; int channels=0;
if(!xport_post->getValue("CHANNELS",&channels)) { if(!xport_post->getValue("CHANNELS",&channels)) {
XmlExit("Missing CHANNELS",400); XmlExit("Missing CHANNELS",400,"import.cpp",LINE_NUMBER);
} }
int normalization_level=0; int normalization_level=0;
if(!xport_post->getValue("NORMALIZATION_LEVEL",&normalization_level)) { if(!xport_post->getValue("NORMALIZATION_LEVEL",&normalization_level)) {
XmlExit("Missing NORMALIZATION_LEVEL",400); XmlExit("Missing NORMALIZATION_LEVEL",400,"import.cpp",LINE_NUMBER);
} }
int autotrim_level=0; int autotrim_level=0;
if(!xport_post->getValue("AUTOTRIM_LEVEL",&autotrim_level)) { if(!xport_post->getValue("AUTOTRIM_LEVEL",&autotrim_level)) {
XmlExit("Missing AUTOTRIM_LEVEL",400); XmlExit("Missing AUTOTRIM_LEVEL",400,"import.cpp",LINE_NUMBER);
} }
int use_metadata=0; int use_metadata=0;
if(!xport_post->getValue("USE_METADATA",&use_metadata)) { if(!xport_post->getValue("USE_METADATA",&use_metadata)) {
XmlExit("Missing USE_METADATA",400); XmlExit("Missing USE_METADATA",400,"import.cpp",LINE_NUMBER);
} }
int create=0; int create=0;
if(!xport_post->getValue("CREATE",&create)) { if(!xport_post->getValue("CREATE",&create)) {
@@ -76,10 +76,10 @@ void Xport::Import()
xport_post->getValue("GROUP_NAME",&group_name); xport_post->getValue("GROUP_NAME",&group_name);
QString filename; QString filename;
if(!xport_post->getValue("FILENAME",&filename)) { if(!xport_post->getValue("FILENAME",&filename)) {
XmlExit("Missing FILENAME",400); XmlExit("Missing FILENAME",400,"import.cpp",LINE_NUMBER);
} }
if(!xport_post->isFile("FILENAME")) { if(!xport_post->isFile("FILENAME")) {
XmlExit("Missing file data",400); XmlExit("Missing file data",400,"import.cpp",LINE_NUMBER);
} }
// //
@@ -87,24 +87,24 @@ void Xport::Import()
// //
if(RDCart::exists(cartnum)) { if(RDCart::exists(cartnum)) {
if(!xport_user->cartAuthorized(cartnum)) { if(!xport_user->cartAuthorized(cartnum)) {
XmlExit("No such cart",404); XmlExit("No such cart",404,"import.cpp",LINE_NUMBER);
} }
} }
else { else {
if(create) { if(create) {
if(!xport_user->groupAuthorized(group_name)) { if(!xport_user->groupAuthorized(group_name)) {
XmlExit("No such group",404); XmlExit("No such group",404,"import.cpp",LINE_NUMBER);
} }
} }
else { else {
XmlExit("No such cart",404); XmlExit("No such cart",404,"import.cpp",LINE_NUMBER);
} }
} }
if(!xport_user->editAudio()) { if(!xport_user->editAudio()) {
XmlExit("Forbidden",404); XmlExit("Forbidden",404,"import.cpp",LINE_NUMBER);
} }
if(create&&(!xport_user->createCarts())) { if(create&&(!xport_user->createCarts())) {
XmlExit("Forbidden",404); XmlExit("Forbidden",404,"import.cpp",LINE_NUMBER);
} }
// //
@@ -115,10 +115,10 @@ void Xport::Import()
if(cartnum==0) { if(cartnum==0) {
RDGroup *group=new RDGroup(group_name); RDGroup *group=new RDGroup(group_name);
if(!group->exists()) { if(!group->exists()) {
XmlExit("No such group",404); XmlExit("No such group",404,"import.cpp",LINE_NUMBER);
} }
if((cartnum=group->nextFreeCart())==0) { if((cartnum=group->nextFreeCart())==0) {
XmlExit("No available carts for specified group",404); XmlExit("No available carts for specified group",404,"import.cpp",LINE_NUMBER);
} }
cart=new RDCart(cartnum); cart=new RDCart(cartnum);
cart->create(group_name,RDCart::Audio); cart->create(group_name,RDCart::Audio);
@@ -131,10 +131,10 @@ void Xport::Import()
cut=new RDCut(cartnum,cutnum); cut=new RDCut(cartnum,cutnum);
} }
if(!RDCart::exists(cartnum)) { if(!RDCart::exists(cartnum)) {
XmlExit("No such cart",404); XmlExit("No such cart",404,"import.cpp",LINE_NUMBER);
} }
if(!RDCut::exists(cartnum,cutnum)) { if(!RDCut::exists(cartnum,cutnum)) {
XmlExit("No such cut",404); XmlExit("No such cut",404,"import.cpp",LINE_NUMBER);
} }
RDLibraryConf *conf=new RDLibraryConf(xport_config->stationName(),0); RDLibraryConf *conf=new RDLibraryConf(xport_config->stationName(),0);
RDSettings *settings=new RDSettings(); RDSettings *settings=new RDSettings();
@@ -158,7 +158,7 @@ void Xport::Import()
RDWaveFile *wave=new RDWaveFile(filename); RDWaveFile *wave=new RDWaveFile(filename);
if(!wave->openWave()) { if(!wave->openWave()) {
delete wave; delete wave;
XmlExit("Format Not Supported",415); XmlExit("Format Not Supported",415,"import.cpp",LINE_NUMBER);
} }
delete wave; delete wave;
RDAudioConvert *conv=new RDAudioConvert(xport_config->stationName()); RDAudioConvert *conv=new RDAudioConvert(xport_config->stationName());
@@ -174,7 +174,7 @@ void Xport::Import()
} }
else { else {
delete wave; delete wave;
XmlExit("Unable to access imported file",500); XmlExit("Unable to access imported file",500,"import.cpp",LINE_NUMBER);
} }
delete wave; delete wave;
cut->checkInRecording(xport_config->stationName(),settings,msecs); cut->checkInRecording(xport_config->stationName(),settings,msecs);
@@ -230,5 +230,6 @@ void Xport::Import()
rmdir(xport_post->tempDir()); rmdir(xport_post->tempDir());
exit(0); exit(0);
} }
XmlExit(RDAudioConvert::errorText(conv_err),resp_code,conv_err); XmlExit(RDAudioConvert::errorText(conv_err),resp_code,"import.cpp",
LINE_NUMBER,conv_err);
} }

View File

@@ -47,21 +47,21 @@ void Xport::AddLog()
// Get Arguments // Get Arguments
// //
if(!xport_post->getValue("LOG_NAME",&log_name)) { if(!xport_post->getValue("LOG_NAME",&log_name)) {
XmlExit("Missing LOG_NAME",400); XmlExit("Missing LOG_NAME",400,"logs.cpp",LINE_NUMBER);
} }
if(!xport_post->getValue("SERVICE_NAME",&service_name)) { if(!xport_post->getValue("SERVICE_NAME",&service_name)) {
XmlExit("Missing SERVICE_NAME",400); XmlExit("Missing SERVICE_NAME",400,"logs.cpp",LINE_NUMBER);
} }
RDSvc *svc=new RDSvc(service_name); RDSvc *svc=new RDSvc(service_name);
if(!svc->exists()) { if(!svc->exists()) {
XmlExit("No such service",404); XmlExit("No such service",404,"logs.cpp",LINE_NUMBER);
} }
// //
// Verify User Perms // Verify User Perms
// //
if(!xport_user->createLog()) { if(!xport_user->createLog()) {
XmlExit("Unauthorized",404); XmlExit("Unauthorized",404,"logs.cpp",LINE_NUMBER);
} }
RDLog *log=new RDLog(log_name); RDLog *log=new RDLog(log_name);
@@ -70,7 +70,7 @@ void Xport::AddLog()
log=new RDLog(log_name,true); log=new RDLog(log_name,true);
if(!log->exists()) { if(!log->exists()) {
delete log; delete log;
XmlExit("Unable to create log",500); XmlExit("Unable to create log",500,"logs.cpp",LINE_NUMBER);
} }
log->setOriginUser(xport_user->name()); log->setOriginUser(xport_user->name());
log->setDescription("[new log]"); log->setDescription("[new log]");
@@ -79,7 +79,7 @@ void Xport::AddLog()
delete log; delete log;
RDCreateLogTable(RDLog::tableName(log_name)); RDCreateLogTable(RDLog::tableName(log_name));
XmlExit("OK",200); XmlExit("OK",200,"logs.cpp",LINE_NUMBER);
} }
@@ -91,26 +91,26 @@ void Xport::DeleteLog()
// Get Arguments // Get Arguments
// //
if(!xport_post->getValue("LOG_NAME",&log_name)) { if(!xport_post->getValue("LOG_NAME",&log_name)) {
XmlExit("Missing LOG_NAME",400); XmlExit("Missing LOG_NAME",400,"logs.cpp",LINE_NUMBER);
} }
// //
// Verify User Perms // Verify User Perms
// //
if(!xport_user->deleteLog()) { if(!xport_user->deleteLog()) {
XmlExit("Unauthorized",404); XmlExit("Unauthorized",404,"logs.cpp",LINE_NUMBER);
} }
RDLog *log=new RDLog(log_name); RDLog *log=new RDLog(log_name);
if(log->exists()) { if(log->exists()) {
if(!log->remove(xport_station,xport_user,xport_config)) { if(!log->remove(xport_station,xport_user,xport_config)) {
delete log; delete log;
XmlExit("Unable to delete log",500); XmlExit("Unable to delete log",500,"logs.cpp",LINE_NUMBER);
} }
} }
delete log; delete log;
XmlExit("OK",200); XmlExit("OK",200,"logs.cpp",LINE_NUMBER);
} }
@@ -185,7 +185,7 @@ void Xport::ListLog()
log=new RDLog(name); log=new RDLog(name);
if(!log->exists()) { if(!log->exists()) {
delete log; delete log;
XmlExit("No such log",404); XmlExit("No such log",404,"logs.cpp",LINE_NUMBER);
} }
// //
@@ -212,7 +212,7 @@ void Xport::SaveLog()
// Verify User Perms // Verify User Perms
// //
if((!xport_user->addtoLog())||(!xport_user->removefromLog())||(!xport_user->arrangeLog())) { if((!xport_user->addtoLog())||(!xport_user->removefromLog())||(!xport_user->arrangeLog())) {
XmlExit("No user privilege",404); XmlExit("No user privilege",404,"logs.cpp",LINE_NUMBER);
} }
QString log_name; QString log_name;
@@ -228,28 +228,28 @@ void Xport::SaveLog()
// Header Data // Header Data
// //
if(!xport_post->getValue("LOG_NAME",&log_name)) { if(!xport_post->getValue("LOG_NAME",&log_name)) {
XmlExit("Missing LOG_NAME",400); XmlExit("Missing LOG_NAME",400,"logs.cpp",LINE_NUMBER);
} }
if(!xport_post->getValue("SERVICE_NAME",&service_name)) { if(!xport_post->getValue("SERVICE_NAME",&service_name)) {
XmlExit("Missing SERVICE_NAME",400); XmlExit("Missing SERVICE_NAME",400,"logs.cpp",LINE_NUMBER);
} }
if(!xport_post->getValue("DESCRIPTION",&description)) { if(!xport_post->getValue("DESCRIPTION",&description)) {
XmlExit("Missing DESCRIPTION",400); XmlExit("Missing DESCRIPTION",400,"logs.cpp",LINE_NUMBER);
} }
if(!xport_post->getValue("PURGE_DATE",&purge_date)) { if(!xport_post->getValue("PURGE_DATE",&purge_date)) {
XmlExit("Missing PURGE_DATE",400); XmlExit("Missing PURGE_DATE",400,"logs.cpp",LINE_NUMBER);
} }
if(!xport_post->getValue("AUTO_REFRESH",&auto_refresh)) { if(!xport_post->getValue("AUTO_REFRESH",&auto_refresh)) {
XmlExit("Missing AUTO_REFRESH",400); XmlExit("Missing AUTO_REFRESH",400,"logs.cpp",LINE_NUMBER);
} }
if(!xport_post->getValue("START_DATE",&start_date)) { if(!xport_post->getValue("START_DATE",&start_date)) {
XmlExit("Missing START_DATE",400); XmlExit("Missing START_DATE",400,"logs.cpp",LINE_NUMBER);
} }
if(!xport_post->getValue("END_DATE",&end_date)) { if(!xport_post->getValue("END_DATE",&end_date)) {
XmlExit("Missing END_DATE",400); XmlExit("Missing END_DATE",400,"logs.cpp",LINE_NUMBER);
} }
if(!xport_post->getValue("LINE_QUANTITY",&line_quantity)) { if(!xport_post->getValue("LINE_QUANTITY",&line_quantity)) {
XmlExit("Missing LINE_QUANTITY",400); XmlExit("Missing LINE_QUANTITY",400,"logs.cpp",LINE_NUMBER);
} }
// //
@@ -269,39 +269,39 @@ void Xport::SaveLog()
bool ok=false; bool ok=false;
if(!xport_post->getValue(line+"_ID",&integer1,&ok)) { if(!xport_post->getValue(line+"_ID",&integer1,&ok)) {
XmlExit("Missing "+line+"_ID",400); XmlExit("Missing "+line+"_ID",400,"logs.cpp",LINE_NUMBER);
} }
if(!ok) { if(!ok) {
XmlExit("Invalid "+line+"_ID",400); XmlExit("Invalid "+line+"_ID",400,"logs.cpp",LINE_NUMBER);
} }
ll->setId(integer1); ll->setId(integer1);
if(!xport_post->getValue(line+"_TYPE",&integer1)) { if(!xport_post->getValue(line+"_TYPE",&integer1)) {
XmlExit("Missing "+line+"_TYPE",400); XmlExit("Missing "+line+"_TYPE",400,"logs.cpp",LINE_NUMBER);
} }
ll->setType((RDLogLine::Type)integer1); ll->setType((RDLogLine::Type)integer1);
if(!xport_post->getValue(line+"_CART_NUMBER",&integer1)) { if(!xport_post->getValue(line+"_CART_NUMBER",&integer1)) {
XmlExit("Missing "+line+"_CART_NUMBER",400); XmlExit("Missing "+line+"_CART_NUMBER",400,"logs.cpp",LINE_NUMBER);
} }
ll->setCartNumber(integer1); ll->setCartNumber(integer1);
if(!xport_post->getValue(line+"_START_TIME",&integer1)) { if(!xport_post->getValue(line+"_START_TIME",&integer1)) {
XmlExit("Missing "+line+"_START_TIME",400); XmlExit("Missing "+line+"_START_TIME",400,"logs.cpp",LINE_NUMBER);
} }
if(!xport_post->getValue(line+"_TIME_TYPE",&integer2)) { if(!xport_post->getValue(line+"_TIME_TYPE",&integer2)) {
XmlExit("Missing "+line+"_TIME_TYPE",400); XmlExit("Missing "+line+"_TIME_TYPE",400,"logs.cpp",LINE_NUMBER);
} }
ll->setStartTime((RDLogLine::StartTimeType)integer2, ll->setStartTime((RDLogLine::StartTimeType)integer2,
QTime().addMSecs(integer1)); QTime().addMSecs(integer1));
if(!xport_post->getValue(line+"_GRACE_TIME",&integer1)) { if(!xport_post->getValue(line+"_GRACE_TIME",&integer1)) {
XmlExit("Missing "+line+"_GRACE_TIME",400); XmlExit("Missing "+line+"_GRACE_TIME",400,"logs.cpp",LINE_NUMBER);
} }
ll->setGraceTime(integer1); ll->setGraceTime(integer1);
if(!xport_post->getValue(line+"_TRANS_TYPE",&str)) { if(!xport_post->getValue(line+"_TRANS_TYPE",&str)) {
XmlExit("Missing "+line+"_TRANS_TYPE",400); XmlExit("Missing "+line+"_TRANS_TYPE",400,"logs.cpp",LINE_NUMBER);
} }
integer1=-1; integer1=-1;
if(str.lower()=="play") { if(str.lower()=="play") {
@@ -314,139 +314,140 @@ void Xport::SaveLog()
integer1=RDLogLine::Stop; integer1=RDLogLine::Stop;
} }
if(integer1<0) { if(integer1<0) {
XmlExit("Invalid transition type in "+line+"_TRANS_TYPE",400); XmlExit("Invalid transition type in "+line+"_TRANS_TYPE",400,
"logs.cpp",LINE_NUMBER);
} }
ll->setTransType((RDLogLine::TransType)integer1); ll->setTransType((RDLogLine::TransType)integer1);
if(!xport_post->getValue(line+"_START_POINT",&integer1)) { if(!xport_post->getValue(line+"_START_POINT",&integer1)) {
XmlExit("Missing "+line+"_START_POINT",400); XmlExit("Missing "+line+"_START_POINT",400,"logs.cpp",LINE_NUMBER);
} }
ll->setStartPoint(integer1,RDLogLine::LogPointer); ll->setStartPoint(integer1,RDLogLine::LogPointer);
if(!xport_post->getValue(line+"_END_POINT",&integer1)) { if(!xport_post->getValue(line+"_END_POINT",&integer1)) {
XmlExit("Missing "+line+"_END_POINT",400); XmlExit("Missing "+line+"_END_POINT",400,"logs.cpp",LINE_NUMBER);
} }
ll->setEndPoint(integer1,RDLogLine::LogPointer); ll->setEndPoint(integer1,RDLogLine::LogPointer);
if(!xport_post->getValue(line+"_SEGUE_START_POINT",&integer1)) { if(!xport_post->getValue(line+"_SEGUE_START_POINT",&integer1)) {
XmlExit("Missing "+line+"_SEGUE_START_POINT",400); XmlExit("Missing "+line+"_SEGUE_START_POINT",400,"logs.cpp",LINE_NUMBER);
} }
ll->setSegueStartPoint(integer1,RDLogLine::LogPointer); ll->setSegueStartPoint(integer1,RDLogLine::LogPointer);
if(!xport_post->getValue(line+"_SEGUE_END_POINT",&integer1)) { if(!xport_post->getValue(line+"_SEGUE_END_POINT",&integer1)) {
XmlExit("Missing "+line+"_SEGUE_END_POINT",400); XmlExit("Missing "+line+"_SEGUE_END_POINT",400,"logs.cpp",LINE_NUMBER);
} }
ll->setSegueEndPoint(integer1,RDLogLine::LogPointer); ll->setSegueEndPoint(integer1,RDLogLine::LogPointer);
if(!xport_post->getValue(line+"_FADEUP_POINT",&integer1)) { if(!xport_post->getValue(line+"_FADEUP_POINT",&integer1)) {
XmlExit("Missing "+line+"_FADEUP_POINT",400); XmlExit("Missing "+line+"_FADEUP_POINT",400,"logs.cpp",LINE_NUMBER);
} }
ll->setFadeupPoint(integer1,RDLogLine::LogPointer); ll->setFadeupPoint(integer1,RDLogLine::LogPointer);
if(!xport_post->getValue(line+"_FADEDOWN_POINT",&integer1)) { if(!xport_post->getValue(line+"_FADEDOWN_POINT",&integer1)) {
XmlExit("Missing "+line+"_FADEDOWN_POINT",400); XmlExit("Missing "+line+"_FADEDOWN_POINT",400,"logs.cpp",LINE_NUMBER);
} }
ll->setFadedownPoint(integer1,RDLogLine::LogPointer); ll->setFadedownPoint(integer1,RDLogLine::LogPointer);
if(!xport_post->getValue(line+"_DUCK_UP_GAIN",&integer1)) { if(!xport_post->getValue(line+"_DUCK_UP_GAIN",&integer1)) {
XmlExit("Missing "+line+"_DUCK_UP_GAIN",400); XmlExit("Missing "+line+"_DUCK_UP_GAIN",400,"logs.cpp",LINE_NUMBER);
} }
ll->setDuckUpGain(integer1); ll->setDuckUpGain(integer1);
if(!xport_post->getValue(line+"_DUCK_DOWN_GAIN",&integer1)) { if(!xport_post->getValue(line+"_DUCK_DOWN_GAIN",&integer1)) {
XmlExit("Missing "+line+"_DUCK_DOWN_GAIN",400); XmlExit("Missing "+line+"_DUCK_DOWN_GAIN",400,"logs.cpp",LINE_NUMBER);
} }
ll->setDuckDownGain(integer1); ll->setDuckDownGain(integer1);
if(!xport_post->getValue(line+"_COMMENT",&str)) { if(!xport_post->getValue(line+"_COMMENT",&str)) {
XmlExit("Missing "+line+"_COMMENT",400); XmlExit("Missing "+line+"_COMMENT",400,"logs.cpp",LINE_NUMBER);
} }
ll->setMarkerComment(str); ll->setMarkerComment(str);
if(!xport_post->getValue(line+"_LABEL",&str)) { if(!xport_post->getValue(line+"_LABEL",&str)) {
XmlExit("Missing "+line+"_LABEL",400); XmlExit("Missing "+line+"_LABEL",400,"logs.cpp",LINE_NUMBER);
} }
ll->setMarkerLabel(str); ll->setMarkerLabel(str);
if(!xport_post->getValue(line+"_ORIGIN_USER",&str)) { if(!xport_post->getValue(line+"_ORIGIN_USER",&str)) {
XmlExit("Missing "+line+"_ORIGIN_USER",400); XmlExit("Missing "+line+"_ORIGIN_USER",400,"logs.cpp",LINE_NUMBER);
} }
ll->setOriginUser(str); ll->setOriginUser(str);
if(!xport_post->getValue(line+"_ORIGIN_DATETIME",&datetime)) { if(!xport_post->getValue(line+"_ORIGIN_DATETIME",&datetime)) {
XmlExit("Missing "+line+"_ORIGIN_DATETIME",400); XmlExit("Missing "+line+"_ORIGIN_DATETIME",400,"logs.cpp",LINE_NUMBER);
} }
ll->setOriginDateTime(datetime); ll->setOriginDateTime(datetime);
if(!xport_post->getValue(line+"_EVENT_LENGTH",&integer1)) { if(!xport_post->getValue(line+"_EVENT_LENGTH",&integer1)) {
XmlExit("Missing "+line+"_EVENT_LENGTH",400); XmlExit("Missing "+line+"_EVENT_LENGTH",400,"logs.cpp",LINE_NUMBER);
} }
ll->setEventLength(integer1); ll->setEventLength(integer1);
if(!xport_post->getValue(line+"_LINK_EVENT_NAME",&str)) { if(!xport_post->getValue(line+"_LINK_EVENT_NAME",&str)) {
XmlExit("Missing "+line+"_LINK_EVENT_NAME",400); XmlExit("Missing "+line+"_LINK_EVENT_NAME",400,"logs.cpp",LINE_NUMBER);
} }
ll->setLinkEventName(str); ll->setLinkEventName(str);
if(!xport_post->getValue(line+"_LINK_START_TIME",&integer1)) { if(!xport_post->getValue(line+"_LINK_START_TIME",&integer1)) {
XmlExit("Missing "+line+"_LINK_START_TIME",400); XmlExit("Missing "+line+"_LINK_START_TIME",400,"logs.cpp",LINE_NUMBER);
} }
ll->setLinkStartTime(QTime().addMSecs(integer1)); ll->setLinkStartTime(QTime().addMSecs(integer1));
if(!xport_post->getValue(line+"_LINK_LENGTH",&integer1)) { if(!xport_post->getValue(line+"_LINK_LENGTH",&integer1)) {
XmlExit("Missing "+line+"_LINK_LENGTH",400); XmlExit("Missing "+line+"_LINK_LENGTH",400,"logs.cpp",LINE_NUMBER);
} }
ll->setLinkLength(integer1); ll->setLinkLength(integer1);
if(!xport_post->getValue(line+"_LINK_START_SLOP",&integer1)) { if(!xport_post->getValue(line+"_LINK_START_SLOP",&integer1)) {
XmlExit("Missing "+line+"_LINK_START_SLOP",400); XmlExit("Missing "+line+"_LINK_START_SLOP",400,"logs.cpp",LINE_NUMBER);
} }
ll->setLinkStartSlop(integer1); ll->setLinkStartSlop(integer1);
if(!xport_post->getValue(line+"_LINK_END_SLOP",&integer1)) { if(!xport_post->getValue(line+"_LINK_END_SLOP",&integer1)) {
XmlExit("Missing "+line+"_LINK_END_SLOP",400); XmlExit("Missing "+line+"_LINK_END_SLOP",400,"logs.cpp",LINE_NUMBER);
} }
ll->setLinkEndSlop(integer1); ll->setLinkEndSlop(integer1);
if(!xport_post->getValue(line+"_LINK_ID",&integer1)) { if(!xport_post->getValue(line+"_LINK_ID",&integer1)) {
XmlExit("Missing "+line+"_LINK_ID",400); XmlExit("Missing "+line+"_LINK_ID",400,"logs.cpp",LINE_NUMBER);
} }
ll->setLinkId(integer1); ll->setLinkId(integer1);
if(!xport_post->getValue(line+"_LINK_EMBEDDED",&state)) { if(!xport_post->getValue(line+"_LINK_EMBEDDED",&state)) {
XmlExit("Missing "+line+"_LINK_EMBEDDED",400); XmlExit("Missing "+line+"_LINK_EMBEDDED",400,"logs.cpp",LINE_NUMBER);
} }
ll->setLinkEmbedded(state); ll->setLinkEmbedded(state);
if(!xport_post->getValue(line+"_EXT_START_TIME",&time)) { if(!xport_post->getValue(line+"_EXT_START_TIME",&time)) {
XmlExit("Missing "+line+"_EXT_START_TIME",400); XmlExit("Missing "+line+"_EXT_START_TIME",400,"logs.cpp",LINE_NUMBER);
} }
ll->setExtStartTime(time); ll->setExtStartTime(time);
if(!xport_post->getValue(line+"_EXT_CART_NAME",&str)) { if(!xport_post->getValue(line+"_EXT_CART_NAME",&str)) {
XmlExit("Missing "+line+"_EXT_CART_NAME",400); XmlExit("Missing "+line+"_EXT_CART_NAME",400,"logs.cpp",LINE_NUMBER);
} }
ll->setExtCartName(str); ll->setExtCartName(str);
if(!xport_post->getValue(line+"_EXT_DATA",&str)) { if(!xport_post->getValue(line+"_EXT_DATA",&str)) {
XmlExit("Missing "+line+"_EXT_DATA",400); XmlExit("Missing "+line+"_EXT_DATA",400,"logs.cpp",LINE_NUMBER);
} }
ll->setExtData(str); ll->setExtData(str);
if(!xport_post->getValue(line+"_EXT_EVENT_ID",&str)) { if(!xport_post->getValue(line+"_EXT_EVENT_ID",&str)) {
XmlExit("Missing "+line+"_EXT_EVENT_ID",400); XmlExit("Missing "+line+"_EXT_EVENT_ID",400,"logs.cpp",LINE_NUMBER);
} }
ll->setExtEventId(str); ll->setExtEventId(str);
if(!xport_post->getValue(line+"_EXT_ANNC_TYPE",&str)) { if(!xport_post->getValue(line+"_EXT_ANNC_TYPE",&str)) {
XmlExit("Missing "+line+"_EXT_ANNC_TYPE",400); XmlExit("Missing "+line+"_EXT_ANNC_TYPE",400,"logs.cpp",LINE_NUMBER);
} }
ll->setExtAnncType(str); ll->setExtAnncType(str);
} }
RDLog *log=new RDLog(log_name); RDLog *log=new RDLog(log_name);
if(!log->exists()) { if(!log->exists()) {
XmlExit("No such log",404); XmlExit("No such log",404,"logs.cpp",LINE_NUMBER);
} }
log->setService(service_name); log->setService(service_name);
log->setDescription(description); log->setDescription(description);
@@ -457,5 +458,6 @@ void Xport::SaveLog()
logevt->save(); logevt->save();
XmlExit(QString().sprintf("OK Saved %d events",logevt->size()),200); XmlExit(QString().sprintf("OK Saved %d events",logevt->size()),
200,"logs.cpp",LINE_NUMBER);
} }

View File

@@ -56,13 +56,14 @@ Xport::Xport(QObject *parent)
// Drop root permissions // Drop root permissions
// //
if(setgid(xport_config->gid())<0) { if(setgid(xport_config->gid())<0) {
XmlExit("Unable to set Rivendell group",500); XmlExit("Unable to set Rivendell group",500,"rdxport.cpp",LINE_NUMBER);
} }
if(setuid(xport_config->uid())<0) { if(setuid(xport_config->uid())<0) {
XmlExit("Unable to set Rivendell user",500); XmlExit("Unable to set Rivendell user",500,"rdxport.cpp",LINE_NUMBER);
} }
if(getuid()==0) { if(getuid()==0) {
XmlExit("Rivendell user should never be \"root\"!",500); XmlExit("Rivendell user should never be \"root\"!",500,"rdxport.cpp",
LINE_NUMBER);
} }
// //
@@ -128,7 +129,8 @@ Xport::Xport(QObject *parent)
// //
xport_post=new RDFormPost(RDFormPost::AutoEncoded,false); xport_post=new RDFormPost(RDFormPost::AutoEncoded,false);
if(xport_post->error()!=RDFormPost::ErrorOk) { if(xport_post->error()!=RDFormPost::ErrorOk) {
XmlExit(xport_post->errorString(xport_post->error()),400); XmlExit(xport_post->errorString(xport_post->error()),400,"rdxport.cpp",
LINE_NUMBER);
Exit(0); Exit(0);
} }
@@ -136,7 +138,7 @@ Xport::Xport(QObject *parent)
// Authenticate Connection // Authenticate Connection
// //
if(!Authenticate()) { if(!Authenticate()) {
XmlExit("Invalid User",403); XmlExit("Invalid User",403,"rdxport.cpp",LINE_NUMBER);
} }
// //
@@ -397,12 +399,23 @@ void Xport::Exit(int code)
} }
void Xport::XmlExit(const QString &str,int code,RDAudioConvert::ErrorCode err) void Xport::XmlExit(const QString &str,int code,const QString &srcfile,
int srcline,RDAudioConvert::ErrorCode err)
{ {
if(xport_post!=NULL) { if(xport_post!=NULL) {
delete xport_post; delete xport_post;
} }
#ifdef RDXPORT_DEBUG
if(srcline>0) {
RDXMLResult(str+"\""+srcfile+"\" "+QString().sprintf("line %d",srcline),
code,err);
}
else {
RDXMLResult(str,code,err);
}
#else
RDXMLResult(str,code,err); RDXMLResult(str,code,err);
#endif // RDXPORT_DEBUG
exit(0); exit(0);
} }

View File

@@ -31,6 +31,10 @@
#include <rdsystem.h> #include <rdsystem.h>
#include <rduser.h> #include <rduser.h>
#define STRINGIZE(x) STRINGIZE2(x)
#define STRINGIZE2(x) #x
#define LINE_NUMBER QString(STRINGIZE(__LINE__)).toInt()
class Xport : public QObject class Xport : public QObject
{ {
public: public:
@@ -73,7 +77,8 @@ class Xport : public QObject
void ListCartSchedCodes(); void ListCartSchedCodes();
void ListServices(); void ListServices();
void Exit(int code); void Exit(int code);
void XmlExit(const QString &str,int code, void XmlExit(const QString &msg,int code,
const QString &srcfile="",int line=-1,
RDAudioConvert::ErrorCode err=RDAudioConvert::ErrorOk); RDAudioConvert::ErrorCode err=RDAudioConvert::ErrorOk);
RDFormPost *xport_post; RDFormPost *xport_post;
RDUser *xport_user; RDUser *xport_user;

View File

@@ -45,10 +45,10 @@ void Xport::Rehash()
// Verify Post // Verify Post
// //
if(!xport_post->getValue("CART_NUMBER",&cart_number)) { if(!xport_post->getValue("CART_NUMBER",&cart_number)) {
XmlExit("Missing CART_NUMBER",400); XmlExit("Missing CART_NUMBER",400,"rdhash.cpp",LINE_NUMBER);
} }
if(!xport_post->getValue("CUT_NUMBER",&cut_number)) { if(!xport_post->getValue("CUT_NUMBER",&cut_number)) {
XmlExit("Missing CUT_NUMBER",400); XmlExit("Missing CUT_NUMBER",400,"rdhash.cpp",LINE_NUMBER);
} }
// //
@@ -57,9 +57,9 @@ void Xport::Rehash()
RDCut *cut=new RDCut(cart_number,cut_number); RDCut *cut=new RDCut(cart_number,cut_number);
if(!cut->exists()) { if(!cut->exists()) {
delete cut; delete cut;
XmlExit("No such cut",404); XmlExit("No such cut",404,"rdhash.cpp",LINE_NUMBER);
} }
cut->setSha1Hash(RDSha1Hash(RDCut::pathName(cart_number,cut_number))); cut->setSha1Hash(RDSha1Hash(RDCut::pathName(cart_number,cut_number)));
delete cut; delete cut;
XmlExit("OK",200); XmlExit("OK",200,"rdhash.cpp",LINE_NUMBER);
} }

View File

@@ -68,17 +68,17 @@ void Xport::AssignSchedCode()
// Verify Post // Verify Post
// //
if(!xport_post->getValue("CART_NUMBER",&cart_number)) { if(!xport_post->getValue("CART_NUMBER",&cart_number)) {
XmlExit("Missing CART_NUMBER",400); XmlExit("Missing CART_NUMBER",400,"schedcodes.cpp",LINE_NUMBER);
} }
if(!xport_post->getValue("CODE",&sched_code)) { if(!xport_post->getValue("CODE",&sched_code)) {
XmlExit("Missing CODE",400); XmlExit("Missing CODE",400,"schedcodes.cpp",LINE_NUMBER);
} }
// //
// Verify User Perms // Verify User Perms
// //
if(!xport_user->cartAuthorized(cart_number)) { if(!xport_user->cartAuthorized(cart_number)) {
XmlExit("No such cart",404); XmlExit("No such cart",404,"schedcodes.cpp",LINE_NUMBER);
} }
// //
@@ -87,17 +87,17 @@ void Xport::AssignSchedCode()
cart=new RDCart(cart_number); cart=new RDCart(cart_number);
code=new RDSchedCode(sched_code); code=new RDSchedCode(sched_code);
if(!code->exists()) { if(!code->exists()) {
XmlExit("No such scheduler code",404); XmlExit("No such scheduler code",404,"schedcodes.cpp",LINE_NUMBER);
} }
codes=cart->schedCodesList(); codes=cart->schedCodesList();
for(unsigned i=0;i<codes.size();i++) { for(unsigned i=0;i<codes.size();i++) {
if(codes[i]==sched_code) { if(codes[i]==sched_code) {
delete cart; delete cart;
XmlExit("OK",200); XmlExit("OK",200,"schedcodes.cpp",LINE_NUMBER);
} }
} }
cart->addSchedCode(sched_code); cart->addSchedCode(sched_code);
XmlExit("OK",200); XmlExit("OK",200,"schedcodes.cpp",LINE_NUMBER);
} }
@@ -113,17 +113,17 @@ void Xport::UnassignSchedCode()
// Verify Post // Verify Post
// //
if(!xport_post->getValue("CART_NUMBER",&cart_number)) { if(!xport_post->getValue("CART_NUMBER",&cart_number)) {
XmlExit("Missing CART_NUMBER",400); XmlExit("Missing CART_NUMBER",400,"schedcodes.cpp",LINE_NUMBER);
} }
if(!xport_post->getValue("CODE",&sched_code)) { if(!xport_post->getValue("CODE",&sched_code)) {
XmlExit("Missing CODE",400); XmlExit("Missing CODE",400,"schedcodes.cpp",LINE_NUMBER);
} }
// //
// Verify User Perms // Verify User Perms
// //
if(!xport_user->cartAuthorized(cart_number)) { if(!xport_user->cartAuthorized(cart_number)) {
XmlExit("No such cart",404); XmlExit("No such cart",404,"schedcodes.cpp",LINE_NUMBER);
} }
// //
@@ -132,12 +132,12 @@ void Xport::UnassignSchedCode()
cart=new RDCart(cart_number); cart=new RDCart(cart_number);
code=new RDSchedCode(sched_code); code=new RDSchedCode(sched_code);
if(!code->exists()) { if(!code->exists()) {
XmlExit("No such scheduler code",404); XmlExit("No such scheduler code",404,"schedcodes.cpp",LINE_NUMBER);
} }
cart->removeSchedCode(sched_code); cart->removeSchedCode(sched_code);
delete cart; delete cart;
delete code; delete code;
XmlExit("OK",200); XmlExit("OK",200,"schedcodes.cpp",LINE_NUMBER);
} }
@@ -152,14 +152,14 @@ void Xport::ListCartSchedCodes()
// Verify Post // Verify Post
// //
if(!xport_post->getValue("CART_NUMBER",&cart_number)) { if(!xport_post->getValue("CART_NUMBER",&cart_number)) {
XmlExit("Missing CART_NUMBER",400); XmlExit("Missing CART_NUMBER",400,"schedcodes.cpp",LINE_NUMBER);
} }
// //
// Verify User Perms // Verify User Perms
// //
if(!xport_user->cartAuthorized(cart_number)) { if(!xport_user->cartAuthorized(cart_number)) {
XmlExit("No such cart",404); XmlExit("No such cart",404,"schedcodes.cpp",LINE_NUMBER);
} }
// //
// Generate Scheduler Code List // Generate Scheduler Code List

View File

@@ -42,23 +42,23 @@ void Xport::TrimAudio()
// //
int cartnum=0; int cartnum=0;
if(!xport_post->getValue("CART_NUMBER",&cartnum)) { if(!xport_post->getValue("CART_NUMBER",&cartnum)) {
XmlExit("Missing CART_NUMBER",400); XmlExit("Missing CART_NUMBER",400,"trimaudio.cpp",LINE_NUMBER);
} }
int cutnum=0; int cutnum=0;
if(!xport_post->getValue("CUT_NUMBER",&cutnum)) { if(!xport_post->getValue("CUT_NUMBER",&cutnum)) {
XmlExit("Missing CUT_NUMBER",400); XmlExit("Missing CUT_NUMBER",400,"trimaudio.cpp",LINE_NUMBER);
} }
int trim_level=0; int trim_level=0;
if(!xport_post->getValue("TRIM_LEVEL",&trim_level)) { if(!xport_post->getValue("TRIM_LEVEL",&trim_level)) {
XmlExit("Missing TRIM_LEVEL",400); XmlExit("Missing TRIM_LEVEL",400,"trimaudio.cpp",LINE_NUMBER);
} }
// //
// Verify User Perms // Verify User Perms
// //
if(!xport_user->cartAuthorized(cartnum)) { if(!xport_user->cartAuthorized(cartnum)) {
XmlExit("No such cart",404); XmlExit("No such cart",404,"trimaudio.cpp",LINE_NUMBER);
} }
// //
@@ -66,10 +66,10 @@ void Xport::TrimAudio()
// //
RDWaveFile *wave=new RDWaveFile(RDCut::pathName(cartnum,cutnum)); RDWaveFile *wave=new RDWaveFile(RDCut::pathName(cartnum,cutnum));
if(!wave->openWave()) { if(!wave->openWave()) {
XmlExit("No such audio",404); XmlExit("No such audio",404,"trimaudio.cpp",LINE_NUMBER);
} }
if(!wave->hasEnergy()) { if(!wave->hasEnergy()) {
XmlExit("No peak data available",400); XmlExit("No peak data available",400,"trimaudio.cpp",LINE_NUMBER);
} }
// //