[Esbox-commits] r1569 - in trunk: org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware

eswartz at garage.maemo.org eswartz at garage.maemo.org
Sun May 10 20:50:47 EEST 2009


Author: eswartz
Date: 2009-05-10 20:50:41 +0300 (Sun, 10 May 2009)
New Revision: 1569

Modified:
   trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/ValidateMachineRunner.java
   trunk/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/VMwarePreferencePage.java
   trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences/CommonVirtualMachineSettingsPreferencePage.java
Log:
Merge 1561:1567 from work_Ed branch

Modified: trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/ValidateMachineRunner.java
===================================================================
--- trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/ValidateMachineRunner.java	2009-05-10 01:47:51 UTC (rev 1568)
+++ trunk/org.maemo.esbox.maemosdk.ui/src/org/maemo/esbox/internal/api/maemosdk/ui/preferences/ValidateMachineRunner.java	2009-05-10 17:50:41 UTC (rev 1569)
@@ -130,6 +130,7 @@
 	private boolean testMachineRunning(final IMachine machine, IProgressMonitor monitor) {
 		// make sure it's running
 		try {
+			reporter.logInfo("Connecting to machine...");
 			MachineUtils.acquireMachine(machine, monitor);
 			return true;
 		} catch (MicaCanceledException e) {

Modified: trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences/CommonVirtualMachineSettingsPreferencePage.java
===================================================================
--- trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences/CommonVirtualMachineSettingsPreferencePage.java	2009-05-10 01:47:51 UTC (rev 1568)
+++ trunk/org.maemo.esbox.vm/src/org/maemo/esbox/internal/api/vm/ui/preferences/CommonVirtualMachineSettingsPreferencePage.java	2009-05-10 17:50:41 UTC (rev 1569)
@@ -27,6 +27,7 @@
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Text;
 import org.maemo.esbox.internal.vm.Activator;
 import org.maemo.esbox.vm.core.IVirtualMachineConfiguration;
@@ -258,7 +259,11 @@
 			dialog.run(true, true, new IRunnableWithProgress() {
 				public void run(IProgressMonitor monitor)
 						throws InvocationTargetException, InterruptedException {
-					doConfigureNetwork(dialog.getProgressReporter());
+					Display.getDefault().syncExec(new Runnable() {
+						public void run() {
+							doConfigureNetwork(dialog.getProgressReporter());
+						}
+					});
 				}
 			});
 		} catch (Exception e) {

Modified: trunk/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/VMwarePreferencePage.java
===================================================================
--- trunk/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/VMwarePreferencePage.java	2009-05-10 01:47:51 UTC (rev 1568)
+++ trunk/org.maemo.esbox.vm.vmware/src/org/maemo/esbox/internal/vm/vmware/VMwarePreferencePage.java	2009-05-10 17:50:41 UTC (rev 1569)
@@ -107,6 +107,7 @@
 		// get real info from the VMX
 		String vmx = settingsPage.getVMXPath();
 		String networkType = null;
+		boolean isNAT = false;
 		
 		try {
 			//String vmx = store.getString(VMwarePreferenceConstants.VMWARE_VMX_PATH);
@@ -119,6 +120,7 @@
 			if (networkType.equals(VMwareUtils.NETWORK_CONFIG_NAT)) {
 				vmnet = "vmnet8";
 				reporter.logInfo("Configuring for NAT networking.");
+				isNAT = true;
 			} 
 			else if (networkType.equals(VMwareUtils.NETWORK_CONFIG_HOSTONLY)) {
 				vmnet = "vmnet1";
@@ -138,13 +140,17 @@
 			return;
 		}
 		
-		// port forwarding not easy to do in VMware, so it's likely to be this
 		String port = "22";
+		if (isNAT) {
+			port = "2222";
+			reporter.logInfo("Set SSH Target Port to the default recommendation for NAT ("+port+").");
+			reporter.logInfo("If you're using Port Forwarding and NAT, this may need to be edited.");
+		} else {
+			reporter.logInfo("Set SSH Target Port to the default ("+port+").");
+		}
 		commonPrefPage.getSSHTargetPort().setStringValue(port);
-		reporter.logInfo("Set SSH Target Port to the default ("+port+").");
-		if (networkType == null || networkType.equals(VMwareUtils.NETWORK_CONFIG_NAT))
-			reporter.logInfo("If you're using Port Forwarding and NAT, this may need to be edited.");
 
+		port = "22";
 		commonPrefPage.getSSHHostPort().setStringValue(port);
 		reporter.logInfo("Set SSH Host Port to the default ("+port+").");
 		
@@ -196,12 +202,34 @@
 			Map<String, InetAddress> vmnets = VMwareUtils.getVMNetMappings();
 			hostAddr = vmnets.get(vmnet);
 			if (hostAddr != null) {
+				try {
+					// the network is *.1, but the endpoint is *.2
+					byte[] addr = hostAddr.getAddress();
+					if (addr.length == 4 && addr[3] == 1) {
+						addr[3] = 2;
+						hostAddr = Inet4Address.getByAddress(addr);
+					}
+				} catch (UnknownHostException e) {
+					reporter.log(Activator.createErrorStatus(
+							"Could not correct the local host address",
+							e));
+				}
 				commonPrefPage.getSSHHostAddr().setAddress(hostAddr);
 
 				reporter.logInfo("Set Host Address to " + vmnet + " endpoint address " + hostAddr);
 
-				// guess the target address
-				targetAddr = VMwareUtils.convertToLikelyDHCPAddress(hostAddr);
+				if (isNAT) {
+					try {
+						targetAddr = Inet4Address.getByAddress(new byte[] { 127, 0, 0, 1});
+					} catch (UnknownHostException e) {
+						// unlikely
+					}
+				}
+				if (targetAddr == null) {
+					// guess the target address
+					targetAddr = VMwareUtils.convertToLikelyDHCPAddress(hostAddr);
+				}
+				
 				if (targetAddr != null) {
 					commonPrefPage.getSSHTargetAddr().setAddress(targetAddr);
 					



More information about the Esbox-commits mailing list