rendered paste bodyIndex: macosx/IPCController.m
===================================================================
--- macosx/IPCController.m (revision 4346)
+++ macosx/IPCController.m (working copy)
@@ -807,16 +807,26 @@
fDefaults = [NSUserDefaults standardUserDefaults];
+ int theValue;
+
switch( msgid )
{
case IPC_MSG_GETDOWNLIMIT:
- [client sendrespInt:IPC_MSG_DOWNLIMIT tag:tag val:[fDefaults integerForKey:@"DownloadLimit"]];
+ if ( [fDefaults boolForKey:@"CheckDownload"] )
+ theValue = [fDefaults integerForKey:@"DownloadLimit"];
+ else
+ theValue = -1;
+ [client sendrespInt:IPC_MSG_DOWNLIMIT tag:tag val:theValue];
break;
case IPC_MSG_GETPORT:
[client sendrespInt:IPC_MSG_PORT tag:tag val:[fDefaults integerForKey:@"BindPort"]];
break;
case IPC_MSG_GETUPLIMIT:
- [client sendrespInt:IPC_MSG_UPLIMIT tag:tag val:[fDefaults integerForKey:@"UploadLimit"]];
+ if ( [fDefaults boolForKey:@"CheckUpload"] )
+ theValue = [fDefaults integerForKey:@"UploadLimit"];
+ else
+ theValue = -1;
+ [client sendrespInt:IPC_MSG_UPLIMIT tag:tag val:theValue];
break;
default:
assert( 0 );
@@ -904,7 +914,13 @@
switch( msgid )
{
case IPC_MSG_DOWNLIMIT:
- [fDefaults setInteger:val->val.i forKey:@"DownloadLimit"];
+ if ( val->val.i < 0 )
+ [fDefaults setBool:FALSE forKey:@"CheckDownload"];
+ else
+ {
+ [fDefaults setBool:TRUE forKey:@"CheckDownload"];
+ [fDefaults setInteger:val->val.i forKey:@"DownloadLimit"];
+ }
[fPrefsController updateLimitFields];
[fPrefsController applySpeedSettings: nil];
break;
@@ -913,7 +929,13 @@
[fPrefsController updatePortField];
break;
case IPC_MSG_UPLIMIT:
- [fDefaults setInteger:val->val.i forKey:@"UploadLimit"];
+ if ( val->val.i < 0 )
+ [fDefaults setBool:FALSE forKey:@"CheckUpload"];
+ else
+ {
+ [fDefaults setBool:TRUE forKey:@"CheckUpload"];
+ [fDefaults setInteger:val->val.i forKey:@"UploadLimit"];
+ }
[fPrefsController updateLimitFields];
[fPrefsController applySpeedSettings: nil];
break;