From fc0ddb01931859d907761f43c4d83a27d6075da3 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Fri, 6 Jan 2017 12:24:29 +0000
Subject: [PATCH] eepget: recognize more status codes

---
 core/java/src/net/i2p/util/EepGet.java | 29 ++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/core/java/src/net/i2p/util/EepGet.java b/core/java/src/net/i2p/util/EepGet.java
index 85644a9825..a26312ebfa 100644
--- a/core/java/src/net/i2p/util/EepGet.java
+++ b/core/java/src/net/i2p/util/EepGet.java
@@ -927,8 +927,17 @@ public class EepGet {
         if (_log.shouldLog(Log.DEBUG))
             _log.debug("rc: " + _responseCode + " for " + _actualURL);
         boolean rcOk = false;
+        // https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
         switch (_responseCode) {
             case 200: // full
+            case 201: // various other success codes follow
+            case 202:
+            case 203:
+            case 204: // no content, TODO separate case?
+            case 205: // no content, TODO separate case?
+            case 207:
+            case 208:
+            case 226:
                 if (_outputStream != null)
                     _out = _outputStream;
 		else
@@ -961,15 +970,35 @@ public class EepGet {
             case 402: // payment required
             case 403: // bad req
             case 404: // not found
+            case 405: // method
+            case 406: // not acceptable
             case 408: // req timeout
             case 409: // bad addr helper
             case 410: // gone
+            case 411: // length
+            case 413: // payload
             case 414: // URI too long
+            case 415: // unsupported
             case 418: // backoff
             case 420: // backoff
+            case 421: // misdirected
+            case 423: // locked
+            case 424: // dependency
+            case 426: // upgrade
+            case 428: // precondition
             case 429: // too many requests
             case 431: // headers too long
+            case 451: // legal
+            case 500: // internal
+            case 501: // not implemented
+            case 502: // bad gateway
             case 503: // no outproxy
+            case 505: // version
+            case 506: // variant
+            case 507: // insufficient
+            case 508: // loop
+            case 510: // not extended
+            case 511: // network auth
                 _transferFailed = true;
                 if (_alreadyTransferred > 0 || !_shouldWriteErrorToOutput) {
                     _keepFetching = false;
-- 
GitLab