SetSoLinger.java revision 2612
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/*
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * This code is free software; you can redistribute it and/or modify it
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * under the terms of the GNU General Public License version 2 only, as
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * published by the Free Software Foundation.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * This code is distributed in the hope that it will be useful, but WITHOUT
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * version 2 for more details (a copy is included in the LICENSE file that
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * accompanied this code).
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * You should have received a copy of the GNU General Public License version
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * 2 along with this work; if not, write to the Free Software Foundation,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * or visit www.oracle.com if you need additional information or have any
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * questions.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/*
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * @test
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * @bug 4151834
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * @summary Test Socket.setSoLinger
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiimport java.net.*;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchipublic class SetSoLinger {
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi static final int LINGER = 65546;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi public static void main(String args[]) throws Exception {
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi int value;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi InetAddress addr = InetAddress.getLocalHost();
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi ServerSocket ss = new ServerSocket(0);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi int port = ss.getLocalPort();
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi Socket s = new Socket(addr, port);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi Socket soc = ss.accept();
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi soc.setSoLinger(true, LINGER);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi value = soc.getSoLinger();
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi soc.close();
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi s.close();
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi ss.close();
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi if(value != 65535)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi throw new RuntimeException("Failed. Value not properly reduced.");
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi }
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi}
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi