diff --git a/src/megabasterd/ChunkDownloader.java b/src/megabasterd/ChunkDownloader.java index 1664162c3..6609d0370 100644 --- a/src/megabasterd/ChunkDownloader.java +++ b/src/megabasterd/ChunkDownloader.java @@ -26,6 +26,7 @@ public class ChunkDownloader implements Runnable, SecureSingleThreadNotifiable { private final Object _secure_notify_lock; private volatile boolean _error_wait; private boolean _notified; + private boolean _error_no_proxy; private String _proxy; public ChunkDownloader(int id, Download download) { @@ -35,6 +36,15 @@ public class ChunkDownloader implements Runnable, SecureSingleThreadNotifiable { _id = id; _download = download; _error_wait = false; + _error_no_proxy = false; + } + + public boolean isError_no_proxy() { + return _error_no_proxy; + } + + public void setError_no_proxy(boolean _error_no_proxy) { + this._error_no_proxy = _error_no_proxy; } public void setExit(boolean exit) { @@ -110,9 +120,13 @@ public class ChunkDownloader implements Runnable, SecureSingleThreadNotifiable { while (!_exit && !_download.isStopped()) { - if (httpclient == null || error || MainPanel.isUse_smart_proxy()) { + if (httpclient == null || error || (MainPanel.isUse_smart_proxy() && _error_no_proxy)) { - if (MainPanel.isUse_smart_proxy()) { + if (error) { + _error_no_proxy = true; + } + + if (MainPanel.isUse_smart_proxy() && _error_no_proxy) { if (error && current_proxy != null) { @@ -131,7 +145,7 @@ public class ChunkDownloader implements Runnable, SecureSingleThreadNotifiable { } } - httpclient = MiscTools.getApacheKissHttpClientSmartProxy(current_proxy); + httpclient = current_proxy != null ? MiscTools.getApacheKissHttpClientSmartProxy(current_proxy) : MiscTools.getApacheKissHttpClient(); } else if (httpclient == null) { diff --git a/src/megabasterd/ChunkDownloaderMono.java b/src/megabasterd/ChunkDownloaderMono.java index 06baa114d..e0f1a8cda 100644 --- a/src/megabasterd/ChunkDownloaderMono.java +++ b/src/megabasterd/ChunkDownloaderMono.java @@ -47,9 +47,13 @@ public class ChunkDownloaderMono extends ChunkDownloader { while (!isExit() && !getDownload().isStopped()) { - if (httpclient == null || worker_url == null || error || MainPanel.isUse_smart_proxy()) { + if (httpclient == null || worker_url == null || error || (MainPanel.isUse_smart_proxy() && this.isError_no_proxy())) { - if (MainPanel.isUse_smart_proxy()) { + if (error) { + this.setError_no_proxy(true); + } + + if (MainPanel.isUse_smart_proxy() && this.isError_no_proxy()) { if (error && current_proxy != null) { @@ -68,7 +72,7 @@ public class ChunkDownloaderMono extends ChunkDownloader { } } - httpclient = MiscTools.getApacheKissHttpClientSmartProxy(current_proxy); + httpclient = current_proxy != null ? MiscTools.getApacheKissHttpClientSmartProxy(current_proxy) : MiscTools.getApacheKissHttpClient(); } else if (httpclient == null) { diff --git a/src/megabasterd/MainPanel.java b/src/megabasterd/MainPanel.java index 8b9b543fd..02591cdbc 100644 --- a/src/megabasterd/MainPanel.java +++ b/src/megabasterd/MainPanel.java @@ -45,7 +45,7 @@ import org.apache.http.auth.UsernamePasswordCredentials; */ public final class MainPanel { - public static final String VERSION = "2.28"; + public static final String VERSION = "2.29"; public static final int THROTTLE_SLICE_SIZE = 16 * 1024; public static final int DEFAULT_BYTE_BUFFER_SIZE = 16 * 1024; public static final int STREAMER_PORT = 1337; diff --git a/src/megabasterd/SettingsDialog.form b/src/megabasterd/SettingsDialog.form index 890bff896..9c418044c 100644 --- a/src/megabasterd/SettingsDialog.form +++ b/src/megabasterd/SettingsDialog.form @@ -165,7 +165,7 @@ - + @@ -483,9 +483,9 @@ - + - + @@ -532,7 +532,7 @@ - + @@ -684,7 +684,7 @@ - + diff --git a/src/megabasterd/SettingsDialog.java b/src/megabasterd/SettingsDialog.java index 793a76282..db6656552 100644 --- a/src/megabasterd/SettingsDialog.java +++ b/src/megabasterd/SettingsDialog.java @@ -688,8 +688,8 @@ public final class SettingsDialog extends javax.swing.JDialog { smart_proxy_url_text.setFont(new java.awt.Font("Ubuntu", 0, 16)); // NOI18N - jLabel2.setFont(new java.awt.Font("Ubuntu", 2, 14)); // NOI18N - jLabel2.setText("Note: it is recomended to enable MULTI SLOT with enough slots and be patient while MegaBasterd filters down proxies."); + jLabel2.setFont(new java.awt.Font("Ubuntu", 2, 12)); // NOI18N + jLabel2.setText("Note: it is recomended to enable MULTI SLOT with enough slots and be patient while MegaBasterd filters down proxies. MegaBasterd will try first to download chunk without proxy. (Use CTRL+V in order to paste URL)"); javax.swing.GroupLayout downloads_panelLayout = new javax.swing.GroupLayout(downloads_panel); downloads_panel.setLayout(downloads_panelLayout); @@ -746,7 +746,7 @@ public final class SettingsDialog extends javax.swing.JDialog { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(megacrypter_reverse_warning_label)) .addComponent(jLabel2)) - .addGap(0, 79, Short.MAX_VALUE)) + .addGap(0, 0, Short.MAX_VALUE)) .addGroup(downloads_panelLayout.createSequentialGroup() .addComponent(smart_proxy_url_label) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) @@ -891,7 +891,7 @@ public final class SettingsDialog extends javax.swing.JDialog { .addGap(98, 98, 98) .addComponent(max_up_speed_spinner, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(limit_upload_speed_checkbox)) - .addGap(0, 406, Short.MAX_VALUE))) + .addGap(0, 590, Short.MAX_VALUE))) .addContainerGap()) ); uploads_panelLayout.setVerticalGroup( @@ -1060,7 +1060,7 @@ public final class SettingsDialog extends javax.swing.JDialog { .addComponent(delete_all_accounts_button) .addGap(18, 18, 18) .addComponent(unlock_accounts_button) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 242, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 352, Short.MAX_VALUE) .addComponent(encrypt_pass_checkbox)) .addGroup(accounts_panelLayout.createSequentialGroup() .addComponent(remove_mega_account_button) diff --git a/src/megabasterd/SmartMegaProxyManager.java b/src/megabasterd/SmartMegaProxyManager.java index 398ca13eb..2b5fcf21d 100644 --- a/src/megabasterd/SmartMegaProxyManager.java +++ b/src/megabasterd/SmartMegaProxyManager.java @@ -11,7 +11,7 @@ import java.util.Random; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.logging.Level; import java.util.logging.Logger; -import static megabasterd.MiscTools.getApacheKissHttpClientNOProxy; +import static megabasterd.MiscTools.getApacheKissHttpClient; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; @@ -110,7 +110,7 @@ public class SmartMegaProxyManager implements Runnable { String data; - try (CloseableHttpClient httpclient = getApacheKissHttpClientNOProxy()) { + try (CloseableHttpClient httpclient = getApacheKissHttpClient()) { HttpGet httpget = new HttpGet(new URI(this._proxy_list_url));