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));