1 /* 2 * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package sun.net; 27 28 import java.net.InetAddress; 29 import java.io.FileDescriptor; 30 import java.io.IOException; 31 import java.security.AccessController; 32 import java.security.PrivilegedAction; 33 import sun.security.action.GetPropertyAction; 34 35 /** 36 * Defines static methods to be invoked prior to binding or connecting TCP sockets. 37 */ 38 39 public final class NetHooks { 40 41 // Android-removed: Android doesn't support Session Description Protocol (SDP). 42 /* 43 /** 44 * A provider with hooks to allow sockets be converted prior to binding or 45 * connecting a TCP socket. 46 * 47 * <p> Concrete implementations of this class should define a zero-argument 48 * constructor and implement the abstract methods specified below. 49 * 50 public static abstract class Provider { 51 /** 52 * Initializes a new instance of this class. 53 * 54 protected Provider() {} 55 56 /** 57 * Invoked prior to binding a TCP socket. 58 * 59 public abstract void implBeforeTcpBind(FileDescriptor fdObj, 60 InetAddress address, 61 int port) 62 throws IOException; 63 64 /** 65 * Invoked prior to connecting an unbound TCP socket. 66 * 67 public abstract void implBeforeTcpConnect(FileDescriptor fdObj, 68 InetAddress address, 69 int port) 70 throws IOException; 71 } 72 */ 73 74 /** 75 * For now, we load the SDP provider on Solaris. In the future this may 76 * be changed to use the ServiceLoader facility to allow the deployment of 77 * other providers. 78 */ 79 // Android-removed: Android doesn't support Session Description Protocol (SDP). 80 // private static final Provider provider = new sun.net.sdp.SdpProvider(); 81 82 /** 83 * Invoke prior to binding a TCP socket. 84 */ beforeTcpBind(FileDescriptor fdObj, InetAddress address, int port)85 public static void beforeTcpBind(FileDescriptor fdObj, 86 InetAddress address, 87 int port) 88 throws IOException 89 { 90 // Android-removed: Android doesn't support Session Description Protocol (SDP). 91 // provider.implBeforeTcpBind(fdObj, address, port); 92 } 93 94 /** 95 * Invoke prior to connecting an unbound TCP socket. 96 */ beforeTcpConnect(FileDescriptor fdObj, InetAddress address, int port)97 public static void beforeTcpConnect(FileDescriptor fdObj, 98 InetAddress address, 99 int port) 100 throws IOException 101 { 102 // Android-removed: No SDP support 103 // provider.implBeforeTcpConnect(fdObj, address, port); 104 } 105 } 106