whisper: refactoring go-routines
This commit is contained in:
		
							parent
							
								
									0b814d32f8
								
							
						
					
					
						commit
						61a061c9b4
					
				| @ -110,6 +110,7 @@ func main() { | ||||
| 	processArgs() | ||||
| 	initialize() | ||||
| 	run() | ||||
| 	shutdown() | ||||
| } | ||||
| 
 | ||||
| func processArgs() { | ||||
| @ -209,21 +210,6 @@ func initialize() { | ||||
| 		MinimumAcceptedPOW: *argPoW, | ||||
| 	} | ||||
| 
 | ||||
| 	if *mailServerMode { | ||||
| 		if len(msPassword) == 0 { | ||||
| 			msPassword, err = console.Stdin.PromptPassword("Please enter the Mail Server password: ") | ||||
| 			if err != nil { | ||||
| 				utils.Fatalf("Failed to read Mail Server password: %s", err) | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		shh = whisper.New(cfg) | ||||
| 		shh.RegisterServer(&mailServer) | ||||
| 		mailServer.Init(shh, *argDBPath, msPassword, *argServerPoW) | ||||
| 	} else { | ||||
| 		shh = whisper.New(cfg) | ||||
| 	} | ||||
| 
 | ||||
| 	if *argPoW != whisper.DefaultMinimumPoW { | ||||
| 		err := shh.SetMinimumPoW(*argPoW) | ||||
| 		if err != nil { | ||||
| @ -265,6 +251,26 @@ func initialize() { | ||||
| 		maxPeers = 800 | ||||
| 	} | ||||
| 
 | ||||
| 	_, err = crand.Read(entropy[:]) | ||||
| 	if err != nil { | ||||
| 		utils.Fatalf("crypto/rand failed: %s", err) | ||||
| 	} | ||||
| 
 | ||||
| 	if *mailServerMode { | ||||
| 		if len(msPassword) == 0 { | ||||
| 			msPassword, err = console.Stdin.PromptPassword("Please enter the Mail Server password: ") | ||||
| 			if err != nil { | ||||
| 				utils.Fatalf("Failed to read Mail Server password: %s", err) | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		shh = whisper.New(cfg) | ||||
| 		shh.RegisterServer(&mailServer) | ||||
| 		mailServer.Init(shh, *argDBPath, msPassword, *argServerPoW) | ||||
| 	} else { | ||||
| 		shh = whisper.New(cfg) | ||||
| 	} | ||||
| 
 | ||||
| 	server = &p2p.Server{ | ||||
| 		Config: p2p.Config{ | ||||
| 			PrivateKey:     nodeid, | ||||
| @ -278,17 +284,13 @@ func initialize() { | ||||
| 			TrustedNodes:   peers, | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	_, err = crand.Read(entropy[:]) | ||||
| 	if err != nil { | ||||
| 		utils.Fatalf("crypto/rand failed: %s", err) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func startServer() { | ||||
| func startServer() error { | ||||
| 	err := server.Start() | ||||
| 	if err != nil { | ||||
| 		utils.Fatalf("Failed to start Whisper peer: %s.", err) | ||||
| 		fmt.Printf("Failed to start Whisper peer: %s.", err) | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	fmt.Printf("my public key: %s \n", common.ToHex(crypto.FromECDSAPub(&asymKey.PublicKey))) | ||||
| @ -307,6 +309,7 @@ func startServer() { | ||||
| 	if !*forwarderMode { | ||||
| 		fmt.Printf("Please type the message. To quit type: '%s'\n", quitCommand) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func isKeyValid(k *ecdsa.PublicKey) bool { | ||||
| @ -420,8 +423,10 @@ func waitForConnection(timeout bool) { | ||||
| } | ||||
| 
 | ||||
| func run() { | ||||
| 	defer mailServer.Close() | ||||
| 	startServer() | ||||
| 	err := startServer() | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	defer server.Stop() | ||||
| 	shh.Start(nil) | ||||
| 	defer shh.Stop() | ||||
| @ -439,8 +444,11 @@ func run() { | ||||
| 	} else { | ||||
| 		sendLoop() | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func shutdown() { | ||||
| 	close(done) | ||||
| 	mailServer.Close() | ||||
| } | ||||
| 
 | ||||
| func sendLoop() { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user