package com.splunk.mint.network.http;

import com.splunk.mint.Properties;
import com.splunk.mint.network.MonitorRegistry;
import com.splunk.mint.network.NetLogManager;
import com.splunk.mint.network.Timer;
import com.splunk.mint.network.io.InputStreamMonitor;
import com.splunk.mint.network.io.InputStreamMonitorKitKat;
import com.splunk.mint.network.io.OutputStreamMonitor;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.ProtocolException;
import java.net.URL;
import java.net.URLConnection;
import java.security.Permission;
import java.security.cert.Certificate;
import java.util.List;
import java.util.Map;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLPeerUnverifiedException;

public final class MonitorableHttpsURLConnection extends HttpsURLConnection
{
  private final String connectionName;
  private InputStreamMonitor mInputStreamMonitor = null;
  private InputStreamMonitorKitKat mInputStreamMonitorKitKat = null;
  private OutputStreamMonitor mOutputStreamMonitor = null;
  private URLConnection original;
  private final MonitorRegistry registry;
  private final Timer timer;

  public MonitorableHttpsURLConnection(MonitorRegistry paramMonitorRegistry, URLConnection paramURLConnection)
  {
    super(paramURLConnection.getURL());
    this.registry = paramMonitorRegistry;
    this.original = paramURLConnection;
    this.connectionName = this.url.toString();
    this.timer = new Timer(this.connectionName);
    NetLogManager.getInstance().startNetworkCall(paramURLConnection.getURL().toExternalForm(), paramURLConnection.getURL().toExternalForm(), System.currentTimeMillis(), "HTTPS");
  }

  public void addRequestProperty(String paramString1, String paramString2)
  {
    this.original.addRequestProperty(paramString1, paramString2);
  }

  public void connect()
    throws IOException
  {
    try
    {
      this.timer.start();
      this.original.connect();
      NetLogManager.getInstance().startNetworkCall(this.original.getURL().toExternalForm(), this.original.getURL().toExternalForm(), System.currentTimeMillis(), "HTTPS");
      return;
    }
    catch (IOException localIOException)
    {
      NetLogManager.getInstance().cancelNetworkCall(this.registry, this.url.toExternalForm(), System.currentTimeMillis(), "HTTPS", localIOException.getMessage());
      throw localIOException;
    }
  }

  public void disconnect()
  {
    int i = NetLogManager.getStatusCodeFromURLConnection(this.original);
    NetLogManager.getInstance().endNetworkCall(this.registry, this.url.toExternalForm(), System.currentTimeMillis(), i);
    if ((this.original instanceof HttpURLConnection))
      ((HttpURLConnection)this.original).disconnect();
  }

  public boolean getAllowUserInteraction()
  {
    return this.original.getAllowUserInteraction();
  }

  public String getCipherSuite()
  {
    if ((this.original instanceof HttpsURLConnection))
      return ((HttpsURLConnection)this.original).getCipherSuite();
    return "";
  }

  public int getConnectTimeout()
  {
    return this.original.getConnectTimeout();
  }

  public Object getContent()
    throws IOException
  {
    try
    {
      Object localObject = this.original.getContent();
      return localObject;
    }
    catch (IOException localIOException)
    {
      NetLogManager.getInstance().cancelNetworkCall(this.registry, this.url.toExternalForm(), System.currentTimeMillis(), "HTTPS", localIOException.getMessage());
      throw localIOException;
    }
  }

  public Object getContent(Class[] paramArrayOfClass)
    throws IOException
  {
    try
    {
      Object localObject = this.original.getContent(paramArrayOfClass);
      return localObject;
    }
    catch (IOException localIOException)
    {
      NetLogManager.getInstance().cancelNetworkCall(this.registry, this.url.toExternalForm(), System.currentTimeMillis(), "HTTPS", localIOException.getMessage());
      throw localIOException;
    }
  }

  public String getContentEncoding()
  {
    return this.original.getContentEncoding();
  }

  public int getContentLength()
  {
    return this.original.getContentLength();
  }

  public String getContentType()
  {
    return this.original.getContentType();
  }

  public long getDate()
  {
    return this.original.getDate();
  }

  public boolean getDefaultUseCaches()
  {
    return this.original.getDefaultUseCaches();
  }

  public boolean getDoInput()
  {
    return this.original.getDoInput();
  }

  public boolean getDoOutput()
  {
    return this.original.getDoOutput();
  }

  public InputStream getErrorStream()
  {
    if ((this.original instanceof HttpsURLConnection))
      return ((HttpsURLConnection)this.original).getErrorStream();
    return null;
  }

  public long getExpiration()
  {
    return this.original.getExpiration();
  }

  public String getHeaderField(int paramInt)
  {
    return this.original.getHeaderField(paramInt);
  }

  public String getHeaderField(String paramString)
  {
    return this.original.getHeaderField(paramString);
  }

  public long getHeaderFieldDate(String paramString, long paramLong)
  {
    return this.original.getHeaderFieldDate(paramString, paramLong);
  }

  public int getHeaderFieldInt(String paramString, int paramInt)
  {
    return this.original.getHeaderFieldInt(paramString, paramInt);
  }

  public String getHeaderFieldKey(int paramInt)
  {
    return this.original.getHeaderFieldKey(paramInt);
  }

  public Map<String, List<String>> getHeaderFields()
  {
    return this.original.getHeaderFields();
  }

  public long getIfModifiedSince()
  {
    return this.original.getIfModifiedSince();
  }

