package com.l7tech.server.transport.email;

import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.Socket;
import javax.net.ssl.SSLSocketFactory;

public abstract class StartTlsSocketFactory extends SSLSocketFactory {
   protected abstract SSLSocketFactory getSslFactory();

   @Override
   public String[] getDefaultCipherSuites() {
      return this.getSslFactory().getDefaultCipherSuites();
   }

   @Override
   public String[] getSupportedCipherSuites() {
      return this.getSslFactory().getSupportedCipherSuites();
   }

   @Override
   public Socket createSocket(Socket var1, String var2, int var3, boolean var4) throws IOException {
      return this.getSslFactory().createSocket(var1, var2, var3, var4);
   }

   @Override
   public Socket createSocket() throws IOException {
      return new Socket();
   }

   @Override
   public Socket createSocket(String var1, int var2) throws IOException {
      return new Socket(var1, var2);
   }

   @Override
   public Socket createSocket(String var1, int var2, InetAddress var3, int var4) throws IOException {
      return new Socket(var1, var2, var3, var4);
   }

   @Override
   public Socket createSocket(InetAddress var1, int var2) throws IOException {
      return new Socket(var1, var2);
   }

   @Override
   public Socket createSocket(InetAddress var1, int var2, InetAddress var3, int var4) throws IOException {
      return new Socket(var1, var2, var3, var4);
   }

   @Override
   public Socket createSocket(Socket var1, InputStream var2, boolean var3) throws IOException {
      return this.getSslFactory().createSocket(var1, var2, var3);
   }
}
