mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Now using cPipe instead of popen() in cCommand::Execute()
This commit is contained in:
		@@ -1114,6 +1114,8 @@ Reinhard Nissl <rnissl@gmx.de>
 | 
			
		||||
 for changing the behaviour when hitting the end of a recording in fast forward mode
 | 
			
		||||
 for suggesting to give the cRemote::CallPlugin() function a boolean return value
 | 
			
		||||
 for fixing a possible crash in remux.c on 64-bit machines
 | 
			
		||||
 for making cCommand::Execute() use cPipe instead of popen() to avoid problems
 | 
			
		||||
 with open file handles when starting background commands
 | 
			
		||||
 | 
			
		||||
Richard Robson <richard_robson@beeb.net>
 | 
			
		||||
 for reporting freezing replay if a timer starts while in Transfer Mode from the
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								HISTORY
									
									
									
									
									
								
							@@ -5032,3 +5032,6 @@ Video Disk Recorder Revision History
 | 
			
		||||
2007-01-26: Version 1.4.5-1
 | 
			
		||||
 | 
			
		||||
- Fixed i18n characters for the Hungarian texts (thanks to Thomas G<>nther).
 | 
			
		||||
- Now using cPipe instead of popen() in cCommand::Execute() to avoid problems
 | 
			
		||||
  with open file handles when starting background commands (thanks to Reinhard
 | 
			
		||||
  Nissl).
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								config.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								config.c
									
									
									
									
									
								
							@@ -4,7 +4,7 @@
 | 
			
		||||
 * See the main source file 'vdr.c' for copyright information and
 | 
			
		||||
 * how to reach the author.
 | 
			
		||||
 *
 | 
			
		||||
 * $Id: config.c 1.146 2006/07/22 11:57:51 kls Exp $
 | 
			
		||||
 * $Id: config.c 1.146.1.1 2007/01/26 13:32:19 kls Exp $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "config.h"
 | 
			
		||||
@@ -67,8 +67,8 @@ const char *cCommand::Execute(const char *Parameters)
 | 
			
		||||
     asprintf(&cmdbuf, "%s %s", command, Parameters);
 | 
			
		||||
  const char *cmd = cmdbuf ? cmdbuf : command;
 | 
			
		||||
  dsyslog("executing command '%s'", cmd);
 | 
			
		||||
  FILE *p = popen(cmd, "r");
 | 
			
		||||
  if (p) {
 | 
			
		||||
  cPipe p;
 | 
			
		||||
  if (p.Open(cmd, "r")) {
 | 
			
		||||
     int l = 0;
 | 
			
		||||
     int c;
 | 
			
		||||
     while ((c = fgetc(p)) != EOF) {
 | 
			
		||||
@@ -78,7 +78,7 @@ const char *cCommand::Execute(const char *Parameters)
 | 
			
		||||
           }
 | 
			
		||||
     if (result)
 | 
			
		||||
        result[l] = 0;
 | 
			
		||||
     pclose(p);
 | 
			
		||||
     p.Close();
 | 
			
		||||
     }
 | 
			
		||||
  else
 | 
			
		||||
     esyslog("ERROR: can't open pipe for command '%s'", cmd);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user