[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[vidalia-svn] r1366: Plug the new bandwidth limits stuff together. Where did thes (trunk/src/gui/config)
Author: edmanm
Date: 2006-10-21 01:08:59 -0400 (Sat, 21 Oct 2006)
New Revision: 1366
Modified:
trunk/src/gui/config/serverpage.cpp
trunk/src/gui/config/serverpage.h
Log:
Plug the new bandwidth limits stuff together. Where did these numbers come
from? I made them up. (They might be a bit high.)
Modified: trunk/src/gui/config/serverpage.cpp
===================================================================
--- trunk/src/gui/config/serverpage.cpp 2006-10-21 05:04:57 UTC (rev 1365)
+++ trunk/src/gui/config/serverpage.cpp 2006-10-21 05:08:59 UTC (rev 1366)
@@ -37,9 +37,6 @@
#include "domainvalidator.h"
#include "nicknamevalidator.h"
-/** The index in the combo box where custom rate limit resides */
-#define CUSTOM_RATE 6
-
/** Delay between updating our server IP address (in ms). */
#define AUTO_UPDATE_ADDR_INTERVAL 1000*60*60
@@ -47,12 +44,23 @@
#define EXIT_POLICY_HELP "server.exitpolicy"
#define BANDWIDTH_HELP "server.bandwidth"
+/* These are completely made up values (in bytes/sec). */
+#define CABLE256_AVG_RATE (256*1024)
+#define CABLE256_MAX_RATE (512*1024)
+#define CABLE512_AVG_RATE (512*1024)
+#define CABLE512_MAX_RATE (1024*1024)
+#define CABLE768_AVG_RATE (768*1024)
+#define CABLE768_MAX_RATE (1536*1024)
+#define T1_AVG_RATE (1536*1024)
+#define T1_MAX_RATE (3072*1024)
+#define HIGHBW_AVG_RATE (3072*1024)
+#define HIGHBW_MAX_RATE (6144*1024)
+
/** Minimum allowed bandwidth rate (20KB) */
-#define MIN_RATE 20
-
+#define MIN_BANDWIDTH_RATE 20
/** Maximum bandwidth rate. This is limited to 2147483646 bytes,
* or 2097151 kilobytes. (2147483646/1024) */
-#define MAX_RATE 2097151
+#define MAX_BANDWIDTH_RATE 2097151
/** Constructor */
@@ -90,8 +98,10 @@
ui.lineServerAddress->setValidator(new DomainValidator(this));
ui.lineServerPort->setValidator(new QIntValidator(1, 65535, this));
ui.lineDirPort->setValidator(new QIntValidator(1, 65535, this));
- ui.lineAvgRateLimit->setValidator(new QIntValidator(MIN_RATE, MAX_RATE, this));
- ui.lineMaxRateLimit->setValidator(new QIntValidator(MIN_RATE, MAX_RATE, this));
+ ui.lineAvgRateLimit->setValidator(
+ new QIntValidator(MIN_BANDWIDTH_RATE, MAX_BANDWIDTH_RATE, this));
+ ui.lineMaxRateLimit->setValidator(
+ new QIntValidator(MIN_BANDWIDTH_RATE, MAX_BANDWIDTH_RATE, this));
}
/** Destructor */
@@ -141,8 +151,7 @@
_settings->setDirPort(ui.lineDirPort->text().toUInt());
_settings->setAddress(ui.lineServerAddress->text());
_settings->setContactInfo(ui.lineServerContact->text());
- _settings->setBandwidthAvgRate(ui.lineAvgRateLimit->text().toUInt()*1024);
- _settings->setBandwidthBurstRate(ui.lineMaxRateLimit->text().toUInt()*1024);
+ saveBandwidthLimits();
setAutoUpdateTimer(ui.chkAutoUpdate->isChecked());
/* Save exit polices */
@@ -177,16 +186,12 @@
ui.lineDirPort->setText(QString::number(_settings->getDirPort()));
ui.lineServerAddress->setText(_settings->getAddress());
ui.lineServerContact->setText(_settings->getContactInfo());
- ui.lineAvgRateLimit->setText(
- QString::number((uint)(_settings->getBandwidthAvgRate()/1024)));
- ui.lineMaxRateLimit->setText(
- QString::number((uint)(_settings->getBandwidthBurstRate()/1024)));
-
+ loadBandwidthLimits();
+
// foreach (Policy policy, _settings->getExitPolicy().policyList()) {
// addPolicyItem(policy);
// }
- ui.frmCustomRate->setVisible(ui.cmboRate->currentIndex() == CUSTOM_RATE);
ui.frmServer->setVisible(ui.chkEnableServer->isChecked());
}
@@ -350,18 +355,87 @@
}
}
+/** Loads the server's bandwidth average and burst limits. */
void
-ServerPage::rateChanged(int index)
+ServerPage::loadBandwidthLimits()
{
- if (index == 6) {
- ui.frmCustomRate->setVisible(true);
+ quint32 avgRate = _settings->getBandwidthAvgRate();
+ quint32 maxRate = _settings->getBandwidthBurstRate();
+
+ if (avgRate == CABLE256_AVG_RATE &&
+ maxRate == CABLE256_MAX_RATE) {
+ /* Cable/DSL 256 Kbps */
+ ui.cmboRate->setCurrentIndex(CableDsl256);
+ } else if (avgRate == CABLE512_AVG_RATE &&
+ maxRate == CABLE512_MAX_RATE) {
+ /* Cable/DSL 512 Kbps */
+ ui.cmboRate->setCurrentIndex(CableDsl512);
+ } else if (avgRate == CABLE768_AVG_RATE &&
+ maxRate == CABLE768_MAX_RATE) {
+ /* Cable/DSL 768 Kbps */
+ ui.cmboRate->setCurrentIndex(CableDsl768);
+ } else if (avgRate == T1_AVG_RATE &&
+ maxRate == T1_MAX_RATE) {
+ /* T1/Cable/DSL 1.5 Mbps */
+ ui.cmboRate->setCurrentIndex(T1CableDsl1500);
+ } else if (avgRate == HIGHBW_AVG_RATE &&
+ maxRate == HIGHBW_MAX_RATE) {
+ /* > 1.5 Mbps */
+ ui.cmboRate->setCurrentIndex(GreaterThan1500);
+ } else {
+ /* Custom bandwidth limits */
+ ui.cmboRate->setCurrentIndex(CustomBwLimits);
}
+ /* Fill in the custom bandwidth limit boxes */
+ ui.lineAvgRateLimit->setText(QString::number(avgRate/1024));
+ ui.lineMaxRateLimit->setText(QString::number(maxRate/1024));
+}
- else {
- ui.frmCustomRate->setVisible(false);
+/** Saves the server's bandwidth average and burst limits. */
+void
+ServerPage::saveBandwidthLimits()
+{
+ quint32 avgRate, maxRate;
+
+ switch (ui.cmboRate->currentIndex()) {
+ case CableDsl256: /* Cable/DSL 256 Kbps */
+ avgRate = CABLE256_AVG_RATE;
+ maxRate = CABLE256_MAX_RATE;
+ break;
+ case CableDsl512: /* Cable/DSL 512 Kbps */
+ avgRate = CABLE512_AVG_RATE;
+ maxRate = CABLE512_MAX_RATE;
+ break;
+ case CableDsl768: /* Cable/DSL 768 Kbps */
+ avgRate = CABLE768_AVG_RATE;
+ maxRate = CABLE768_MAX_RATE;
+ break;
+ case T1CableDsl1500: /* T1/Cable/DSL 1.5 Mbps */
+ avgRate = T1_AVG_RATE;
+ maxRate = T1_MAX_RATE;
+ break;
+ case GreaterThan1500: /* > 1.5 Mbps */
+ avgRate = HIGHBW_AVG_RATE;
+ maxRate = HIGHBW_MAX_RATE;
+ break;
+ default: /* Custom bandwidth limits */
+ avgRate = (quint32)(ui.lineAvgRateLimit->text().toUInt()*1024);
+ maxRate = (quint32)(ui.lineMaxRateLimit->text().toUInt()*1024);
+ break;
}
+ _settings->setBandwidthAvgRate(avgRate);
+ _settings->setBandwidthBurstRate(maxRate);
}
+/** Called when the user selects a new value from the rate combo box. */
+void
+ServerPage::rateChanged(int index)
+{
+ /* If the "Custom" option is selected, show the custom bandwidth
+ * limits form. */
+ ui.frmCustomRate->setVisible(index == CustomBwLimits);
+}
+
/** Called when the user edits the long-term average or maximum bandwidth limit.
* This ensures that the average bandwidth rate is greater than MIN_RATE
* (20KB/s) and that the max rate is greater than the average rate. */
@@ -370,11 +444,11 @@
{
/* Make sure the average rate isn't too low or too high */
quint32 avgRate = (quint32)ui.lineAvgRateLimit->text().toUInt();
- if (avgRate < MIN_RATE) {
- ui.lineAvgRateLimit->setText(QString::number(MIN_RATE));
+ if (avgRate < MIN_BANDWIDTH_RATE) {
+ ui.lineAvgRateLimit->setText(QString::number(MIN_BANDWIDTH_RATE));
}
- if (avgRate > MAX_RATE) {
- ui.lineAvgRateLimit->setText(QString::number(MAX_RATE));
+ if (avgRate > MAX_BANDWIDTH_RATE) {
+ ui.lineAvgRateLimit->setText(QString::number(MAX_BANDWIDTH_RATE));
}
/* Ensure the max burst rate is greater than the average rate but less than
* the maximum allowed rate. */
@@ -382,8 +456,8 @@
if (avgRate > burstRate) {
ui.lineMaxRateLimit->setText(QString::number(avgRate));
}
- if (burstRate > MAX_RATE) {
- ui.lineMaxRateLimit->setText(QString::number(MAX_RATE));
+ if (burstRate > MAX_BANDWIDTH_RATE) {
+ ui.lineMaxRateLimit->setText(QString::number(MAX_BANDWIDTH_RATE));
}
}
Modified: trunk/src/gui/config/serverpage.h
===================================================================
--- trunk/src/gui/config/serverpage.h 2006-10-21 05:04:57 UTC (rev 1365)
+++ trunk/src/gui/config/serverpage.h 2006-10-21 05:08:59 UTC (rev 1366)
@@ -38,6 +38,7 @@
#include "configpage.h"
#include "ui_serverpage.h"
+
class ServerPage : public ConfigPage
{
Q_OBJECT
@@ -61,18 +62,33 @@
void exitPolicyHelp();
/** Called when the user's public IP address needs to be updated. */
void updateServerIP();
- /** Called when the user selects a new value from the rate cmbo box */
+ /** Called when the user selects a new value from the rate combo box */
void rateChanged(int rate);
/** Called when the user edits the max or average bandwidth limits. */
void customRateChanged();
private:
+ /** Index values of rate values in the bandwidth limits dropdown box. */
+ enum BwRateIndex {
+ CableDsl256 = 0, /**< Cable/DSL 256 Kbps */
+ CableDsl512, /**< Cable/DSL 512 Kbps */
+ CableDsl768, /**< Cable/DSL 768 Kbps */
+ T1CableDsl1500, /**< T1/Cable/DSL 1.5 Mbps */
+ GreaterThan1500, /**< > 1.5 Mbps */
+ CustomBwLimits /**< Custom bandwidth limits */
+ };
+
/** Attempts to find the server's public IP address */
void getServerPublicIP();
/** Returns the index of the selected item in lstExitPolicies */
int selectedIndex();
/** Enables or disables the automatic update timer. */
void setAutoUpdateTimer(bool enabled);
+
+ /** Saves the server's bandwidth average and burst limits. */
+ void saveBandwidthLimits();
+ /** Loads the server's bandwidth average and burst limits. */
+ void loadBandwidthLimits();
/** A TorControl object used to talk to Tor */
TorControl* _torControl;