From 819e2c1b74758394c1d3bf158c25fd626a64c11e Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Fri, 4 Jan 2013 01:42:33 +0000
Subject: [PATCH] Added patch for jSSC.

---
 jssc-0.9.patch | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)
 create mode 100644 jssc-0.9.patch

diff --git a/jssc-0.9.patch b/jssc-0.9.patch
new file mode 100644
index 0000000000..99c83968a8
--- /dev/null
+++ b/jssc-0.9.patch
@@ -0,0 +1,84 @@
+diff -Bbur jSSC-0.9.0-Release/src/jssc/SerialPort.java jSSC-0.9.0-briar/src/jssc/SerialPort.java
+--- jSSC-0.9.0-Release/src/jssc/SerialPort.java	2011-12-21 13:29:10.000000000 +0000
++++ jSSC-0.9.0-briar/src/jssc/SerialPort.java	2012-12-06 15:07:37.786033300 +0000
+@@ -30,13 +30,13 @@
+  */
+ public class SerialPort {
+ 
+-    private SerialNativeInterface serialInterface;
+-    private SerialPortEventListener eventListener;
+-    private int portHandle;
+-    private String portName;
+-    private boolean portOpened = false;
+-    private boolean maskAssigned = false;
+-    private boolean eventListenerAdded = false;
++    private volatile SerialNativeInterface serialInterface;
++    private volatile SerialPortEventListener eventListener;
++    private volatile int portHandle;
++    private volatile String portName;
++    private volatile boolean portOpened = false;
++    private volatile boolean maskAssigned = false;
++    private volatile boolean eventListenerAdded = false;
+     
+ 
+     public static final int BAUDRATE_110 = 110;
+@@ -915,7 +915,7 @@
+ 
+     private class EventThread extends Thread {
+ 
+-        private boolean threadTerminated = false;
++        private volatile boolean threadTerminated = false;
+         
+         @Override
+         public void run() {
+diff -Bbur jSSC-0.9.0-Release/src/jssc/SerialPortList.java jSSC-0.9.0-briar/src/jssc/SerialPortList.java
+--- jSSC-0.9.0-Release/src/jssc/SerialPortList.java	2011-12-21 13:30:30.000000000 +0000
++++ jSSC-0.9.0-briar/src/jssc/SerialPortList.java	2012-12-06 14:31:50.142033801 +0000
+@@ -97,20 +97,15 @@
+      */
+     private static String[] getLinuxPortNames() {
+         String[] returnArray = new String[]{};
+-        try {
+-            Process dmesgProcess =  Runtime.getRuntime().exec("dmesg");
+-            BufferedReader reader = new BufferedReader(new InputStreamReader(dmesgProcess.getInputStream()));
++        File dir = new File("/dev");
++        if(dir.exists() && dir.isDirectory()){
++            File[] files = dir.listFiles();
++            if(files.length > 0){
+             TreeSet<String> portsTree = new TreeSet<String>();
+             ArrayList<String> portsList = new ArrayList<String>();
+-            String buffer = "";
+-            while((buffer = reader.readLine()) != null && !buffer.isEmpty()){
+-                if(buffer.matches(".*(ttyS|ttyUSB)[0-9]{1,3}.*")){
+-                    String[] tmp = buffer.split(" ");
+-                    for(String value : tmp){
+-                        if(value.matches("(ttyS|ttyUSB)[0-9]{1,3}")){
+-                            portsTree.add("/dev/" + value);
+-                        }
+-                    }
++                for(File file : files){
++                    if(!file.isDirectory() && !file.isFile() && file.getName().matches(".*(ttyS|ttyUSB|ttyACM)[0-9]{1,3}.*")){
++                        portsTree.add("/dev/" + file.getName());
+                 }
+             }
+             for(String portName : portsTree){
+@@ -130,10 +125,7 @@
+                 }
+             }
+             returnArray = portsList.toArray(returnArray);
+-            reader.close();
+         }
+-        catch (IOException ex) {
+-            //Do nothing
+         }
+         return returnArray;
+     }
+@@ -179,7 +171,7 @@
+                 TreeSet<String> portsTree = new TreeSet<String>();
+                 ArrayList<String> portsList = new ArrayList<String>();
+                 for(File file : files){
+-                    if(!file.isDirectory() && !file.isFile() && file.getName().matches("tty.(serial.*|usbserial.*)")){
++                    if(!file.isDirectory() && !file.isFile() && file.getName().matches("tty.(modem.*|usbmodem.*|serial.*|usbserial.*)")){
+                         portsTree.add("/dev/" + file.getName());
+                     }
+                 }
-- 
GitLab