Changeset 234


Ignore:
Timestamp:
07/11/07 18:31:31 (13 years ago)
Author:
Eoin
Message:

Proxy settings need overhaul.

Files:
9 edited

Legend:

Unmodified
Added
Removed
  • res/Halite.rc

    r233 r234  
    4242END 
    4343 
    44 IDD_CONFIGBIT DIALOGEX 0, 0, 283, 152 
     44IDD_CONFIGBIT DIALOGEX 0, 0, 285, 155 
    4545STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU 
    4646CAPTION "BitTorrent" 
    4747FONT 8, "MS Shell Dlg", 400, 0, 0x1 
    4848BEGIN 
    49     GROUPBOX        "Global Options",IDC_STATIC,6,6,271,77 
    50     RTEXT           "Open a (single) port between : ",IDC_STATIC,12,66,114,12 
    51     EDITTEXT        IDC_BC_PORTFROM,126,64,54,12,ES_AUTOHSCROLL 
    52     EDITTEXT        IDC_BC_PORTTO,217,64,54,12,ES_AUTOHSCROLL 
    53     CONTROL         "Enable DHT. (Note neither DHT nor PEX will apply to private torrents)",IDC_BC_DHT, 
    54                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,98,258,12 
    55 //  CONTROL         "Enable IP filtering.",IDC_BC_FILTERCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,128,102,12 
    56 //  PUSHBUTTON      "Import ipfilter.dat",IDC_BC_FILTERLOAD,196,127,75,14,WS_DISABLED 
    57 //  PUSHBUTTON      "Clear IP database",IDC_BC_FILTERCLEAR,115,127,75,14,WS_DISABLED 
    58     EDITTEXT        IDC_BC_PROXYIP,124,17,77,12,ES_AUTOHSCROLL 
    59     RTEXT           "Proxy Host/IP : ",IDC_BC_PROXYIP_S,68,19,55,12 
    60     CONTROL         "Use a proxy.",IDC_BC_PROXYCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,19,59,8 
    61     RTEXT           "Port : ",IDC_BC_PROXYPORT_S,204,19,24,12 
    62     EDITTEXT        IDC_BC_PROXYPORT,229,17,42,12,ES_AUTOHSCROLL | ES_NUMBER 
    63     EDITTEXT        IDC_BC_PROXYUSER,54,33,89,12,ES_AUTOHSCROLL 
    64     RTEXT           "Username : ",IDC_BC_PROXYUSER_S,8,35,44,12 
    65     RTEXT           "Password : ",IDC_BC_PROXYPASS_S,146,35,39,12 
    66     EDITTEXT        IDC_BC_PROXYPASS,188,33,83,12,ES_PASSWORD | ES_AUTOHSCROLL 
    67     CONTROL         "to",IDC_BC_PORTCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,182,64,32,12 
    68     LTEXT           "Select a (TCP) port (or range of ports) to listen for incomming connections.",IDC_STATIC,12,52,258,11 
    69     GROUPBOX        "Global Options",IDC_STATIC,6,86,271,59 
    70     EDITTEXT        IDC_BC_DHTPORT,78,112,77,12,ES_AUTOHSCROLL 
    71     RTEXT           "Port (UDP) : ",IDC_BC_DHTPORT_S,12,114,66,12 
    72 END 
    73  
    74 IDD_CONFIGSECURITY DIALOGEX 0, 0, 283, 152 
     49    RTEXT           "Open a (single) port between : ",IDC_STATIC,12,31,114,12 
     50    EDITTEXT        IDC_BC_PORTFROM,126,29,54,12,ES_AUTOHSCROLL 
     51    EDITTEXT        IDC_BC_PORTTO,217,29,54,12,ES_AUTOHSCROLL 
     52    CONTROL         "Enable DHT",IDC_BC_DHT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,120,68,10 
     53    CONTROL         "to",IDC_BC_PORTCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,182,29,32,12 
     54    LTEXT           "Select the (TCP) port (or range) on which to listen for incomming connections.",IDC_STATIC,12,17,258,11 
     55    GROUPBOX        "Distributed Hash Tables",IDC_STATIC,5,108,217,39 
     56    EDITTEXT        IDC_BC_DHTPORT,139,119,77,12,ES_AUTOHSCROLL 
     57    RTEXT           "Port (UDP) : ",IDC_BC_DHTPORT_S,85,121,51,8 
     58    CTEXT           "(DHT will not apply to pirvate torrents)",IDC_STATIC,11,134,205,8 
     59    RTEXT           "Need Help?",IDC_BC_HELP_LINK,229,139,51,8 
     60    GROUPBOX        "General Settings",IDC_STATIC,5,7,274,54 
     61    EDITTEXT        IDC_BC_HALFCONN_NUM,182,44,54,12,ES_AUTOHSCROLL 
     62    CONTROL         "Limit the no. of half-open connections",IDC_BC_HALFCONN_CHECK, 
     63                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,45,166,12 
     64    RTEXT           "Why?",IDC_BC_CON_WHY,239,47,31,8 
     65END 
     66 
     67IDD_CONFIGPROXY DIALOGEX 0, 0, 285, 155 
     68STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU 
     69CAPTION "Proxies" 
     70FONT 8, "MS Shell Dlg", 400, 0, 0x1 
     71BEGIN 
     72    EDITTEXT        IDC_BC_PROXYIP,124,46,77,12,ES_AUTOHSCROLL 
     73    RTEXT           "Proxy Host/IP : ",IDC_BC_PROXYIP_S,68,48,55,12 
     74    CONTROL         "Use a proxy.",IDC_BC_PROXYCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,48,59,8 
     75    RTEXT           "Port : ",IDC_BC_PROXYPORT_S,204,48,24,12 
     76    EDITTEXT        IDC_BC_PROXYPORT,229,46,42,12,ES_AUTOHSCROLL | ES_NUMBER 
     77    EDITTEXT        IDC_BC_PROXYUSER,54,62,89,12,ES_AUTOHSCROLL 
     78    RTEXT           "Username : ",IDC_BC_PROXYUSER_S,8,64,44,12 
     79    RTEXT           "Password : ",IDC_BC_PROXYPASS_S,146,64,39,12 
     80    EDITTEXT        IDC_BC_PROXYPASS,188,62,83,12,ES_PASSWORD | ES_AUTOHSCROLL 
     81    CONTROL         "Peer",IDC_PEERPROXY,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE,16,19,57,15 
     82    CONTROL         "Web Seed",IDC_WEBPROXY,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE,81,19,57,15 
     83    CONTROL         "Tracker",IDC_TRACKERPROXY,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE,146,19,57,15 
     84    CONTROL         "DHT",IDC_DHTPROXY,"Button",BS_AUTORADIOBUTTON | BS_PUSHLIKE | WS_DISABLED,211,19,57,15 
     85    GROUPBOX        "Proxy Settings",IDC_STATIC,6,7,271,108 
     86END 
     87 
     88IDD_CONFIGSECURITY DIALOGEX 0, 0, 285, 155 
    7589STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU 
    7690CAPTION "Security" 
    7791FONT 8, "MS Shell Dlg", 400, 0, 0x1 
    7892BEGIN 
    79     GROUPBOX        "IP Filtering",IDC_STATIC,5,7,271,29 
     93    GROUPBOX        "IP Filtering",IDC_STATIC,5,7,274,29 
    8094    CONTROL         "Enable IP filtering.",IDC_BC_FILTERCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,18,102,12 
    8195    PUSHBUTTON      "Import ipfilter.dat",IDC_BC_FILTERLOAD,196,17,75,14,WS_DISABLED 
    8296    PUSHBUTTON      "Clear IP database",IDC_BC_FILTERCLEAR,115,17,75,14,WS_DISABLED 
    83     GROUPBOX        "Protocol Encryption",IDC_STATIC,5,39,271,75 
     97    GROUPBOX        "Protocol Encryption",IDC_STATIC,5,39,274,75 
    8498    CONTROL         "Enable Protocol Encryption.",IDC_SC_ENABLE_PE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,50,104,10 
    85     GROUPBOX        "Connection Policies",IDC_STATIC,170,52,99,55 
     99    GROUPBOX        "Connection Policies",IDC_STATIC,170,49,101,58 
    86100    LTEXT           "Incoming",IDC_STATIC,177,61,42,9 
    87101    RTEXT           "Outcoming",IDC_STATIC,220,61,42,9 
     
    248262    GROUPBOX        "Program Information",IDC_STATIC,5,7,271,136 
    249263    RTEXT           HALITE_VERSION_STRING,IDC_STATIC,145,145,129,9 
    250     EDITTEXT        IDC_EDITABOUT,8,15,265,125,ES_CENTER | ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL 
     264    LTEXT           "",IDC_EDITABOUT,8,15,265,125 
    251265END 
    252266 
     
    452466STRINGTABLE 
    453467BEGIN 
    454 HAL_ABOUT_BOX "Halite is a BitTorrent client based on the libtorrent library from Rasterbar.com. The program is written in C++ relying on the Boost libraries and WTL. It is open sourced under a MIT and/or Boost software licence.\r\n\r\nThis project has only been possible thanks to the excellent work others. I'd like to acknowledge some of those people.\r\n\r\nArvid Norberg - www.rasterbar.com - Author of the libtorrent library.\r\nChristopher Kohlhoff - asio.sourceforge.net - Author of Boost.ASIO.\r\nnudone (Nick Pearson) - wtfcody.com / nudsville.com - Designed the Icon." 
     468HAL_ABOUT_BOX "Halite  to the exceed the Icon." 
     469//HAL_ABOUT_BOX "Halite is a BitTorrent client based on the libtorrent library from Rasterbar.com. The program is written in C++ relying on the Boost libraries and WTL. It is open sourced under a MIT and/or Boost software licence.\r\n\r\nThis project has only been possible thanks to the excellent work others. I'd like to acknowledge some of those people.\r\n\r\nArvid Norberg - www.rasterbar.com - Author of the libtorrent library.\r\nChristopher Kohlhoff - asio.sourceforge.net - Author of Boost.ASIO.\r\nnudone (Nick Pearson) - wtfcody.com / nudsville.com - Designed the Icon." 
    455470END 
    456471 
  • res/resource.h

    r233 r234  
    33#endif 
    44 
    5 #define HALITE_VERSION                                  0,2,9,217 
    6 #define HALITE_VERSION_STRING                   "v 0.2.9 dev 217" 
     5#define HALITE_VERSION                                  0,2,9,234 
     6#define HALITE_VERSION_STRING                   "v 0.2.9 dev 234" 
    77 
    88#define HALITE_LANGUAGE                                 10 
     
    1212#define IDD_CONFIGREMOTE                103 
    1313#define IDD_CONFIGSECURITY              108 
     14#define IDD_CONFIGPROXY                 109 
    1415#define IDD_ABOUT                       104 
    1516#define IDD_CLOSESPLASH                 105 
     
    3132#define IDD_ADVPEER                     131 
    3233#define IDR_TRACKERLV_MENU              132 
     34#define IDC_PEERPROXY                   1000 
     35#define IDC_WEBPROXY                    1001 
     36#define IDC_TRACKERPROXY                1002 
     37#define IDC_DHTPROXY                    1003 
    3338#define IDC_TRANS                       1000 
    3439#define LISTPEERS                       1000 
     
    143148#define IDC_SC_PE_CP_OUT_FORCED         1097 
    144149#define IDC_SC_HELP_LINK                1098 
     150#define IDC_BC_HELP_LINK                1098 
     151#define IDC_BC_CON_WHY                  1099 
     152#define IDC_BC_HALFCONN_CHECK           1100 
     153#define IDC_BC_HALFCONN_NUM             1101 
    145154#define ED_CON                          3000 
    146155#define IDPANE_STATUS                   40000 
  • src/ConfigOptions.hpp

    r233 r234  
    1  
     1 
    22#pragma once 
    33 
     
    8181        MSG_WM_INITDIALOG(OnInitDialog) 
    8282                COMMAND_ID_HANDLER_EX(IDC_BC_PORTCHECK, onPortCheck) 
    83                 COMMAND_ID_HANDLER_EX(IDC_BC_PROXYCHECK, onProxyCheck) 
     83                COMMAND_ID_HANDLER_EX(IDC_BC_HALFCONN_CHECK, onHalfCheck) 
    8484                COMMAND_ID_HANDLER_EX(IDC_BC_DHT, onDHTCheck) 
    8585        CHAIN_MSG_MAP(CPropertyPageImpl<BitTorrentOptions>) 
     
    8787 
    8888    BEGIN_DDX_MAP(BitTorrentOptions) 
     89        DDX_CHECK(IDC_BC_PORTCHECK, hal::config().portRange) 
    8990        DDX_INT(IDC_BC_PORTFROM, hal::config().portFrom) 
    90         DDX_INT(IDC_BC_PORTTO, hal::config().portTo) 
     91        DDX_INT(IDC_BC_PORTTO, hal::config().portTo)             
     92        DDX_CHECK(IDC_BC_HALFCONN_CHECK, hal::config().halfConn) 
     93        DDX_EX_INT_POSITIVE(IDC_BC_HALFCONN_NUM, hal::config().halfConnLimit) 
    9194        DDX_CHECK(IDC_BC_DHT, hal::config().enableDHT) 
    92         DDX_CHECK(IDC_BC_PORTCHECK, hal::config().portRange) 
    9395        DDX_INT(IDC_BC_DHTPORT, hal::config().dhtServicePort) 
    9496    END_DDX_MAP() 
    9597 
    9698    BOOL OnInitDialog (HWND hwndFocus, LPARAM lParam) 
    97         { 
    98                 BOOL retval =  DoDataExchange(false); 
    99  
    100                 onProxyCheck(0, 0, GetDlgItem(IDC_BC_PROXYCHECK)); 
     99        {        
     100                helpLink.SubclassWindow(GetDlgItem(IDC_BC_HELP_LINK)); 
     101                helpLink.SetHyperLink(L"http://www.binarynotions.com/"); 
     102                 
     103                whyHalfConn.SubclassWindow(GetDlgItem(IDC_BC_CON_WHY)); 
     104                whyHalfConn.SetHyperLink(L"http://www.binarynotions.com/"); 
     105                 
     106                BOOL retval = DoDataExchange(false); 
     107 
     108                onHalfCheck(0, 0, GetDlgItem(IDC_BC_HALFCONN_CHECK)); 
    101109                onPortCheck(0, 0, GetDlgItem(IDC_BC_PORTCHECK)); 
    102110                onDHTCheck(0, 0, GetDlgItem(IDC_BC_DHT)); 
     
    124132                        ::EnableWindow(GetDlgItem(IDC_BC_DHTPORT_S), false); 
    125133                } 
     134        } 
     135 
     136        void onPortCheck(UINT, int, HWND hWnd) 
     137        { 
     138                LRESULT result = ::SendMessage(hWnd, BM_GETCHECK, 0, 0); 
     139 
     140                if (result == BST_CHECKED) 
     141                { 
     142                        ::EnableWindow(GetDlgItem(IDC_BC_PORTTO), true); 
     143                } 
     144                else 
     145                { 
     146                        ::EnableWindow(GetDlgItem(IDC_BC_PORTTO), false); 
     147                        boost::array<wchar_t, MAX_PATH> buffer; 
     148                        GetDlgItemText(IDC_BC_PORTFROM, buffer.elems, MAX_PATH); 
     149                        SetDlgItemText(IDC_BC_PORTTO, buffer.elems); 
     150                } 
     151        } 
     152 
     153        void onHalfCheck(UINT, int, HWND hWnd) 
     154        { 
     155                LRESULT result = ::SendMessage(hWnd, BM_GETCHECK, 0, 0); 
     156 
     157                if (result == BST_CHECKED) 
     158                { 
     159                        ::EnableWindow(GetDlgItem(IDC_BC_HALFCONN_NUM), true); 
     160                } 
     161                else 
     162                { 
     163                        ::EnableWindow(GetDlgItem(IDC_BC_HALFCONN_NUM), false); 
     164                        SetDlgItemText(IDC_BC_HALFCONN_NUM, L"∞"); 
     165                } 
     166        } 
     167private: 
     168        CHyperLink helpLink; 
     169        CHyperLink whyHalfConn; 
     170}; 
     171 
     172class ProxyOptions : 
     173    public CPropertyPageImpl<ProxyOptions>, 
     174    public CWinDataExchangeEx<ProxyOptions> 
     175{ 
     176public: 
     177    enum { IDD = IDD_CONFIGPROXY }; 
     178 
     179        ProxyOptions() 
     180        {} 
     181 
     182        ~ProxyOptions() 
     183        {} 
     184 
     185    BEGIN_MSG_MAP_EX(ProxyOptions) 
     186        MSG_WM_INITDIALOG(OnInitDialog) 
     187                COMMAND_ID_HANDLER_EX(IDC_BC_PROXYCHECK, onProxyCheck) 
     188        CHAIN_MSG_MAP(CPropertyPageImpl<ProxyOptions>) 
     189    END_MSG_MAP() 
     190 
     191    BEGIN_DDX_MAP(ProxyOptions) 
     192         
     193    END_DDX_MAP() 
     194 
     195    BOOL OnInitDialog (HWND hwndFocus, LPARAM lParam) 
     196        { 
     197                BOOL retval =  DoDataExchange(false); 
     198 
     199                onProxyCheck(0, 0, GetDlgItem(IDC_BC_PROXYCHECK)); 
     200 
     201                return retval; 
     202        } 
     203 
     204    int OnApply() 
     205        { 
     206                return DoDataExchange(true); 
    126207        } 
    127208 
     
    380461    END_MSG_MAP() 
    381462 
    382  
    383463    BOOL OnInitDialog (HWND hwndFocus, LPARAM lParam) 
    384464        { 
    385                 SetDlgItemText(IDC_EDITABOUT, hal::app().res_wstr(HAL_ABOUT_BOX).c_str()); 
    386465                 
    387466                return true; 
    388467        } 
     468         
     469private: 
    389470}; 
    390471 
  • src/HaliteWindow.cpp

    r231 r234  
    463463LRESULT HaliteWindow::OnHelp(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) 
    464464{ 
    465         ConfigOptionsProp sheet(this, L"Settings", 4);   
     465        ConfigOptionsProp sheet(this, L"Settings", 5);   
    466466    sheet.DoModal(); 
    467467         
  • src/halConfig.cpp

    r233 r234  
    7070        } 
    7171         
    72         bittorrent().resumeAll(); 
     72        bittorrent().setSessionHalfOpenLimit(halfConnLimit); 
     73         
     74        bittorrent().resumeAll();        
    7375         
    7476        bittorrent().setSessionLimits( 
  • src/halConfig.hpp

    r232 r234  
    1313class BitTorrentOptions; 
    1414class SecurityOptions; 
     15class ProxyOptions; 
    1516class TorrentsOptions; 
    1617         
     
    5051                pePerferRc4(false), 
    5152                peConInPolicy(1), 
    52                 peConOutPolicy(1) 
     53                peConOutPolicy(1), 
     54                halfConn(true), 
     55                halfConnLimit(10) 
    5356        {} 
    5457         
     
    7780                ar & BOOST_SERIALIZATION_NVP(torrentUpRate); 
    7881                 
    79                 ar & BOOST_SERIALIZATION_NVP(enableProxy); 
    80                 ar & BOOST_SERIALIZATION_NVP(proxyHost); 
    81                 ar & BOOST_SERIALIZATION_NVP(proxyPort); 
    82                 ar & BOOST_SERIALIZATION_NVP(proxyUsername); 
    83                 ar & BOOST_SERIALIZATION_NVP(proxyPassword); 
     82                if (version <= 1) { 
     83                        ar & BOOST_SERIALIZATION_NVP(enableProxy); 
     84                        ar & BOOST_SERIALIZATION_NVP(proxyHost); 
     85                        ar & BOOST_SERIALIZATION_NVP(proxyPort); 
     86                        ar & BOOST_SERIALIZATION_NVP(proxyUsername); 
     87                        ar & BOOST_SERIALIZATION_NVP(proxyPassword); 
     88                } 
    8489                 
    8590                ar & BOOST_SERIALIZATION_NVP(defaultSaveFolder); 
     
    9398                        ar & BOOST_SERIALIZATION_NVP(peConOutPolicy); 
    9499                } 
     100                if (version > 1) { 
     101                        ar & BOOST_SERIALIZATION_NVP(halfConn); 
     102                        ar & BOOST_SERIALIZATION_NVP(halfConnLimit); 
     103                } 
    95104        } 
    96105         
     
    100109        friend class BitTorrentOptions; 
    101110        friend class SecurityOptions; 
     111        friend class ProxyOptions; 
    102112        friend class TorrentsOptions; 
    103113 
     
    143153    int peConInPolicy; 
    144154    int peConOutPolicy; 
     155         
     156        bool halfConn; 
     157        int halfConnLimit; 
    145158}; 
    146159 
     
    149162} // namespace hal 
    150163 
    151 BOOST_CLASS_VERSION(hal::Config, 1) 
     164BOOST_CLASS_VERSION(hal::Config, 2) 
  • src/halTorrent.cpp

    r233 r234  
    829829} 
    830830 
     831 
     832void BitTorrent::setSessionHalfOpenLimit(int halfConn) 
     833{ 
     834        pimpl->theSession.set_max_half_open_connections(halfConn); 
     835} 
     836 
    831837void BitTorrent::setTorrentDefaults(int maxConn, int maxUpload, float download, float upload) 
    832838{ 
  • src/halTorrent.hpp

    r233 r234  
    202202        void ensure_pe_off(); 
    203203         
     204        void setSessionHalfOpenLimit(int halfConn); 
    204205        void setSessionLimits(int maxConn, int maxUpload); 
    205206        void setSessionSpeed(float download, float upload); 
  • src/stdAfx.hpp

    r215 r234  
    3636#include <atlctrlx.h> 
    3737#include <atlddx.h> 
     38#include <atlscrl.h> 
    3839 
    3940#include "global/wtl_app.hpp" 
Note: See TracChangeset for help on using the changeset viewer.