Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* ************************************************************************
  #
  #  DivConq
  #
  #  http://divconq.com/
  #
  #  Copyright:
  #    Copyright 2014 eTimeline, LLC. All rights reserved.
  #
 #  License:
 #    See the license.txt file in the project's top-level directory for details.
 #
 #  Authors:
 #    * Andy White
 #
 ************************************************************************ */
 package divconq.tool.bus;
 
 
 
ONLY works with local session, does not work with remote sessions
 
 public class Diagnostic implements ILocalCommandLine {
 	public void run(final Scanner scanfinal ApiSession api) {
 		HashMap<StringSocketInfolisteners = new HashMap<>();
 		HashMap<StringSocketInfoconnectors = new HashMap<>();
 		boolean running = true;
 		
 		/*
 		System.setProperty("javax.net.debug", "ssl:handshake");
 		
 		for (Object env : System.getProperties().keySet())
 			System.out.println(">> " + env + " = " + System.getProperty(env + ""));
 			*/
 		
 		while(running) {
 			try {
 				..println("-----------------------------------------------");
 				..println("   dcBackend Utilities");
 				..println("-----------------------------------------------");
 				..println("0)  Exit");
 				..println("1)  List Available Protocols and Suites");
 				..println("2)  List Enabled Protocols and Suites");
 				..println("3)  Set Protocols and Suites");
 				..println("4)  Add Listener");
 				//System.out.println("5)  Remove Listener");
 				..println("6)  Add Connector");
 				//System.out.println("7)  Remove Connector");
 				..println("9)  Echo Hub");
 				
 				/*
 				System.out.println("3)  Bus Status");
 				System.out.println("4)  Tickle Hub");
 				System.out.println("8)  Encrypt/Util");
 				System.out.println("9)  Initiate Upload");
 				System.out.println("10) Initiate Download");
 				System.out.println("12) Verify Self");
 				*/
 
 				String opt = scan.nextLine();
 				
 				Long mopt = StringUtil.parseInt(opt);
 				
 				if (mopt == null)
 					continue;
 				
 				switch (mopt.intValue()) {
 				case 0:
 					running = false;
 					break;
 					
 				case 1: {
 					..println("Available Protocols: ");
 					
 					SSLEngine engine = SslContextFactory.getClientEngine();
 					
 			        for (String p : engine.getSupportedProtocols())
 			        	..println(" - " + p);
 			        
 			        ..println();
 			        
 					..println("Available Suites: ");
			        for (String p : engine.getSupportedCipherSuites())
			        	..println(" - " + p);
			        
			        ..println();
			        break;
				}
				case 3: {
					..println("Enter Protocols to enable in a comma list - prot1,prot2,etc ");
					String protos = scan.nextLine();
			        ..println();
			        
					..println("Enter Suites to enable in a comma list - suite1,suite2,etc ");
					String suites = scan.nextLine();
			        
					XElement hel = conf.find("Harden");
					if (hel == null) {
						hel = new XElement("Harden");
						conf.add(hel);
					}
			        
					XElement tls = conf.find("TLS");
					if (tls == null) {
						tls = new XElement("TLS");
						hel.add(tls);
					}
					tls.setAttribute("Mode""Custom");
					tls.setAttribute("Protocols"protos);
					tls.setAttribute("Suites"suites);
			        ..println();
				}
				case 2: {
					..println("Enabled Protocols: ");
					SSLEngine engine = SslContextFactory.getClientEngine();
			        for (String p : engine.getEnabledProtocols())
			        	..println(" - " + p);
			        
			        ..println();
			        
					..println("Enabled Suites: ");
			        for (String p : engine.getEnabledCipherSuites())
			        	..println(" - " + p);
			        
			        ..println();
			        
			        break;
				}
				case 4: {
					..println("Add port: ");
					String port = scan.nextLine();
					if (listeners.containsKey(port))
						..println("already listening");
					else {
						SocketInfo info = SocketInfo.buildAll((int)StringUtil.parseInt(port, 0), true);
						if (info.getPort() == 0)
							..println("bad port");
						else {
							listeners.put(portinfo);
							..println("listener added");
						}
					}
			        break;
				}
				case 5: {
					..println("Remove port: ");
					String port = scan.nextLine();
					if (!listeners.containsKey(port))
						..println("not listening to that port");
					else {
						SocketInfo info = listeners.remove(port);
						if (info == null)
							..println("bad port");
						else {
							..println("listener removed");
						}
					}
			        break;
				}
				/*
				case 3: {
					Hub.instance.getBus().dumpInfo();					
					break;
				}
				case 4: {
					System.out.println("To Hub: ");
					String to = scan.nextLine();
					Message msg = new Message("Status", "Tickle", "Test");
					msg.setToHub(to);
					api.sendForgetMessage(msg);
					break;
				}
				*/
				case 6: {
					..println("Add host/ip address (enter for localhost): ");
					String host = scan.nextLine();
					if (StringUtil.isEmpty(host))
						host = "localhost";
					..println("Add port: ");
					String port = scan.nextLine();
					..println("Add hubid: ");
					String hubid = scan.nextLine();
					if (connectors.containsKey(hubid))
						..println("already connecting");
					else {
						SocketInfo info = SocketInfo.buildRemote(host, (int)StringUtil.parseInt(port, 0), true);
						info.setHubId(hubid);
						if ((info.getPort() == 0) || StringUtil.isEmpty(hubid))
							..println("bad connector");
						else {
							connectors.put(hubidinfo);
							..println("connector added");
						}
					}
			        break;
				}
				case 7: {
					..println("Remove hubid: ");
					String hubid = scan.nextLine();
					if (!connectors.containsKey(hubid))
						..println("not connecting to that port");
					else {
						SocketInfo info = connectors.remove(hubid);
						if (info == null)
							..println("bad connector");
						else {
							..println("connector removed");
						}
					}
			        break;
				}
				case 8: {
					Foreground.utilityMenu(scan);
					break;
				}
				case 9: {
					..println("To Hub: ");
					String to = scan.nextLine();
					..println("Message: ");
					String data = scan.nextLine();
					Message msg = new Message("Status""Echo""Test"data + " - avד73Dw??gT80Hgt");
					msg.setToHub(to);
					api.sendMessage(msgnew DumpCallback("Echo"));
					break;
				}
				/*
				case 9: {
					System.out.println("File Name: ");
					final String fname = "D:\\dev\\divconq\\hub\\lib\\guava-14.0-rc1.jar"; //scan.nextLine();
					System.out.println("Save Path ([enter] for root): ");
					final String spath = scan.nextLine();
			    	
			    	final Path src = Paths.get(fname);
			    	CommonPath dest = new CommonPath(spath + "/" + src.getFileName());
			    	
			    	// TODO name
			    	Task uploadtask = TaskFactory.createUploadTask(api, "x", src, dest, null, true);
			    	
			    	Hub.instance.getWorkPool().submit(uploadtask, new TaskObserver() {
						@Override
						public void completed(TaskRun or) {
							if (or.hasErrors())
								System.out.println("Upload failed!");
							else
								System.out.println("Upload worked!");
						}
					});
			    	
					break;
				}
				case 10: {
					/* TODO
					System.out.println("File Name: ");
					final String spath = scan.nextLine();
			    	final CommonPath src = new CommonPath(spath);
					System.out.println("Save Path: ");
					final Path dest = Paths.get(scan.nextLine(), src.getFileName());
			    	
					DataStreamApi dsapi = new DataStreamApi(api);
					dsapi.simpleDownloadAndVerify(src, dest, new OperationCallback() {
						// initializer is optional, it supports the progress bar, etc
						{
							this.addObserver(new Observer() {						
								@Override
								public void update(Observable or, Object area) {
									// TODO output progress
								}
							});
						}
						@Override
						public void callback() {
					    	if (this.hasErrors()) {
					    		System.out.println("Download Error: " + this.getMessage());
					    		return;
					    	}
					    	System.out.println("Download complete!");
						}
					});
			    	* /
					break;
				}
				case 11: {
					Message msg = new Message("Status", "Echo", "Test", "Test 1");
					Message rmsg = api.sendMessage(msg);
					System.out.println("Response 1: " + rmsg.getFieldAsString("Body"));
					msg = new Message("Status", "Echo", "Test", "Test 2");
					rmsg = api.sendMessage(msg);
					System.out.println("Response 2: " + rmsg.getFieldAsString("Body"));
					msg = new Message("Status", "Echo", "Test", "Test 3");
					rmsg = api.sendMessage(msg);
					System.out.println("Response 3: " + rmsg.getFieldAsString("Body"));
					msg = new Message("Status", "Echo", "Test", "Test 4");
					rmsg = api.sendMessage(msg);
					System.out.println("Response 4: " + rmsg.getFieldAsString("Body"));
					break;
				}
				case 12: {
					Message msg = new Message("Status", "Info", "Test");
					api.sendMessage(msg, new DumpCallback("Info"));
					break;
				}
				*/
				}
			}
			catch (Exception x) {
				..println("Cli Error: " + x);
			}
		}
	}
New to GrepCode? Check out our FAQ X