From 116e19418589741983a4a0ab78d7806abcb39c25 Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Tue, 27 Nov 2012 00:05:25 +0000
Subject: [PATCH] Replace the modem instance if an exception occurs.

---
 src/net/sf/briar/plugins/modem/ModemPlugin.java | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/net/sf/briar/plugins/modem/ModemPlugin.java b/src/net/sf/briar/plugins/modem/ModemPlugin.java
index f2ea847390..435f10a4a1 100644
--- a/src/net/sf/briar/plugins/modem/ModemPlugin.java
+++ b/src/net/sf/briar/plugins/modem/ModemPlugin.java
@@ -88,14 +88,17 @@ class ModemPlugin implements DuplexPlugin, Modem.Callback {
 	// Synchronized to avoid a race condition with stop()
 	private synchronized boolean resetModem() {
 		if(!running) return false;
-		try {
-			modem.init();
-			return true;
-		} catch(IOException e) {
-			if(LOG.isLoggable(WARNING)) LOG.warning(e.toString());
-			running = false;
-			return false;
+		for(String portName : SerialPortList.getPortNames()) {
+			modem = modemFactory.createModem(this, portName);
+			try {
+				modem.init();
+				return true;
+			} catch(IOException e) {
+				if(LOG.isLoggable(WARNING)) LOG.warning(e.toString());
+			}
 		}
+		running = false;
+		return false;
 	}
 
 	public boolean shouldPoll() {
-- 
GitLab