mirror of
				https://github.com/ElvishArtisan/rivendell.git
				synced 2025-10-31 22:24:02 +01:00 
			
		
		
		
	2017-04-20 Fred Gleason <fredg@paravelsystems.com>
* Added a '--enable-rdxport-debug' switch to 'configure.ac'.
This commit is contained in:
		| @@ -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'. | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								configure.ac
									
									
									
									
									
								
							| @@ -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 | ||||||
| # | # | ||||||
|   | |||||||
| @@ -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"); | ||||||
|   | |||||||
| @@ -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"); | ||||||
|   | |||||||
| @@ -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); | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -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); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -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); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -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); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   // |   // | ||||||
|   | |||||||
| @@ -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); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   // |   // | ||||||
|   | |||||||
| @@ -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); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -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); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -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); | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -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; | ||||||
|   | |||||||
| @@ -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); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
| @@ -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); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   // |   // | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user