  public InputStream getInputStream()
    throws IOException
  {
    try
    {
      if (Properties.isKitKat)
      {
        if (this.mInputStreamMonitorKitKat == null)
          this.mInputStreamMonitorKitKat = new InputStreamMonitorKitKat(this.original.getURL().toString() + "-in", this.registry, this.original.getInputStream(), null);
        return this.mInputStreamMonitorKitKat;
      }
      if (this.mInputStreamMonitor == null)
        this.mInputStreamMonitor = new InputStreamMonitor(this.original.getURL().toString() + "-in", this.registry, this.original.getInputStream(), null);
      InputStreamMonitor localInputStreamMonitor = this.mInputStreamMonitor;
      return localInputStreamMonitor;
    }
    catch (IOException localIOException)
    {
      NetLogManager.getInstance().cancelNetworkCall(this.registry, this.url.toExternalForm(), System.currentTimeMillis(), "HTTPS", localIOException.getMessage());
      throw localIOException;
    }
  }

  public boolean getInstanceFollowRedirects()
  {
    if ((this.original instanceof HttpsURLConnection))
      return ((HttpsURLConnection)this.original).getInstanceFollowRedirects();
    return true;
  }

  public long getLastModified()
  {
    return this.original.getLastModified();
  }

  public Certificate[] getLocalCertificates()
  {
    if ((this.original instanceof HttpsURLConnection))
      return ((HttpsURLConnection)this.original).getLocalCertificates();
    return null;
  }

  public OutputStream getOutputStream()
    throws IOException
  {
    try
    {
      if (this.mOutputStreamMonitor == null)
        this.mOutputStreamMonitor = new OutputStreamMonitor(this.original.getURL().toString() + "-out", this.registry, this.original.getOutputStream());
      OutputStreamMonitor localOutputStreamMonitor = this.mOutputStreamMonitor;
      return localOutputStreamMonitor;
    }
    catch (IOException localIOException)
    {
      NetLogManager.getInstance().cancelNetworkCall(this.registry, this.url.toExternalForm(), System.currentTimeMillis(), "HTTPS", localIOException.getMessage());
      throw localIOException;
    }
  }

  public Permission getPermission()
    throws IOException
  {
    try
    {
      Permission localPermission = this.original.getPermission();
      return localPermission;
    }
    catch (IOException localIOException)
    {
      NetLogManager.getInstance().cancelNetworkCall(this.registry, this.url.toExternalForm(), System.currentTimeMillis(), "HTTPS", localIOException.getMessage());
      throw localIOException;
    }
  }

  public int getReadTimeout()
  {
    return this.original.getReadTimeout();
  }

  public String getRequestMethod()
  {
    if ((this.original instanceof HttpsURLConnection))
      return ((HttpsURLConnection)this.original).getRequestMethod();
    return "GET";
  }

  public Map<String, List<String>> getRequestProperties()
  {
    return this.original.getRequestProperties();
  }

  public String getRequestProperty(String paramString)
  {
    return this.original.getRequestProperty(paramString);
  }

  public int getResponseCode()
    throws IOException
  {
    if ((this.original instanceof HttpsURLConnection))
      return ((HttpsURLConnection)this.original).getResponseCode();
    return -1;
  }

  public String getResponseMessage()
    throws IOException
  {
    if ((this.original instanceof HttpsURLConnection))
      return ((HttpsURLConnection)this.original).getResponseMessage();
    return "";
  }

  public Certificate[] getServerCertificates()
    throws SSLPeerUnverifiedException
  {
    if ((this.original instanceof HttpsURLConnection))
      return ((HttpsURLConnection)this.original).getServerCertificates();
    return null;
  }

  public URL getURL()
  {
    return this.original.getURL();
  }

  public boolean getUseCaches()
  {
    return this.original.getUseCaches();
  }

  public void setAllowUserInteraction(boolean paramBoolean)
  {
    this.original.setAllowUserInteraction(paramBoolean);
  }

  public void setChunkedStreamingMode(int paramInt)
  {
    if ((this.original instanceof HttpsURLConnection))
      ((HttpsURLConnection)this.original).setChunkedStreamingMode(paramInt);
  }

  public void setConnectTimeout(int paramInt)
  {
    this.original.setConnectTimeout(paramInt);
  }

  public void setDefaultUseCaches(boolean paramBoolean)
  {
    this.original.setDefaultUseCaches(paramBoolean);
  }

  public void setDoInput(boolean paramBoolean)
  {
    this.original.setDoInput(paramBoolean);
  }

  public void setDoOutput(boolean paramBoolean)
  {
    this.original.setDoOutput(paramBoolean);
  }

  public void setFixedLengthStreamingMode(int paramInt)
  {
    if ((this.original instanceof HttpsURLConnection))
      ((HttpsURLConnection)this.original).setFixedLengthStreamingMode(paramInt);
  }

  public void setIfModifiedSince(long paramLong)
  {
    this.original.setIfModifiedSince(paramLong);
  }

  public void setInstanceFollowRedirects(boolean paramBoolean)
  {
    if ((this.original instanceof HttpsURLConnection))
      ((HttpsURLConnection)this.original).setInstanceFollowRedirects(paramBoolean);
  }

  public void setReadTimeout(int paramInt)
  {
    this.original.setReadTimeout(paramInt);
  }

  public void setRequestMethod(String paramString)
    throws ProtocolException
  {
    if ((this.original instanceof HttpsURLConnection))
      ((HttpsURLConnection)this.original).setRequestMethod(paramString);
  }

  public void setRequestProperty(String paramString1, String paramString2)
  {
    this.original.setRequestProperty(paramString1, paramString2);
  }

  public void setUseCaches(boolean paramBoolean)
  {
    this.original.setUseCaches(paramBoolean);
  }

  public boolean usingProxy()
  {
    if ((this.original instanceof HttpsURLConnection))
      return ((HttpsURLConnection)this.original).usingProxy();
    return false;
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.splunk.mint.network.http.MonitorableHttpsURLConnection
 * JD-Core Version:    0.6.2
 */