try all bootstrap nodes until successfully joined
This commit is contained in:
		
							parent
							
								
									702684b1a9
								
							
						
					
					
						commit
						b1c5c5e5f4
					
				
					 1 changed files with 10 additions and 2 deletions
				
			
		|  | @ -17,12 +17,20 @@ main = do | |||
|     print serverSock | ||||
|     -- currently no masking is necessary, as there is nothing to clean up | ||||
|     cacheWriterThread <- forkIO $ cacheWriter thisNode | ||||
|     -- idea: list of bootstrapping nodes, try joining within a timeout | ||||
|     joinedState <- fediChordBootstrapJoin thisNode $ head . confBootstrapNodes $ conf | ||||
|     -- try joining the DHT using one of the provided bootstrapping nodes | ||||
|     let | ||||
|         tryJoining (bn:bns) = do | ||||
|             j <- fediChordBootstrapJoin thisNode bn | ||||
|             case j of | ||||
|               Left _ -> tryJoining bns | ||||
|               Right joined -> pure $ Right joined | ||||
|         tryJoining [] = pure $ Left "Exhausted all bootstrap points for joining." | ||||
|     joinedState <- tryJoining $ confBootstrapNodes conf | ||||
|     -- stop main thread from terminating during development | ||||
|     getChar | ||||
|     pure () | ||||
| 
 | ||||
| 
 | ||||
| readConfig :: IO FediChordConf | ||||
| readConfig = do | ||||
|     confDomainString : ipString : portString : bootstrapHost : bootstrapPortString : _ <- getArgs | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue