Skip to content

Commit 25df397

Browse files
Merge pull request #1467 from xavery/rpc-dont-send-booleans-as-integers
2 parents b1f5c23 + 041aa08 commit 25df397

File tree

2 files changed

+56
-57
lines changed

2 files changed

+56
-57
lines changed

daemonoptions.pas

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ procedure TDaemonOptionsForm.btTestPortClick(Sender: TObject);
157157
if res = nil then
158158
MainForm.CheckStatus(False)
159159
else
160-
if res.Objects['arguments'].Integers['port-is-open'] <> 0 then
160+
if res.Objects['arguments'].Booleans['port-is-open'] then
161161
MessageDlg(sPortTestSuccess, mtInformation, [mbOk], 0)
162162
else
163163
MessageDlg(sPortTestFailed, mtError, [mbOK], 0);

main.pas

Lines changed: 55 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
along with Transmission Remote GUI; if not, write to the Free Software
1717
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
1818
19-
In addition, as a special exception, the copyright holders give permission to
19+
In addition, as a special exception, the copyright holders give permission to
2020
link the code of portions of this program with the
2121
OpenSSL library under certain conditions as described in each individual
2222
source file, and distribute linked combinations including the two.
@@ -2083,7 +2083,7 @@ procedure TMainForm.acMoveTorrentExecute(Sender: TObject);
20832083
aids.Add(integer(ids[i]));
20842084
args.Add('ids', aids);
20852085
args.Add('location', TJSONString.Create(UTF8Decode(edTorrentDir.Text)));
2086-
args.Add('move', TJSONIntegerNumber.Create(integer(cbMoveData.Checked) and 1));
2086+
args.Add('move', cbMoveData.Checked);
20872087
req.Add('arguments', args);
20882088
args:=RpcObj.SendRequest(req, False);
20892089
args.Free;
@@ -2264,7 +2264,7 @@ procedure TMainForm.acAltSpeedExecute(Sender: TObject);
22642264
try
22652265
req.Add('method', 'session-set');
22662266
args:=TJSONObject.Create;
2267-
args.Add('alt-speed-enabled', integer(not acAltSpeed.Checked) and 1);
2267+
args.Add('alt-speed-enabled', not acAltSpeed.Checked);
22682268
req.Add('arguments', args);
22692269
args:=RpcObj.SendRequest(req, False);
22702270
if args = nil then begin
@@ -2673,7 +2673,7 @@ function TMainForm.DoAddTorrent(const FileName: Utf8String): boolean;
26732673
edSearch.Text:='';
26742674

26752675
args:=TJSONObject.Create;
2676-
args.Add('paused', TJSONIntegerNumber.Create(1));
2676+
args.Add('paused', True);
26772677
i:=Ini.ReadInteger(IniSec, 'PeerLimit', 0);
26782678
if i <> 0 then
26792679
args.Add('peer-limit', TJSONIntegerNumber.Create(i));
@@ -2762,7 +2762,7 @@ function TMainForm.DoAddTorrent(const FileName: Utf8String): boolean;
27622762
TorrentAction(id, 'torrent-remove');
27632763
id:=0;
27642764
args:=TJSONObject.Create;
2765-
args.Add('paused', TJSONIntegerNumber.Create(1));
2765+
args.Add('paused', True);
27662766
args.Add('peer-limit', TJSONIntegerNumber.Create(edPeerLimit.Value));
27672767
args.Add('download-dir', TJSONString.Create(UTF8Decode(cbDestFolder.Text)));
27682768
id:=_AddTorrent(args);
@@ -3371,18 +3371,18 @@ procedure TMainForm.acDaemonOptionsExecute(Sender: TObject);
33713371
if RpcObj.RPCVersion >= 5 then begin
33723372
// RPC version 5
33733373
edPort.Value:=args.Integers['peer-port'];
3374-
cbPEX.Checked:=args.Integers['pex-enabled'] <> 0;
3374+
cbPEX.Checked:=args.Booleans['pex-enabled'];
33753375
edMaxPeers.Value:=args.Integers['peer-limit-global'];
3376-
cbRandomPort.Checked:=args.Integers['peer-port-random-on-start'] <> 0;
3377-
cbDHT.Checked:=args.Integers['dht-enabled'] <> 0;
3378-
cbSeedRatio.Checked:=args.Integers['seedRatioLimited'] <> 0;
3376+
cbRandomPort.Checked:=args.Booleans['peer-port-random-on-start'];
3377+
cbDHT.Checked:=args.Booleans['dht-enabled'];
3378+
cbSeedRatio.Checked:=args.Booleans['seedRatioLimited'];
33793379
edSeedRatio.Value:=args.Floats['seedRatioLimit'];
3380-
cbBlocklist.Checked:=args.Integers['blocklist-enabled'] <> 0;
3380+
cbBlocklist.Checked:=args.Booleans['blocklist-enabled'];
33813381

3382-
cbAltEnabled.Checked:=args.Integers['alt-speed-enabled'] <> 0;
3382+
cbAltEnabled.Checked:=args.Booleans['alt-speed-enabled'];
33833383
edAltDown.Value:=args.Integers['alt-speed-down'];
33843384
edAltUp.Value:=args.Integers['alt-speed-up'];
3385-
cbAutoAlt.Checked:=args.Integers['alt-speed-time-enabled'] <> 0;
3385+
cbAutoAlt.Checked:=args.Booleans['alt-speed-time-enabled'];
33863386
edAltTimeBegin.Text:=FormatDateTime('hh:nn', args.Integers['alt-speed-time-begin']/MinsPerDay);
33873387
edAltTimeEnd.Text:=FormatDateTime('hh:nn', args.Integers['alt-speed-time-end']/MinsPerDay);
33883388
j:=args.Integers['alt-speed-time-day'];
@@ -3408,7 +3408,7 @@ procedure TMainForm.acDaemonOptionsExecute(Sender: TObject);
34083408
end;
34093409

34103410
if RpcObj.RPCVersion >= 7 then begin
3411-
cbIncompleteDir.Checked:=args.Integers['incomplete-dir-enabled'] <> 0;
3411+
cbIncompleteDir.Checked:=args.Booleans['incomplete-dir-enabled'];
34123412
edIncompleteDir.Text:=UTF8Encode(args.Strings['incomplete-dir']);
34133413
cbIncompleteDirClick(nil);
34143414
end
@@ -3418,18 +3418,18 @@ procedure TMainForm.acDaemonOptionsExecute(Sender: TObject);
34183418
end;
34193419

34203420
if RpcObj.RPCVersion >= 8 then
3421-
cbPartExt.Checked:=args.Integers['rename-partial-files'] <> 0
3421+
cbPartExt.Checked:=args.Booleans['rename-partial-files']
34223422
else
34233423
cbPartExt.Visible:=False;
34243424

34253425
if RpcObj.RPCVersion >= 9 then
3426-
cbLPD.Checked:=args.Integers['lpd-enabled'] <> 0
3426+
cbLPD.Checked:=args.Booleans['lpd-enabled']
34273427
else
34283428
cbLPD.Visible:=False;
34293429

34303430
if RpcObj.RPCVersion >= 10 then begin
34313431
edCacheSize.Value:=args.Integers['cache-size-mb'];
3432-
cbIdleSeedLimit.Checked:=args.Integers['idle-seeding-limit-enabled'] <> 0;
3432+
cbIdleSeedLimit.Checked:=args.Booleans['idle-seeding-limit-enabled'];
34333433
edIdleSeedLimit.Value:=args.Integers['idle-seeding-limit'];
34343434
cbIdleSeedLimitClick(nil);
34353435
end
@@ -3452,23 +3452,23 @@ procedure TMainForm.acDaemonOptionsExecute(Sender: TObject);
34523452
cbBlocklistClick(nil);
34533453

34543454
if RpcObj.RPCVersion >= 13 then
3455-
cbUTP.Checked:=args.Integers['utp-enabled'] <> 0
3455+
cbUTP.Checked:=args.Booleans['utp-enabled']
34563456
else
34573457
cbUTP.Visible:=False;
34583458

34593459
if RpcObj.RPCVersion >= 14 then begin
34603460
tabQueue.TabVisible:=True;
3461-
cbDownQueue.Checked:=args.Integers['download-queue-enabled'] <> 0;
3461+
cbDownQueue.Checked:=args.Booleans['download-queue-enabled'];
34623462
edDownQueue.Value:=args.Integers['download-queue-size'];
3463-
cbUpQueue.Checked:=args.Integers['seed-queue-enabled'] <> 0;
3463+
cbUpQueue.Checked:=args.Booleans['seed-queue-enabled'];
34643464
edUpQueue.Value:=args.Integers['seed-queue-size'];
3465-
cbStalled.Checked:=args.Integers['queue-stalled-enabled'] <> 0;
3465+
cbStalled.Checked:=args.Booleans['queue-stalled-enabled'];
34663466
edStalledTime.Value:=args.Integers['queue-stalled-minutes'];
34673467
end
34683468
else
34693469
tabQueue.TabVisible:=False;
34703470

3471-
cbPortForwarding.Checked:=args.Integers['port-forwarding-enabled'] <> 0;
3471+
cbPortForwarding.Checked:=args.Booleans['port-forwarding-enabled'];
34723472
s:=args.Strings['encryption'];
34733473
if s = 'preferred' then
34743474
cbEncryption.ItemIndex:=1
@@ -3477,9 +3477,9 @@ procedure TMainForm.acDaemonOptionsExecute(Sender: TObject);
34773477
cbEncryption.ItemIndex:=2
34783478
else
34793479
cbEncryption.ItemIndex:=0;
3480-
cbMaxDown.Checked:=args.Integers['speed-limit-down-enabled'] <> 0;
3480+
cbMaxDown.Checked:=args.Booleans['speed-limit-down-enabled'];
34813481
edMaxDown.Value:=args.Integers['speed-limit-down'];
3482-
cbMaxUp.Checked:=args.Integers['speed-limit-up-enabled'] <> 0;
3482+
cbMaxUp.Checked:=args.Booleans['speed-limit-up-enabled'];
34833483
edMaxUp.Value:=args.Integers['speed-limit-up'];
34843484
finally
34853485
args.Free;
@@ -3505,34 +3505,34 @@ procedure TMainForm.acDaemonOptionsExecute(Sender: TObject);
35053505
req.Add('method', 'session-set');
35063506
args:=TJSONObject.Create;
35073507
args.Add('download-dir', UTF8Decode(edDownloadDir.Text));
3508-
args.Add('port-forwarding-enabled', integer(cbPortForwarding.Checked) and 1);
3508+
args.Add('port-forwarding-enabled', cbPortForwarding.Checked);
35093509
case cbEncryption.ItemIndex of
35103510
1: s:='preferred';
35113511
2: s:='required';
35123512
else s:='tolerated';
35133513
end;
35143514
args.Add('encryption', s);
3515-
args.Add('speed-limit-down-enabled', integer(cbMaxDown.Checked) and 1);
3515+
args.Add('speed-limit-down-enabled', cbMaxDown.Checked);
35163516
if cbMaxDown.Checked then
35173517
args.Add('speed-limit-down', edMaxDown.Value);
3518-
args.Add('speed-limit-up-enabled', integer(cbMaxUp.Checked) and 1);
3518+
args.Add('speed-limit-up-enabled', cbMaxUp.Checked);
35193519
if cbMaxUp.Checked then
35203520
args.Add('speed-limit-up', edMaxUp.Value);
35213521
if RpcObj.RPCVersion >= 5 then begin
35223522
args.Add('peer-limit-global', edMaxPeers.Value);
35233523
args.Add('peer-port', edPort.Value);
3524-
args.Add('pex-enabled', integer(cbPEX.Checked) and 1);
3525-
args.Add('peer-port-random-on-start', integer(cbRandomPort.Checked) and 1);
3526-
args.Add('dht-enabled', integer(cbDHT.Checked) and 1);
3527-
args.Add('seedRatioLimited', integer(cbSeedRatio.Checked) and 1);
3524+
args.Add('pex-enabled', cbPEX.Checked);
3525+
args.Add('peer-port-random-on-start', cbRandomPort.Checked);
3526+
args.Add('dht-enabled', cbDHT.Checked);
3527+
args.Add('seedRatioLimited', cbSeedRatio.Checked);
35283528
if cbSeedRatio.Checked then
35293529
args.Add('seedRatioLimit', edSeedRatio.Value);
3530-
args.Add('blocklist-enabled', integer(cbBlocklist.Checked) and 1);
3530+
args.Add('blocklist-enabled', cbBlocklist.Checked);
35313531

