zzu.java 8.66 KB
package com.google.android.gms.internal;

import android.os.SystemClock;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.SocketTimeoutException;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.conn.ConnectTimeoutException;
import org.apache.http.impl.cookie.DateUtils;

public class zzu
  implements zzg
{
  protected static final boolean DEBUG = zzt.DEBUG;
  private static int a = 3000;
  private static int b = 4096;
  protected final zzz zzap;
  protected final zzv zzaq;
  
  public zzu(zzz paramzzz)
  {
    this(paramzzz, new zzv(b));
  }
  
  public zzu(zzz paramzzz, zzv paramzzv)
  {
    this.zzap = paramzzz;
    this.zzaq = paramzzv;
  }
  
  private static void a(String paramString, zzl<?> paramzzl, zzs paramzzs)
    throws zzs
  {
    zzp localzzp = paramzzl.zzq();
    int i = paramzzl.zzp();
    try
    {
      localzzp.zza(paramzzs);
      paramzzl.zzc(String.format("%s-retry [timeout=%s]", new Object[] { paramString, Integer.valueOf(i) }));
      return;
    }
    catch (zzs paramzzs)
    {
      paramzzl.zzc(String.format("%s-timeout-giveup [timeout=%s]", new Object[] { paramString, Integer.valueOf(i) }));
      throw paramzzs;
    }
  }
  
  private byte[] a(HttpEntity paramHttpEntity)
    throws IOException, zzq
  {
    zzab localzzab = new zzab(this.zzaq, (int)paramHttpEntity.getContentLength());
    Object localObject2 = null;
    Object localObject1 = localObject2;
    Object localObject4;
    try
    {
      localObject4 = paramHttpEntity.getContent();
      if (localObject4 == null)
      {
        localObject1 = localObject2;
        throw new zzq();
      }
    }
    finally {}
    try
    {
      paramHttpEntity.consumeContent();
      this.zzaq.zza((byte[])localObject1);
      localzzab.close();
      throw ((Throwable)localObject3);
      localObject1 = localObject3;
      byte[] arrayOfByte = this.zzaq.zzb(1024);
      for (;;)
      {
        localObject1 = arrayOfByte;
        int i = ((InputStream)localObject4).read(arrayOfByte);
        if (i == -1) {
          break;
        }
        localObject1 = arrayOfByte;
        localzzab.write(arrayOfByte, 0, i);
      }
      localObject1 = arrayOfByte;
      localObject4 = localzzab.toByteArray();
      try
      {
        paramHttpEntity.consumeContent();
        this.zzaq.zza(arrayOfByte);
        localzzab.close();
        return (byte[])localObject4;
      }
      catch (IOException paramHttpEntity)
      {
        for (;;)
        {
          zzt.zza("Error occured when calling consumingContent", new Object[0]);
        }
      }
    }
    catch (IOException paramHttpEntity)
    {
      for (;;)
      {
        zzt.zza("Error occured when calling consumingContent", new Object[0]);
      }
    }
  }
  
  protected static Map<String, String> zza(Header[] paramArrayOfHeader)
  {
    TreeMap localTreeMap = new TreeMap(String.CASE_INSENSITIVE_ORDER);
    int i = 0;
    while (i < paramArrayOfHeader.length)
    {
      localTreeMap.put(paramArrayOfHeader[i].getName(), paramArrayOfHeader[i].getValue());
      i += 1;
    }
    return localTreeMap;
  }
  
  public zzj zza(zzl<?> paramzzl)
    throws zzs
  {
    long l1 = SystemClock.elapsedRealtime();
    for (;;)
    {
      Map localMap = null;
      localObject6 = Collections.emptyMap();
      try
      {
        Object localObject1 = new HashMap();
        Object localObject4 = paramzzl.zzh();
        if (localObject4 != null)
        {
          if (((zzb.zza)localObject4).zza != null) {
            ((Map)localObject1).put("If-None-Match", ((zzb.zza)localObject4).zza);
          }
          if (((zzb.zza)localObject4).zzc > 0L) {
            ((Map)localObject1).put("If-Modified-Since", DateUtils.formatDate(new Date(((zzb.zza)localObject4).zzc)));
          }
        }
        localObject4 = this.zzap.zza(paramzzl, (Map)localObject1);
        localObject1 = localObject6;
        for (;;)
        {
          int i;
          Object localObject3;
          Object localObject5;
          try
          {
            localStatusLine = ((HttpResponse)localObject4).getStatusLine();
            localObject1 = localObject6;
            i = localStatusLine.getStatusCode();
            localObject1 = localObject6;
            localMap = zza(((HttpResponse)localObject4).getAllHeaders());
            if (i == 304)
            {
              localObject1 = localMap;
              localObject6 = paramzzl.zzh();
              if (localObject6 == null)
              {
                localObject1 = localMap;
                return new zzj(304, null, localMap, true, SystemClock.elapsedRealtime() - l1);
              }
              localObject1 = localMap;
              ((zzb.zza)localObject6).zzf.putAll(localMap);
              localObject1 = localMap;
              return new zzj(304, ((zzb.zza)localObject6).data, ((zzb.zza)localObject6).zzf, true, SystemClock.elapsedRealtime() - l1);
            }
            localObject1 = localMap;
            if (((HttpResponse)localObject4).getEntity() != null)
            {
              localObject1 = localMap;
              localObject6 = a(((HttpResponse)localObject4).getEntity());
              localObject1 = localObject6;
            }
          }
          catch (IOException localIOException3)
          {
            long l2;
            Object localObject2;
            StatusLine localStatusLine = null;
            localObject6 = localIOException1;
            localObject5 = localIOException3;
            continue;
          }
          try
          {
            l2 = SystemClock.elapsedRealtime() - l1;
            if ((!DEBUG) && (l2 <= a)) {
              break label727;
            }
            if (localObject1 == null) {
              continue;
            }
            localObject6 = Integer.valueOf(localObject1.length);
            zzt.zzb("HTTP response for request=<%s> [lifetime=%d], [size=%s], [rc=%d], [retryCount=%s]", new Object[] { paramzzl, Long.valueOf(l2), localObject6, Integer.valueOf(localStatusLine.getStatusCode()), Integer.valueOf(paramzzl.zzq().zzd()) });
          }
          catch (IOException localIOException2)
          {
            localObject6 = localObject5;
            localObject5 = localIOException2;
            Object localObject7 = localObject3;
            localObject3 = localIOException3;
            continue;
            if (i < 200) {
              continue;
            }
            if (i <= 299) {
              continue;
            }
          }
        }
        throw new IOException();
      }
      catch (SocketTimeoutException localSocketTimeoutException)
      {
        for (;;)
        {
          a("socket", paramzzl, new zzr());
          break;
          localObject2 = localMap;
          localObject6 = new byte[0];
          localObject2 = localObject6;
          continue;
          localObject6 = "null";
        }
        localObject6 = new zzj(i, (byte[])localObject2, localMap, false, SystemClock.elapsedRealtime() - l1);
        return (zzj)localObject6;
      }
      catch (ConnectTimeoutException localConnectTimeoutException)
      {
        a("connection", paramzzl, new zzr());
      }
      catch (MalformedURLException localMalformedURLException)
      {
        throw new RuntimeException("Bad URL " + paramzzl.getUrl(), localMalformedURLException);
      }
      catch (IOException localIOException1)
      {
        localStatusLine = null;
        localObject3 = localObject6;
        localObject6 = localMap;
        if (localObject6 != null)
        {
          i = ((HttpResponse)localObject6).getStatusLine().getStatusCode();
          zzt.zzc("Unexpected response code %d for %s", new Object[] { Integer.valueOf(i), paramzzl.getUrl() });
          if (localStatusLine == null) {
            break label673;
          }
          localObject3 = new zzj(i, localStatusLine, (Map)localObject3, false, SystemClock.elapsedRealtime() - l1);
          if ((i == 401) || (i == 403)) {
            a("auth", paramzzl, new zza((zzj)localObject3));
          }
        }
        else
        {
          throw new zzk(localIOException1);
        }
      }
      if ((i >= 400) && (i <= 499)) {
        throw new zzd((zzj)localObject3);
      }
      if ((i >= 500) && (i <= 599)) {
        throw new zzq((zzj)localObject3);
      }
      throw new zzq((zzj)localObject3);
      label673:
      a("network", paramzzl, new zzi());
    }
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/com/google/android/gms/internal/zzu.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */