@@ -33,7 +33,8 @@ public List<BoardPort> discovery() {
33
33
Iterator <BoardPort > iterator = ports .iterator ();
34
34
while (iterator .hasNext ()) {
35
35
try {
36
- if (!NetUtils .isReachable (InetAddress .getByName (iterator .next ().getAddress ()))) {
36
+ BoardPort board = iterator .next ();
37
+ if (!NetUtils .isReachable (InetAddress .getByName (board .getAddress ()), Integer .parseInt (board .getPrefs ().get ("port" )))) {
37
38
iterator .remove ();
38
39
}
39
40
} catch (UnknownHostException e ) {
@@ -93,34 +94,38 @@ public void serviceRemoved(ServiceEvent serviceEvent) {
93
94
@ Override
94
95
public void serviceResolved (ServiceEvent serviceEvent ) {
95
96
ServiceInfo info = serviceEvent .getInfo ();
96
- String address = info .getInet4Addresses ()[0 ].getHostAddress ();
97
- String name = serviceEvent .getName ();
97
+ for (InetAddress inetAddress : info .getInet4Addresses ()) {
98
+ String address = inetAddress .getHostAddress ();
99
+ String name = serviceEvent .getName ();
100
+
101
+ PreferencesMap prefs = null ;
102
+ String board = null ;
103
+ if (info .hasData ()) {
104
+ prefs = new PreferencesMap ();
105
+ board = info .getPropertyString ("board" );
106
+ prefs .put ("board" , board );
107
+ prefs .put ("distro_version" , info .getPropertyString ("distro_version" ));
108
+ }
98
109
99
- PreferencesMap prefs = null ;
100
- String board = null ;
101
- if (info .hasData ()) {
102
- prefs = new PreferencesMap ();
103
- board = info .getPropertyString ("board" );
104
- prefs .put ("board" , board );
105
- prefs .put ("distro_version" , info .getPropertyString ("distro_version" ));
106
- }
110
+ prefs .put ("port" , "" + info .getPort ());
107
111
108
- String label = name + " at " + address ;
109
- if (board != null ) {
110
- String boardName = Base .getPlatform ().resolveDeviceByBoardID (Base .packages , board );
111
- label += " (" + boardName + ")" ;
112
- }
112
+ String label = name + " at " + address ;
113
+ if (board != null ) {
114
+ String boardName = Base .getPlatform ().resolveDeviceByBoardID (Base .packages , board );
115
+ label += " (" + boardName + ")" ;
116
+ }
113
117
114
- BoardPort port = new BoardPort ();
115
- port .setAddress (address );
116
- port .setBoardName (name );
117
- port .setProtocol ("network" );
118
- port .setPrefs (prefs );
119
- port .setLabel (label );
118
+ BoardPort port = new BoardPort ();
119
+ port .setAddress (address );
120
+ port .setBoardName (name );
121
+ port .setProtocol ("network" );
122
+ port .setPrefs (prefs );
123
+ port .setLabel (label );
120
124
121
- synchronized (this ) {
122
- removeDuplicateBoards (port );
123
- ports .add (port );
125
+ synchronized (this ) {
126
+ removeDuplicateBoards (port );
127
+ ports .add (port );
128
+ }
124
129
}
125
130
}
126
131
0 commit comments