3532-
args.Add('alt-speed-enabled', integer(cbAltEnabled.Checked) and 1);
3532+
args.Add('alt-speed-enabled', cbAltEnabled.Checked);
35333533
args.Add('alt-speed-down', edAltDown.Value);
35343534
args.Add('alt-speed-up', edAltUp.Value);
3535-
args.Add('alt-speed-time-enabled', integer(cbAutoAlt.Checked) and 1);
3535+
args.Add('alt-speed-time-enabled', cbAutoAlt.Checked);
35363536
if cbAutoAlt.Checked then begin
35373537
args.Add('alt-speed-time-begin', Round(Frac(StrToTime(edAltTimeBegin.Text))*MinsPerDay));
35383538
args.Add('alt-speed-time-end', Round(Frac(StrToTime(edAltTimeEnd.Text))*MinsPerDay));
@@ -3547,33 +3547,33 @@ procedure TMainForm.acDaemonOptionsExecute(Sender: TObject);
35473547
else begin
35483548
args.Add('peer-limit', edMaxPeers.Value);
35493549
args.Add('port', edPort.Value);
3550-
args.Add('pex-allowed', integer(cbPEX.Checked) and 1);
3550+
args.Add('pex-allowed', cbPEX.Checked);
35513551
end;
35523552
if RpcObj.RPCVersion >= 7 then begin
3553-
args.Add('incomplete-dir-enabled', integer(cbIncompleteDir.Checked) and 1);
3553+
args.Add('incomplete-dir-enabled', cbIncompleteDir.Checked);
35543554
if cbIncompleteDir.Checked then
35553555
args.Add('incomplete-dir', UTF8Decode(edIncompleteDir.Text));
35563556
end;
35573557
if RpcObj.RPCVersion >= 8 then
3558-
args.Add('rename-partial-files', integer(cbPartExt.Checked) and 1);
3558+
args.Add('rename-partial-files', cbPartExt.Checked);
35593559
if RpcObj.RPCVersion >= 9 then
3560-
args.Add('lpd-enabled', integer(cbLPD.Checked) and 1);
3560+
args.Add('lpd-enabled', cbLPD.Checked);
35613561
if RpcObj.RPCVersion >= 10 then begin
35623562
args.Add('cache-size-mb', edCacheSize.Value);
3563-
args.Add('idle-seeding-limit-enabled', integer(cbIdleSeedLimit.Checked) and 1);
3563+
args.Add('idle-seeding-limit-enabled', cbIdleSeedLimit.Checked);
35643564
args.Add('idle-seeding-limit', edIdleSeedLimit.Value);
35653565
end;
35663566
if edBlocklistURL.Visible then
35673567
if cbBlocklist.Checked then
35683568
args.Add('blocklist-url', UTF8Decode(edBlocklistURL.Text));
35693569
if RpcObj.RPCVersion >= 13 then
3570-
args.Add('utp-enabled', integer(cbUTP.Checked) and 1);
3570+
args.Add('utp-enabled', cbUTP.Checked);
35713571
if RpcObj.RPCVersion >= 14 then begin
3572-
args.Add('download-queue-enabled', integer(cbDownQueue.Checked) and 1);
3572+
args.Add('download-queue-enabled', cbDownQueue.Checked);
35733573
args.Add('download-queue-size', edDownQueue.Value);
3574-
args.Add('seed-queue-enabled', integer(cbUpQueue.Checked) and 1);
3574+
args.Add('seed-queue-enabled', cbUpQueue.Checked);
35753575
args.Add('seed-queue-size', edUpQueue.Value);
3576-
args.Add('queue-stalled-enabled', integer(cbStalled.Checked) and 1);
3576+
args.Add('queue-stalled-enabled', cbStalled.Checked);
35773577
args.Add('queue-stalled-minutes', edStalledTime.Value);
35783578
end;
35793579

@@ -4071,16 +4071,16 @@ procedure TMainForm.TorrentProps(PageNo: integer);
40714071
if RpcObj.RPCVersion < 5 then
40724072
begin
40734073
// RPC versions prior to v5
4074-
args.Add('speed-limit-down-enabled', integer(cbMaxDown.Checked) and 1);
4075-
args.Add('speed-limit-up-enabled', integer(cbMaxUp.Checked) and 1);
4074+
args.Add('speed-limit-down-enabled', cbMaxDown.Checked);
4075+
args.Add('speed-limit-up-enabled', cbMaxUp.Checked);
40764076
if cbMaxDown.Checked then
40774077
args.Add('speed-limit-down', edMaxDown.Value);
40784078
if cbMaxUp.Checked then
40794079
args.Add('speed-limit-up', edMaxUp.Value);
40804080
end else begin
40814081
// RPC version 5
4082-
args.Add('downloadLimited', integer(cbMaxDown.Checked) and 1);
4083-
args.Add('uploadLimited', integer(cbMaxUp.Checked) and 1);
4082+
args.Add('downloadLimited', cbMaxDown.Checked);
4083+
args.Add('uploadLimited', cbMaxUp.Checked);
40844084
if cbMaxDown.Checked then
40854085
args.Add('downloadLimit', edMaxDown.Value);
40864086
if cbMaxUp.Checked then
@@ -6045,7 +6045,7 @@ procedure TMainForm.FillTorrentsList(list: TJSONArray);
60456045
end;
60466046

