nix-daemon: Simplify stderr handling
This commit is contained in:
		
							parent
							
								
									78224cd871
								
							
						
					
					
						commit
						d0fad1779f
					
				
					 2 changed files with 2 additions and 7 deletions
				
			
		|  | @ -850,6 +850,7 @@ pid_t startProcess(std::function<void()> fun, const string & errorPrefix) | |||
|     if (pid == -1) throw SysError("unable to fork"); | ||||
| 
 | ||||
|     if (pid == 0) { | ||||
|         _writeToStderr = defaultWriteToStderr; | ||||
|         try { | ||||
|             restoreAffinity(); | ||||
|             fun(); | ||||
|  |  | |||
|  | @ -29,7 +29,6 @@ static FdSource from(STDIN_FILENO); | |||
| static FdSink to(STDOUT_FILENO); | ||||
| 
 | ||||
| bool canSendStderr; | ||||
| pid_t myPid; | ||||
| 
 | ||||
| 
 | ||||
| /* This function is called anytime we want to write something to
 | ||||
|  | @ -38,11 +37,7 @@ pid_t myPid; | |||
|    socket. */ | ||||
| static void tunnelStderr(const unsigned char * buf, size_t count) | ||||
| { | ||||
|     /* Don't send the message to the client if we're a child of the
 | ||||
|        process handling the connection.  Otherwise we could screw up | ||||
|        the protocol.  It's up to the parent to redirect stderr and | ||||
|        send it to the client somehow (e.g., as in build.cc). */ | ||||
|     if (canSendStderr && myPid == getpid()) { | ||||
|     if (canSendStderr) { | ||||
|         try { | ||||
|             writeInt(STDERR_NEXT, to); | ||||
|             writeString(buf, count, to); | ||||
|  | @ -533,7 +528,6 @@ static void processConnection(bool trusted) | |||
|     MonitorFdHup monitor(from.fd); | ||||
| 
 | ||||
|     canSendStderr = false; | ||||
|     myPid = getpid(); | ||||
|     _writeToStderr = tunnelStderr; | ||||
| 
 | ||||
|     /* Exchange the greeting. */ | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue