* Pass various options to the worker so that flags like -K or -j work
in multi-user Nix (NIX-72). * Client/worker: exchange a protocol version number for future compatibility.
This commit is contained in:
		
							parent
							
								
									26f981c2e5
								
							
						
					
					
						commit
						f3441e6122
					
				
					 5 changed files with 49 additions and 7 deletions
				
			
		|  | @ -414,6 +414,19 @@ static void performOp(Source & from, Sink & to, unsigned int op) | |||
|          | ||||
|         break; | ||||
|     } | ||||
| 
 | ||||
|     case wopSetOptions: { | ||||
|         keepFailed = readInt(from) != 0; | ||||
|         keepGoing = readInt(from) != 0; | ||||
|         tryFallback = readInt(from) != 0; | ||||
|         verbosity = (Verbosity) readInt(from); | ||||
|         maxBuildJobs = readInt(from); | ||||
|         maxSilentTime = readInt(from); | ||||
|         startWork(); | ||||
|         stopWork(); | ||||
|         break; | ||||
|     } | ||||
|              | ||||
|              | ||||
|     default: | ||||
|         throw Error(format("invalid operation %1%") % op); | ||||
|  | @ -437,14 +450,19 @@ static void processConnection() | |||
|     /* Exchange the greeting. */ | ||||
|     unsigned int magic = readInt(from); | ||||
|     if (magic != WORKER_MAGIC_1) throw Error("protocol mismatch"); | ||||
|     verbosity = (Verbosity) readInt(from); | ||||
|     writeInt(WORKER_MAGIC_2, to); | ||||
| 
 | ||||
|     writeInt(PROTOCOL_VERSION, to); | ||||
|     unsigned int clientVersion = readInt(from); | ||||
| 
 | ||||
|     /* Send startup error messages to the client. */ | ||||
|     startWork(); | ||||
| 
 | ||||
|     try { | ||||
| 
 | ||||
|         /* If we can't accept clientVersion, then throw an error
 | ||||
|            *here* (not above). */ | ||||
| 
 | ||||
|         /* Prevent users from doing something very dangerous. */ | ||||
|         if (geteuid() == 0 && | ||||
|             querySetting("build-users-group", "") == "") | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue