[Box Backup-dev] [PATCH] Win32 merge [03] Additional commands for bbackupctl

Chris Wilson boxbackup-dev at fluffy.co.uk
Tue Aug 8 00:07:41 BST 2006


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

---128931150-28992530-1154992061=:28495
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

Hi all,

On Mon, 7 Aug 2006, Martin Ebourne wrote:

> There's beginning to be quite a confusing array of commands in 
> bbackupctl now. I wonder if some of them could be rationalised to make 
> it simpler?
>
> The command execution code is something of an ifelse mess at the moment. 
> The last loop has essentially no shared code between the commands. It 
> would be a lot better to implement each of these commands in a separate 
> function and call that instead. You didn't start the code down this 
> route, so I'm not blaming you!
[...]
> At the very least the original boolean state flag (areWaitingForSync) 
> should have been replaced by an enum for command and the if further down 
> replaced by a switch though. This comparing twice for the same string is 
> bad and should be avoided. Not for efficiency here but for consistency. 
> If those strings ever manage to differ then that will be hard to debug.
[...]
> Something along the lines of the following would be better if separate 
> functions were not used (I'm not attempting to indent this properly in the 
> email program):
[...]

I've rewritten the code according to Martin's suppgestions. Please review 
the following patch for merge to trunk (bbackupd tests pass on Win32):

svn diff -r 724:725 http://bbdev.fluffy.co.uk/svn/box/chris/merge

(also attached for convenience).

Cheers, Chris.
-- 
_ ___ __     _
  / __/ / ,__(_)_  | Chris Wilson <0000 at qwirx.com> - Cambs UK |
/ (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Perl/SQL/HTML Developer |
\ _/_/_/_//_/___/ | We are GNU-free your mind-and your software |

---128931150-28992530-1154992061=:28495
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=bb-win32-merge-3-bbackupctl-commands-v2.patch
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.62.0608080007410.28495 at top.qwarx.com>
Content-Description: 
Content-Disposition: attachment; filename=bb-win32-merge-3-bbackupctl-commands-v2.patch

SW5kZXg6IGJpbi9iYmFja3VwY3RsL2JiYWNrdXBjdGwuY3BwDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gYmluL2JiYWNrdXBjdGwvYmJhY2t1cGN0
bC5jcHAJKHJldmlzaW9uIDcyNCkNCisrKyBiaW4vYmJhY2t1cGN0bC9iYmFj
a3VwY3RsLmNwcAkocmV2aXNpb24gNzI1KQ0KQEAgLTI4LDE2ICsyOCwyNiBA
QA0KIA0KICNpbmNsdWRlICJNZW1MZWFrRmluZE9uLmgiDQogDQorZW51bSBD
b21tYW5kDQorew0KKwlEZWZhdWx0LA0KKwlXYWl0Rm9yU3luY1N0YXJ0LA0K
KwlXYWl0Rm9yU3luY0VuZCwNCisJU3luY0FuZFdhaXRGb3JFbmQsDQorfTsN
CisNCiB2b2lkIFByaW50VXNhZ2VBbmRFeGl0KCkNCiB7DQogCXByaW50Zigi
VXNhZ2U6IGJiYWNrdXBjdGwgWy1xXSBbLWMgY29uZmlnX2ZpbGVdIDxjb21t
YW5kPlxuIg0KIAkiQ29tbWFuZHMgYXJlOlxuIg0KLQkiICBzeW5jIC0tIHN0
YXJ0IGEgc3luY3JvbmlzYXRpb24gcnVuIG5vd1xuIg0KLQkiICBmb3JjZS1z
eW5jIC0tIGZvcmNlIHRoZSBzdGFydCBvZiBhIHN5bmNyb25pc2F0aW9uIHJ1
biwgIg0KKwkiICBzeW5jIC0tIHN0YXJ0IGEgc3luY2hyb25pc2F0aW9uIChi
YWNrdXApIHJ1biBub3dcbiINCisJIiAgZm9yY2Utc3luYyAtLSBmb3JjZSB0
aGUgc3RhcnQgb2YgYSBzeW5jaHJvbmlzYXRpb24gcnVuLCAiDQogCSJldmVu
IGlmIFN5bmNBbGxvd1NjcmlwdCBzYXlzIG5vXG4iDQogCSIgIHJlbG9hZCAt
LSByZWxvYWQgZGFlbW9uIGNvbmZpZ3VyYXRpb25cbiINCiAJIiAgdGVybWlu
YXRlIC0tIHRlcm1pbmF0ZSBkYWVtb24gbm93XG4iDQogCSIgIHdhaXQtZm9y
LXN5bmMgLS0gd2FpdCB1bnRpbCB0aGUgbmV4dCBzeW5jIHN0YXJ0cywgdGhl
biBleGl0XG4iDQorCSIgIHdhaXQtZm9yLWVuZCAgLS0gd2FpdCB1bnRpbCB0
aGUgbmV4dCBzeW5jIGZpbmlzaGVzLCB0aGVuIGV4aXRcbiINCisJIiAgc3lu
Yy1hbmQtd2FpdCAtLSBzdGFydCBzeW5jLCB3YWl0IHVudGlsIGl0IGZpbmlz
aGVzLCB0aGVuIGV4aXRcbiINCiAJKTsNCiAJZXhpdCgxKTsNCiB9DQpAQCAt
MTA3LDcgKzExNywxMCBAQA0KIAkvLyBDaGVjayB0aGVyZSdzIGEgc29ja2V0
IGRlZmluZWQgaW4gdGhlIGNvbmZpZyBmaWxlDQogCWlmKCFjb25mLktleUV4
aXN0cygiQ29tbWFuZFNvY2tldCIpKQ0KIAl7DQotCQlwcmludGYoIkRhZW1v
biBpc24ndCB1c2luZyBhIGNvbnRyb2wgc29ja2V0LCBjb3VsZCBub3QgZXhl
Y3V0ZSBjb21tYW5kLlxuQWRkIGEgQ29tbWFuZFNvY2tldCBkZWNsYXJhdGlv
biB0byB0aGUgYmJhY2t1cGQuY29uZiBmaWxlLlxuIik7DQorCQlwcmludGYo
IkRhZW1vbiBpc24ndCB1c2luZyBhIGNvbnRyb2wgc29ja2V0LCAiDQorCQkJ
ImNvdWxkIG5vdCBleGVjdXRlIGNvbW1hbmQuXG4iDQorCQkJIkFkZCBhIENv
bW1hbmRTb2NrZXQgZGVjbGFyYXRpb24gdG8gdGhlICINCisJCQkiYmJhY2t1
cGQuY29uZiBmaWxlLlxuIik7DQogCQlyZXR1cm4gMTsNCiAJfQ0KIAkNCkBA
IC0xODgsNjggKzIwMSwxNjEgQEANCiAJLy8gUHJpbnQgc3VtbWFyeT8NCiAJ
aWYoIXF1aWV0KQ0KIAl7DQotCQlwcmludGYoIkRhZW1vbiBjb25maWd1cmF0
aW9uIHN1bW1hcnk6XG4iCVwNCi0JCQkgICAiICBBdXRvbWF0aWNCYWNrdXAg
PSAlc1xuIgkJCVwNCi0JCQkgICAiICBVcGRhdGVTdG9yZUludGVydmFsID0g
JWQgc2Vjb25kc1xuIglcDQotCQkJICAgIiAgTWluaW11bUZpbGVBZ2UgPSAl
ZCBzZWNvbmRzXG4iCVwNCi0JCQkgICAiICBNYXhVcGxvYWRXYWl0ID0gJWQg
c2Vjb25kc1xuIiwNCi0JCQkgICBhdXRvQmFja3VwPyJ0cnVlIjoiZmFsc2Ui
LCB1cGRhdGVTdG9yZUludGVydmFsLCBtaW5pbXVtRmlsZUFnZSwgbWF4VXBs
b2FkV2FpdCk7DQorCQlwcmludGYoIkRhZW1vbiBjb25maWd1cmF0aW9uIHN1
bW1hcnk6XG4iDQorCQkJIiAgQXV0b21hdGljQmFja3VwID0gJXNcbiINCisJ
CQkiICBVcGRhdGVTdG9yZUludGVydmFsID0gJWQgc2Vjb25kc1xuIg0KKwkJ
CSIgIE1pbmltdW1GaWxlQWdlID0gJWQgc2Vjb25kc1xuIg0KKwkJCSIgIE1h
eFVwbG9hZFdhaXQgPSAlZCBzZWNvbmRzXG4iLA0KKwkJCWF1dG9CYWNrdXA/
InRydWUiOiJmYWxzZSIsIHVwZGF0ZVN0b3JlSW50ZXJ2YWwsIA0KKwkJCW1p
bmltdW1GaWxlQWdlLCBtYXhVcGxvYWRXYWl0KTsNCiAJfQ0KIA0KLQkvLyBJ
cyB0aGUgY29tbWFuZCB0aGUgIndhaXQgZm9yIHN5bmMgdG8gc3RhcnQiIGNv
bW1hbmQ/DQotCWJvb2wgYXJlV2FpdGluZ0ZvclN5bmMgPSBmYWxzZTsNCi0J
aWYoOjpzdHJjbXAoYXJndlswXSwgIndhaXQtZm9yLXN5bmMiKSA9PSAwKQ0K
KwlzdGQ6OnN0cmluZyBzdGF0ZUxpbmU7DQorCWlmKCFnZXRMaW5lLkdldExp
bmUoc3RhdGVMaW5lKSB8fCBnZXRMaW5lLklzRU9GKCkpDQogCXsNCi0JCS8v
IENoZWNrIHRoYXQgaXQncyBub3QgaW4gbm9uLWF1dG9tYXRpYyBtb2RlLCBi
ZWNhdXNlIHRoZW4gaXQnbGwgbmV2ZXIgc3RhcnQNCi0JCWlmKCFhdXRvQmFj
a3VwKQ0KKyNpZiBkZWZpbmVkIFdJTjMyICYmICEgZGVmaW5lZCBOREVCVUcN
CisJCXN5c2xvZyhMT0dfRVJSLCAiRmFpbGVkIHRvIHJlY2VpdmUgc3RhdGUg
bGluZSBmcm9tIGRhZW1vbiIpOw0KKyNlbHNlDQorCQlwcmludGYoIkZhaWxl
ZCB0byByZWNlaXZlIHN0YXRlIGxpbmUgZnJvbSBkYWVtb25cbiIpOw0KKyNl
bmRpZg0KKwkJcmV0dXJuIDE7DQorCX0NCisNCisJLy8gRGVjb2RlIGl0DQor
CWludCBjdXJyZW50U3RhdGU7DQorCWlmKDo6c3NjYW5mKHN0YXRlTGluZS5j
X3N0cigpLCAic3RhdGUgJWQiLCAmY3VycmVudFN0YXRlKSAhPSAxKQ0KKwl7
DQorCQlwcmludGYoIlN0YXRlIGxpbmUgZGlkbid0IGRlY29kZVxuIik7DQor
CQlyZXR1cm4gMTsNCisJfQ0KKw0KKwlDb21tYW5kIGNvbW1hbmQgPSBEZWZh
dWx0Ow0KKwlzdGQ6OnN0cmluZyBjb21tYW5kTmFtZShhcmd2WzBdKTsNCisN
CisJaWYgKGNvbW1hbmROYW1lID09ICJ3YWl0LWZvci1zeW5jIikNCisJew0K
KwkJY29tbWFuZCA9IFdhaXRGb3JTeW5jU3RhcnQ7DQorCX0NCisJZWxzZSBp
ZiAoY29tbWFuZE5hbWUgPT0gIndhaXQtZm9yLWVuZCIpDQorCXsNCisJCWNv
bW1hbmQgPSBXYWl0Rm9yU3luY0VuZDsNCisJfQ0KKwllbHNlIGlmIChjb21t
YW5kTmFtZSA9PSAic3luYy1hbmQtd2FpdCIpDQorCXsNCisJCWNvbW1hbmQg
PSBTeW5jQW5kV2FpdEZvckVuZDsNCisJfQ0KKw0KKwlzd2l0Y2ggKGNvbW1h
bmQpDQorCXsNCisJCWNhc2UgV2FpdEZvclN5bmNTdGFydDoNCisJCWNhc2Ug
V2FpdEZvclN5bmNFbmQ6DQogCQl7DQotCQkJcHJpbnRmKCJFUlJPUjogRGFl
bW9uIGlzIG5vdCBpbiBhdXRvbWF0aWMgbW9kZSAtLSBzeW5jIHdpbGwgbmV2
ZXIgc3RhcnQhXG4iKTsNCi0JCQlyZXR1cm4gMTsNCisJCQkvLyBDaGVjayB0
aGF0IGl0J3Mgbm90IGluIG5vbi1hdXRvbWF0aWMgbW9kZSwgDQorCQkJLy8g
YmVjYXVzZSB0aGVuIGl0J2xsIG5ldmVyIHN0YXJ0DQorDQorCQkJaWYoIWF1
dG9CYWNrdXApDQorCQkJew0KKwkJCQlwcmludGYoIkVSUk9SOiBEYWVtb24g
aXMgbm90IGluIGF1dG9tYXRpYyBtb2RlIC0tICINCisJCQkJCSJzeW5jIHdp
bGwgbmV2ZXIgc3RhcnQhXG4iKTsNCisJCQkJcmV0dXJuIDE7DQorCQkJfQ0K
Kw0KIAkJfQ0KLQkNCi0JCS8vIFllcy4uLiBzZXQgdGhlIGZsYWcgc28gd2Ug
a25vdyB3aGF0IHdlJ3JlIHdhaXRpbmcgZm9yIGEgc3luYyB0byBzdGFydA0K
LQkJYXJlV2FpdGluZ0ZvclN5bmMgPSB0cnVlOw0KKwkJYnJlYWs7DQorDQor
CQljYXNlIFN5bmNBbmRXYWl0Rm9yRW5kOg0KKwkJew0KKwkJCS8vIHNlbmQg
YSBzeW5jIGNvbW1hbmQNCisJCQlzdGQ6OnN0cmluZyBjbWQoImZvcmNlLXN5
bmNcbiIpOw0KKwkJCWNvbm5lY3Rpb24uV3JpdGUoY21kLmNfc3RyKCksIGNt
ZC5zaXplKCkpOw0KKwkJCWNvbm5lY3Rpb24uV3JpdGVBbGxCdWZmZXJlZCgp
Ow0KKw0KKwkJCWlmIChjdXJyZW50U3RhdGUgIT0gMCkNCisJCQl7DQorCQkJ
CXByaW50ZigiV2FpdGluZyBmb3IgY3VycmVudCBzeW5jL2Vycm9yIHN0YXRl
ICINCisJCQkJCSJ0byBmaW5pc2guLi5cbiIpOw0KKwkJCX0NCisJCX0NCisJ
CWJyZWFrOw0KKw0KKwkJZGVmYXVsdDoNCisJCXsNCisJCQkvLyBOb3JtYWwg
Y2FzZSwganVzdCBzZW5kIHRoZSBjb21tYW5kIGdpdmVuIA0KKwkJCS8vIHBs
dXMgYSBxdWl0IGNvbW1hbmQuDQorCQkJc3RkOjpzdHJpbmcgY21kID0gY29t
bWFuZE5hbWU7DQorCQkJY21kICs9ICJcbnF1aXRcbiI7DQorCQkJY29ubmVj
dGlvbi5Xcml0ZShjbWQuY19zdHIoKSwgY21kLnNpemUoKSk7DQorCQl9DQog
CX0NCi0JZWxzZQ0KLQl7DQotCQkvLyBObz8gSnVzdCBzZW5kIHRoZSBjb21t
YW5kIGdpdmVuIHBsdXMgYSBxdWl0IGNvbW1hbmQuDQotCQlzdGQ6OnN0cmlu
ZyBjbWQoYXJndlswXSk7DQotCQljbWQgKz0gIlxucXVpdFxuIjsNCi0JCWNv
bm5lY3Rpb24uV3JpdGUoY21kLmNfc3RyKCksIGNtZC5zaXplKCkpOw0KLQl9
DQogCQ0KIAkvLyBSZWFkIHRoZSByZXNwb25zZQ0KIAlzdGQ6OnN0cmluZyBs
aW5lOw0KLQl3aGlsZSghZ2V0TGluZS5Jc0VPRigpICYmIGdldExpbmUuR2V0
TGluZShsaW5lKSkNCisJYm9vbCBzeW5jSXNSdW5uaW5nID0gZmFsc2U7DQor
CWJvb2wgZmluaXNoZWQgPSBmYWxzZTsNCisNCisJd2hpbGUoIWZpbmlzaGVk
ICYmICFnZXRMaW5lLklzRU9GKCkgJiYgZ2V0TGluZS5HZXRMaW5lKGxpbmUp
KQ0KIAl7DQotCQlpZihhcmVXYWl0aW5nRm9yU3luYykNCisJCXN3aXRjaCAo
Y29tbWFuZCkNCiAJCXsNCi0JCQkvLyBOZWVkIHRvIHdhaXQgZm9yIHRoZSBz
dGF0ZSBjaGFuZ2UuLi4NCi0JCQlpZihsaW5lID09ICJzdGFydC1zeW5jIikN
CisJCQljYXNlIFdhaXRGb3JTeW5jU3RhcnQ6DQogCQkJew0KLQkJCQkvLyBT
ZW5kIGEgcXVpdCBjb21tYW5kIHRvIGZpbmlzaCBuaWNlbHkNCi0JCQkJY29u
bmVjdGlvbi5Xcml0ZSgicXVpdFxuIiwgNSk7DQotCQkJCQ0KLQkJCQkvLyBB
bmQgd2UncmUgZG9uZQ0KLQkJCQlicmVhazsNCi0JCQl9CQkNCi0JCX0NCi0J
CWVsc2UNCi0JCXsNCi0JCQkvLyBJcyB0aGlzIGFuIE9LIG9yIGVycm9yIGxp
bmU/DQotCQkJaWYobGluZSA9PSAib2siKQ0KKwkJCQkvLyBOZWVkIHRvIHdh
aXQgZm9yIHRoZSBzdGF0ZSBjaGFuZ2UuLi4NCisJCQkJaWYobGluZSA9PSAi
c3RhcnQtc3luYyIpDQorCQkJCXsNCisJCQkJCS8vIFNlbmQgYSBxdWl0IGNv
bW1hbmQgdG8gZmluaXNoIG5pY2VseQ0KKwkJCQkJY29ubmVjdGlvbi5Xcml0
ZSgicXVpdFxuIiwgNSk7DQorCQkJCQkNCisJCQkJCS8vIEFuZCB3ZSdyZSBk
b25lDQorCQkJCQlmaW5pc2hlZCA9IHRydWU7DQorCQkJCX0NCisJCQl9DQor
CQkJYnJlYWs7DQorDQorCQkJY2FzZSBXYWl0Rm9yU3luY0VuZDoNCisJCQlj
YXNlIFN5bmNBbmRXYWl0Rm9yRW5kOg0KIAkJCXsNCi0JCQkJaWYoIXF1aWV0
KQ0KKwkJCQlpZihsaW5lID09ICJzdGFydC1zeW5jIikNCiAJCQkJew0KLQkJ
CQkJcHJpbnRmKCJTdWNjZWVkZWQuXG4iKTsNCisJCQkJCWlmICghcXVpZXQp
IHByaW50ZigiU3luYyBzdGFydGVkLi4uXG4iKTsNCisJCQkJCXN5bmNJc1J1
bm5pbmcgPSB0cnVlOw0KIAkJCQl9DQotCQkJCWJyZWFrOw0KKwkJCQllbHNl
IGlmKGxpbmUgPT0gImZpbmlzaC1zeW5jIikNCisJCQkJew0KKwkJCQkJaWYg
KHN5bmNJc1J1bm5pbmcpDQorCQkJCQl7DQorCQkJCQkJaWYgKCFxdWlldCkg
cHJpbnRmKCJTeW5jIGZpbmlzaGVkLlxuIik7DQorCQkJCQkJLy8gU2VuZCBh
IHF1aXQgY29tbWFuZCB0byBmaW5pc2ggbmljZWx5DQorCQkJCQkJY29ubmVj
dGlvbi5Xcml0ZSgicXVpdFxuIiwgNSk7DQorCQkJCQkNCisJCQkJCQkvLyBB
bmQgd2UncmUgZG9uZQ0KKwkJCQkJCWZpbmlzaGVkID0gdHJ1ZTsNCisJCQkJ
CX0NCisJCQkJCWVsc2UNCisJCQkJCXsNCisJCQkJCQlpZiAoIXF1aWV0KSBw
cmludGYoIlByZXZpb3VzIHN5bmMgZmluaXNoZWQuXG4iKTsNCisJCQkJCX0N
CisJCQkJCS8vIGRhZW1vbiBtdXN0IHN0aWxsIGJlIGJ1c3kNCisJCQkJfQ0K
IAkJCX0NCi0JCQllbHNlIGlmKGxpbmUgPT0gImVycm9yIikNCisJCQlicmVh
azsNCisNCisJCQlkZWZhdWx0Og0KIAkJCXsNCi0JCQkJcHJpbnRmKCJFUlJP
Ui4gKENoZWNrIGNvbW1hbmQgc3BlbGxpbmcpXG4iKTsNCi0JCQkJcmV0dXJu
Q29kZSA9IDE7DQotCQkJCWJyZWFrOw0KKwkJCQkvLyBJcyB0aGlzIGFuIE9L
IG9yIGVycm9yIGxpbmU/DQorCQkJCWlmKGxpbmUgPT0gIm9rIikNCisJCQkJ
ew0KKwkJCQkJaWYoIXF1aWV0KQ0KKwkJCQkJew0KKwkJCQkJCXByaW50Zigi
U3VjY2VlZGVkLlxuIik7DQorCQkJCQl9DQorCQkJCQlmaW5pc2hlZCA9IHRy
dWU7DQorCQkJCX0NCisJCQkJZWxzZSBpZihsaW5lID09ICJlcnJvciIpDQor
CQkJCXsNCisJCQkJCXByaW50ZigiRVJST1IuIChDaGVjayBjb21tYW5kIHNw
ZWxsaW5nKVxuIik7DQorCQkJCQlyZXR1cm5Db2RlID0gMTsNCisJCQkJCWZp
bmlzaGVkID0gdHJ1ZTsNCisJCQkJfQ0KIAkJCX0NCiAJCX0NCiAJfQ0K

---128931150-28992530-1154992061=:28495--



More information about the Boxbackup-dev mailing list