@@ -72,8 +72,7 @@ void test(String[] args) {
7272 return ;
7373 }
7474
75- try {
76- SctpChannel sc = SctpChannel .open ();
75+ try (SctpChannel sc = SctpChannel .open ()) {
7776
7877 /* check supported options */
7978 Set <SctpSocketOption <?>> options = sc .supportedOptions ();
@@ -143,8 +142,6 @@ void test(String[] args) {
143142
144143 /* SCTP_PRIMARY_ADDR */
145144 void sctpPrimaryAddr () throws IOException {
146- SocketAddress addrToSet = null ;;
147-
148145 System .out .println ("TESTING SCTP_PRIMARY_ADDR" );
149146 SctpChannel sc = SctpChannel .open ();
150147 SctpServerChannel ssc = SctpServerChannel .open ().bind (null );
@@ -158,12 +155,11 @@ void sctpPrimaryAddr() throws IOException {
158155 sc .connect (serverAddr );
159156 SctpChannel peerChannel = ssc .accept ();
160157 ssc .close ();
161- Set <SocketAddress > peerAddrs = peerChannel . getAllLocalAddresses ();
162- debug ("Peer local Addresses: " );
163- for (Iterator <SocketAddress > it = peerAddrs .iterator (); it .hasNext (); ) {
158+ Set <SocketAddress > remoteAddresses = sc . getRemoteAddresses ();
159+ debug ("Remote Addresses: " );
160+ for (Iterator <SocketAddress > it = remoteAddresses .iterator (); it .hasNext (); ) {
164161 InetSocketAddress addr = (InetSocketAddress )it .next ();
165162 debug ("\t " + addr );
166- addrToSet = addr ; // any of the peer addresses will do!
167163 }
168164
169165 /* retrieval of SCTP_PRIMARY_ADDR is not supported on Solaris */
@@ -176,25 +172,21 @@ void sctpPrimaryAddr() throws IOException {
176172 } else { /* Linux */
177173 SocketAddress primaryAddr = sc .getOption (SCTP_PRIMARY_ADDR );
178174 System .out .println ("SCTP_PRIMARY_ADDR returned: " + primaryAddr );
179- /* Verify that this is one of the peer addresses */
180- boolean found = false ;
181- addrToSet = primaryAddr ; // may not have more than one addr
182- for (Iterator <SocketAddress > it = peerAddrs .iterator (); it .hasNext (); ) {
183- InetSocketAddress addr = (InetSocketAddress )it .next ();
184- if (addr .equals (primaryAddr )) {
185- found = true ;
186- }
187- addrToSet = addr ;
175+ /* Verify that this is one of the remote addresses */
176+ check (remoteAddresses .contains (primaryAddr ), "SCTP_PRIMARY_ADDR returned bogus address!" );
177+
178+ for (Iterator <SocketAddress > it = remoteAddresses .iterator (); it .hasNext (); ) {
179+ InetSocketAddress addrToSet = (InetSocketAddress ) it .next ();
180+ System .out .println ("SCTP_PRIMARY_ADDR try set to: " + addrToSet );
181+ sc .setOption (SCTP_PRIMARY_ADDR , addrToSet );
182+ System .out .println ("SCTP_PRIMARY_ADDR set to : " + addrToSet );
183+ primaryAddr = sc .getOption (SCTP_PRIMARY_ADDR );
184+ System .out .println ("SCTP_PRIMARY_ADDR returned : " + primaryAddr );
185+ check (addrToSet .equals (primaryAddr ), "SCTP_PRIMARY_ADDR not set correctly" );
188186 }
189- check (found , "SCTP_PRIMARY_ADDR returned bogus address!" );
190-
191- System .out .println ("SCTP_PRIMARY_ADDR try set to: " + addrToSet );
192- sc .setOption (SCTP_PRIMARY_ADDR , addrToSet );
193- System .out .println ("SCTP_PRIMARY_ADDR set to: " + addrToSet );
194- primaryAddr = sc .getOption (SCTP_PRIMARY_ADDR );
195- System .out .println ("SCTP_PRIMARY_ADDR returned: " + primaryAddr );
196- check (addrToSet .equals (primaryAddr ),"SCTP_PRIMARY_ADDR not set correctly" );
197187 }
188+ sc .close ();
189+ peerChannel .close ();
198190 }
199191 //--------------------- Infrastructure ---------------------------
200192 boolean debug = true ;
0 commit comments