60476047
if FieldExists[idxPrivate] then
6048-
FTorrents[idxPrivate, row]:=t.Integers['isPrivate'];
6048+
FTorrents[idxPrivate, row]:=t.Integers['isPrivate']; { boolean in json, but must be integer in varlist }
60496049

60506050
if FieldExists[idxLabels] then begin
60516051
a := t.Arrays['labels'];
@@ -6447,8 +6447,7 @@ procedure TMainForm.InternalRemoveTorrent(const Msg, MsgMulti: string; RemoveLoc
64476447
gTorrents.Tag:=0;
64486448
end;
64496449
args:=TJSONObject.Create;
6450-
if RemoveLocalData then
6451-
args.Add('delete-local-data', TJSONIntegerNumber.Create(1));
6450+
args.Add('delete-local-data', RemoveLocalData);
64526451

64536452
if TorrentAction(ids, 'torrent-remove', args) then begin
64546453
with gTorrents do begin
@@ -6883,12 +6882,12 @@ procedure TMainForm.FillSessionInfo(s: TJSONObject);
68836882

68846883
if RpcObj.RPCVersion >= 5 then begin
68856884
{$ifdef LCLcarbon}
6886-
if acAltSpeed.Checked <> (s.Integers['alt-speed-enabled'] <> 0) then
6885+
if acAltSpeed.Checked <> (s.Booleans['alt-speed-enabled']) then
68876886
TrayIcon.Tag:=1;
68886887
{$endif LCLcarbon}
6889-
acAltSpeed.Checked:=s.Integers['alt-speed-enabled'] <> 0;
6890-
acUpdateBlocklist.Tag:=s.Integers['blocklist-enabled'];
6891-
acUpdateBlocklist.Enabled:=acUpdateBlocklist.Tag <> 0;
6888+
acAltSpeed.Checked:=s.Booleans['alt-speed-enabled'];
6889+
if s.Booleans['blocklist-enabled'] then acUpdateBlocklist.Tag:=1 else acUpdateBlocklist.Tag:=0;
6890+
acUpdateBlocklist.Enabled:=s.Booleans['blocklist-enabled'];
68926891
end;
68936892
if s.IndexOfName('download-dir-free-space') >= 0 then
68946893
StatusBar.Panels[3].Text:=Format(SFreeSpace, [GetHumanSize(s.Floats['download-dir-free-space'])]);
@@ -6898,11 +6897,11 @@ procedure TMainForm.FillSessionInfo(s: TJSONObject);
68986897
u:=s.Integers['alt-speed-up']
68996898
end
69006899
else begin
6901-
if s.Integers['speed-limit-down-enabled'] <> 0 then
6900+
if s.Booleans['speed-limit-down-enabled'] then
69026901
d:=s.Integers['speed-limit-down']
69036902
else
69046903
d:=-1;
6905-
if s.Integers['speed-limit-up-enabled'] <> 0 then
6904+
if s.Booleans['speed-limit-up-enabled'] then
69066905
u:=s.Integers['speed-limit-up']
69076906
else
69086907
u:=-1;
@@ -7727,7 +7726,7 @@ procedure TMainForm.SetSpeedLimit(const Dir: string; Speed: integer);
77277726
args.Add(Format('speed-limit-%s-enabled', [Dir]), integer(Speed >= 0) and 1);
77287727
if Speed >= 0 then
77297728
args.Add(Format('speed-limit-%s', [Dir]), Speed);
7730-
args.Add('alt-speed-enabled', 0);
7729+
args.Add('alt-speed-enabled', False);
77317730
req.Add('arguments', args);
77327731
args:=RpcObj.SendRequest(req, False);
77337732
if args = nil then begin

0 commit comments

Comments
 (0)