[Reality] Conch support!

Paul Swartz reality@twistedmatrix.com
Mon, 29 Mar 2004 01:25:13 -0500


--=-WaOtw+dRnvRFj4yLHPro
Content-Type: multipart/mixed; boundary="=-QA9bD+YxFoGCxbMwyLuj"


--=-QA9bD+YxFoGCxbMwyLuj
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

I hacked together some Conch support for the new Imagination code base.=20
It lets you log in as "user":"password".

-p
--=20
      Paul Swartz
(o_   z3p at twistedmatrix dot com
//\   http://www.twistedmatrix.com/users/z3p.twistd/
V_/_  AIM: Z3Penguin


--=-QA9bD+YxFoGCxbMwyLuj
Content-Disposition: attachment; filename=conchwiring.py
Content-Transfer-Encoding: base64
Content-Type: text/x-python; name=conchwiring.py; charset=ANSI_X3.4-1968

ZnJvbSB0d2lzdGVkLmNvbmNoIGltcG9ydCBhdmF0YXINCmZyb20gdHdpc3RlZC5jb25jaC5zc2gg
aW1wb3J0IHNlc3Npb24NCmZyb20gdHdpc3RlZC5weXRob24gaW1wb3J0IGNvbXBvbmVudHMsIGZh
aWx1cmUNCmZyb20gdHdpc3RlZC5pbnRlcm5ldCBpbXBvcnQgZGVmZXIsIGVycm9yDQoNCmZyb20g
aW1hZ2luYXRpb24gaW1wb3J0IGlpbWFnaW5hdGlvbiwgc2ltdWxhY3J1bSwgZXJyb3JzDQpmcm9t
IGltYWdpbmF0aW9uLnRleHQgaW1wb3J0IGNvbW1vbiwgZW5nbGlzaA0KZnJvbSBpbWFnaW5hdGlv
bi5zaW1kYXRhIGltcG9ydCB0ZW1wbGF0ZXMgYXMgVA0KDQpmcm9tIHR3aXN0ZWQucHl0aG9uIGlt
cG9ydCBsb2cNCmltcG9ydCBzeXMNCmxvZy5zdGFydExvZ2dpbmcoc3lzLnN0ZGVycikNCg0KY2xh
c3MgSW1hZ2luYXRpb25SZWFsbToNCg0KICAgIGRlZiBfX2luaXRfXyhzZWxmLCByb29tKToNCiAg
ICAgICAgc2VsZi5yb29tID0gcm9vbQ0KDQogICAgZGVmIHJlcXVlc3RBdmF0YXIoc2VsZiwgYXZh
dGFySWQsIG1pbmQsICppbnRlcmZhY2VzKToNCiAgICAgICAgYSA9IEltYWdpbmF0aW9uQXZhdGFy
KGF2YXRhcklkLCBzZWxmLnJvb20pDQogICAgICAgIHJldHVybiBpbnRlcmZhY2VzWzBdLCBhLCBs
YW1iZGE6IE5vbmUNCiAgICAgICAgICAgICAgIA0KDQpjbGFzcyBJbWFnaW5hdGlvbkF2YXRhcihh
dmF0YXIuQ29uY2hVc2VyKToNCg0KICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1c2VybmFtZSwgcm9v
bSk6DQogICAgICAgIGF2YXRhci5Db25jaFVzZXIuX19pbml0X18oc2VsZikNCiAgICAgICAgc2Vs
Zi51c2VybmFtZSA9IHVzZXJuYW1lDQogICAgICAgIHNlbGYucm9vbSA9IHJvb20NCiAgICAgICAg
c2VsZi5jaGFubmVsTG9va3VwLnVwZGF0ZSh7J3Nlc3Npb24nIDogc2Vzc2lvbi5TU0hTZXNzaW9u
fSkNCg0KY2xhc3MgSW1hZ2luYXRpb25TZXNzaW9uOg0KDQogICAgZGVmIF9faW5pdF9fKHNlbGYs
IGF2YXRhcik6DQogICAgICAgIHNlbGYuYXZhdGFyID0gYXZhdGFyDQoNCiAgICBkZWYgZ2V0UHR5
KHNlbGYsIHRlcm0sIHdpbmRvd1NpemUsIGF0dHJzKToNCiAgICAgICAgcGFzcw0KDQogICAgZGVm
IG9wZW5TaGVsbChzZWxmLCBwcm90byk6DQogICAgICAgIEltYWdpbmF0aW9uU2Vzc2lvblRyYW5z
cG9ydChwcm90bywgc2VsZi5hdmF0YXIpDQoNCiAgICBkZWYgZXhlY0NvbW1hbmQoc2VsZiwgcHJv
dG8sIGNtZCk6DQogICAgICAgIHJhaXNlIGVycm9yLkNvbmNoRXJyb3IoJ2Nhbm5vdCBleGVjdXRl
IGNvbW1hbmRzJykNCg0KICAgIGRlZiBjbG9zZWQoc2VsZik6DQogICAgICAgIHBhc3MNCg0KY2xh
c3MgSW1hZ2luYXRpb25TZXNzaW9uVHJhbnNwb3J0Og0KDQogICAgX19pbXBsZW1lbnRzX18gPSBp
aW1hZ2luYXRpb24uSVVJLA0KDQogICAgZGVmIF9faW5pdF9fKHNlbGYsIHByb3RvLCBhdmF0YXIp
Og0KICAgICAgICBzZWxmLnByb3RvID0gcHJvdG8NCiAgICAgICAgc2VsZi5hdmF0YXIgPSBzaW11
bGFjcnVtLm1ha2VUaGluZyhULmFjdG9yICsgWyhpaW1hZ2luYXRpb24uSVVJLCBsYW1iZGEgeDog
c2VsZildLCBuYW1lPWF2YXRhci51c2VybmFtZSkNCiAgICAgICAgcm9vbSA9IGF2YXRhci5yb29t
DQogICAgICAgIHNpbXVsYWNydW0uSUNvbGxlY3RvcihzZWxmLmF2YXRhcikubGluaygwLCBzaW11
bGFjcnVtLklDb2xsZWN0b3Iocm9vbSkpDQogICAgICAgIHNpbXVsYWNydW0uSUxvY2F0YWJsZShz
ZWxmLmF2YXRhcikubG9jYXRpb24gPSBzaW11bGFjcnVtLklDb2xsZWN0b3Iocm9vbSkNCiAgICAg
ICAgcHJvdG8ubWFrZUNvbm5lY3Rpb24oc2VsZikNCiAgICAgICAgc2VsZi5tb2RlID0gJ0NvbW1h
bmQnDQogICAgICAgIHNlbGYuYnVmID0gJycNCiAgICAgICAgc2VsZi5jbG9zZWQgPSAwDQoNCiAg
ICAgICAgcHJvdG8ub3V0UmVjZWl2ZWQoc2VsZi53ZWxjb21lTWVzc2FnZSgpKQ0KICAgICAgICBz
ZWxmLmNvbmNoX0NvbW1hbmQoJ2xvb2snKQ0KDQogICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEpOg0K
ICAgICAgICAjIFhYWCB3ZSByZWFsbHkgbmVlZCBpbnN1bHRzIGZvciB0aGlzIGtpbmQgb2YgcGFy
c2luZw0KICAgICAgICBpZiBkYXRhID09ICdceDAzJzoNCiAgICAgICAgICAgIHNlbGYubG9zZUNv
bm5lY3Rpb24oKQ0KICAgICAgICBkYXRhID0gZGF0YS5yZXBsYWNlKCdccicsICdcclxuJykNCiAg
ICAgICAgc2VsZi5wcm90by5vdXRSZWNlaXZlZChkYXRhKSAjIGVjaG8NCiAgICAgICAgc2VsZi5i
dWYgKz0gZGF0YQ0KICAgICAgICBzID0gc2VsZi5idWYuc3BsaXQoJ1xyXG4nKQ0KICAgICAgICBm
b3IgbGluZSBpbiBzWzotMV06DQogICAgICAgICAgICBmID0gZ2V0YXR0cihzZWxmLCAiY29uY2hf
JXMiICUgc2VsZi5tb2RlKQ0KICAgICAgICAgICAgZihsaW5lLnN0cmlwKCdcclxuJykpDQogICAg
ICAgIHNlbGYuYnVmID0gc1stMV0NCg0KICAgIGRlZiB3ZWxjb21lTWVzc2FnZShzZWxmKToNCiAg
ICAgICAgcmV0dXJuICcnLmpvaW4oKA0KICAgICAgICAgICAgIlxyXG5UUjogY29ubmVjdGVkIHRv
ICIsDQogICAgICAgICAgICBjb21tb24uSU5vdW4oc2VsZi5hdmF0YXIpLm5hbWUsDQogICAgICAg
ICAgICAiXHJcbiINCiAgICAgICAgKSkNCg0KICAgIGRlZiBjb21tYW5kUHJvbXB0KHNlbGYpOg0K
ICAgICAgICByZXR1cm4gY29tbW9uLmV4cHJlc3Moc2VsZi5hdmF0YXIsIHNlbGYuYXZhdGFyLCBl
bmdsaXNoLklOb3VuKSArICc+ICcNCg0KICAgIGRlZiBjb25jaF9Db21tYW5kKHNlbGYsIGNtZCk6
DQogICAgICAgIHNlbGYuZGlzcGxheWVkUHJvbXB0ID0gRmFsc2UNCiAgICAgICAgdHJ5Og0KICAg
ICAgICAgICAgY29tbW9uLklUaGlua2VyKHNlbGYuYXZhdGFyKS5wYXJzZShjbWQpDQogICAgICAg
IGV4Y2VwdCBlcnJvcnMuUmVhbGl0eUV4Y2VwdGlvbiwgZToNCiAgICAgICAgICAgIHNlbGYucHJv
dG8ub3V0UmVjZWl2ZWQoY29tbW9uLmV4cHJlc3MoZSwgc2VsZi5hdmF0YXIpICsgJ1xyXG4nKQ0K
ICAgICAgICBpZiBub3Qgc2VsZi5kaXNwbGF5ZWRQcm9tcHQ6DQogICAgICAgICAgICBzZWxmLnBy
b3RvLm91dFJlY2VpdmVkKHNlbGYuY29tbWFuZFByb21wdCgpKQ0KDQogICAgZGVmIHByZXNlbnRF
dmVudChzZWxmLCBldmVudEludGVyZmFjZSwgZXZlbnQpOg0KICAgICAgICBzZWxmLnByb3RvLm91
dFJlY2VpdmVkKCJcclxuIiArIGNvbW1vbi5leHByZXNzKGV2ZW50LCBzZWxmLmF2YXRhciwgZW5n
bGlzaC5JTm91bikgKyAiXHJcbiIpDQoNCiAgICBjaG9pY2VEZWZlcnJlZCA9IGNob2ljZUl0ZW1z
ID0gTm9uZQ0KDQogICAgZGVmIHByZXNlbnRNZW51KHNlbGYsIGl0ZW1zLCB0eXBlbmFtZSA9IE5v
bmUpOg0KICAgICAgICBhc3NlcnQgc2VsZi5jaG9pY2VEZWZlcnJlZCBpcyBOb25lDQoNCiAgICAg
ICAgbGluZXMgPSBbXQ0KICAgICAgICBpZiB0eXBlbmFtZSBpcyBub3QgTm9uZToNCiAgICAgICAg
ICAgIGxpbmVzLmFwcGVuZCgiV2hpY2ggJXMgZG8geW91IG1lYW4/IiAlIHR5cGVuYW1lKQ0KICAg
ICAgICBmb3IgaSBpbiBpdGVtczoNCiAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiJWQsICVzIiAl
IChsZW4obGluZXMpLCBjb21tb24uZXhwcmVzcyhpLCBzZWxmLmF2YXRhciwgZW5nbGlzaC5JTm91
bikpKQ0KICAgICAgICBsaW5lcy5hcHBlbmQoJ0Nob29zZTogJykNCiAgICAgICAgc2VsZi5wcm90
by5vdXRSZWNlaXZlZCgiXHJcbiIuam9pbihsaW5lcykpDQogICAgICAgIHNlbGYuZGlzcGxheWVk
UHJvbXB0ID0gVHJ1ZQ0KICAgICAgICBzZWxmLm1vZGUgPSAiQ2hvb3NpbmciDQogICAgICAgIHNl
bGYuY2hvaWNlRGVmZXJyZWQgPSBkZWZlci5EZWZlcnJlZCgpDQogICAgICAgIHNlbGYuY2hvaWNl
SXRlbXMgPSBpdGVtcw0KICAgICAgICByZXR1cm4gc2VsZi5jaG9pY2VEZWZlcnJlZA0KDQogICAg
ZGVmIGNvbmNoX0Nob29zaW5nKHNlbGYsIHRleHQpOg0KICAgICAgICB0cnk6DQogICAgICAgICAg
ICB2YWwgPSBpbnQodGV4dCkNCiAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6DQogICAgICAgICAg
ICBzZWxmLm1vZGUgPSAiQ29tbWFuZCINCiAgICAgICAgICAgIHJldHVybiBzZWxmLmNvbmNoX0Nv
bW1hbmQodGV4dCkNCiAgICAgICAgZWxzZToNCiAgICAgICAgICAgIGlmIHZhbCA8IDEgIG9yIHZh
bCA+IGxlbihzZWxmLmNob2ljZUl0ZW1zKToNCiAgICAgICAgICAgICAgICBzZWxmLnByb3RvLm91
dFJlY2VpdmVkKCJUcnkgYWdhaW46ICIpDQogICAgICAgICAgICBlbHNlOg0KICAgICAgICAgICAg
ICAgIHNlbGYuY2hvaWNlRGVmZXJyZWQuY2FsbGJhY2sodmFsIC0gMSkNCiAgICAgICAgICAgICAg
ICBzZWxmLmNob2ljZURlZmVycmVkID0gTm9uZQ0KICAgICAgICAgICAgICAgIHNlbGYubW9kZSA9
ICJDb21tYW5kIg0KICAgICAgICAgICAgICAgIHNlbGYucHJvdG8ub3V0UmVjZWl2ZWQoc2VsZi5j
b21tYW5kUHJvbXB0KCkpDQoNCiAgICBkZWYgbG9zZUNvbm5lY3Rpb24oc2VsZik6DQogICAgICAg
IGlmIHNlbGYuY2xvc2VkOiByZXR1cm4NCiAgICAgICAgc2VsZi5jbG9zZWQgPSAxDQogICAgICAg
IHNlbGYucHJvdG8ucHJvY2Vzc0VuZGVkKGZhaWx1cmUuRmFpbHVyZShlcnJvci5Qcm9jZXNzRG9u
ZSgnJykpKQ0KDQpjb21wb25lbnRzLnJlZ2lzdGVyQWRhcHRlcihJbWFnaW5hdGlvblNlc3Npb24s
IEltYWdpbmF0aW9uQXZhdGFyLCBzZXNzaW9uLklTZXNzaW9uKQ0KDQpkZWYgX19tYWluX18oKToN
CiAgICBpbXBvcnQgc2ltcGxlbWFwDQogICAgZnJvbSB0d2lzdGVkLmNvbmNoLnNzaCBpbXBvcnQg
a2V5cywgZmFjdG9yeQ0KICAgIGZyb20gdHdpc3RlZC5jcmVkIGltcG9ydCBjaGVja2VycywgcG9y
dGFsDQogICAgZnJvbSB0d2lzdGVkLmludGVybmV0IGltcG9ydCByZWFjdG9yDQoNCiAgICByb29t
ID0gc2ltcGxlbWFwLnJvb20NCiAgICBwID0gcG9ydGFsLlBvcnRhbChJbWFnaW5hdGlvblJlYWxt
KHJvb20pKQ0KDQogICAgcGFzc3dkREIgPSBjaGVja2Vycy5Jbk1lbW9yeVVzZXJuYW1lUGFzc3dv
cmREYXRhYmFzZURvbnRVc2UoKQ0KICAgIHBhc3N3ZERCLmFkZFVzZXIoJ3VzZXInLCAncGFzc3dv
cmQnKQ0KDQogICAgcC5yZWdpc3RlckNoZWNrZXIocGFzc3dkREIpDQoNCiAgICBwdWJsaWNLZXkg
PSAnc3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBQkl3QUFBR0VBcnpKeDhPWU9uSm16ZjR0ZkJF
dkxpOERWUHJKMy9jOWsySS9BejY0ZnhqSGY5aW15UkpiaXh0UWhsSDlsZk5qVUl4KzRMbXJKSDVR
TlJzRnBvcmNIREtPVHdUVFlMaDVLbVJwc2xrWUhSaXZjSlNrYmgvQytCUjN1dERTNTU1bVYnDQoN
CiAgICBwcml2YXRlS2V5ID0gIiIiLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQ0KTUlJ
QnlBSUJBQUpoQUs4eWNmRG1EcHlaczMrTFh3Ukx5NHZBMVQ2eWQvM1BaTmlQd00rdUg4WXgzL1lw
c2tTVw0KNHNiVUlaUi9aWHpZMUNNZnVDNXF5UitVRFViQmFhSzNCd3lqazhFMDJDNGVTcGthYkpa
R0IwWXIzQ1VwRzRmdw0KdmdVZDdyUTB1ZWVabFFJQkl3SmdiaCsxVlpmcjdXZnRLNWx1N01IdHFF
MVMxdlBXWlFZRTMrVlVuOHlKQUR5Yg0KWjRmc1phQ3J6Vzlsa0lxWGtFM0dJWStvamRoWmhrTzFn
YkcwMTE4c0lncGh3U1dLUnhLMG12aDZFUnhLcUl0MQ0KeEpFSk83NEV5a1haVjRvTko4c2pBakVB
M0o5cjJaZ2hWaEdONlY4RG5RclRrMjRUZDBFOGhVOEFjUDBGVlArOA0KUFFtL2cvYVhmMlFRa1FU
K29tZEhWRUpyQWpFQXkwcEwwRUJINkVWUzk4ZXZEQ0J0UXcyMk9aVDUycVhsQXdaMg0KZ3lUcmlL
RlZvcWplRWp0M1NaS0txWEhTQXBQL0FqQkxwRjk5emNKSlpScTJhYmdZbGY5bHYxY2hrcldxREhV
dQ0KRFp0dG1ZSmVFZmlGQkJhdlZZSUYxZE9sWlQwRzhqTUNNQmM3c09TWm9kRm5BaXJ5UCtRZzlv
dFNCakozYlFNTA0KcFNUcXk3YzNhMkFTY0MvWXlPd2tEYUlDSG5uRDNYeWpNd0l4QUxSemwwdFFF
S01YczZoSDhUb1VkbExST0NyUA0KRWhRMHdhaFVUQ2sxZ0tBNHVQRDZUTVRDaGF2Ymg0SzYzT3Zi
S2c9PQ0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0iIiINCg0KICAgIGYgPSBmYWN0b3J5
LlNTSEZhY3RvcnkNCiAgICBmLnB1YmxpY0tleXMgPSB7DQogICAgICAgICdzc2gtcnNhJyA6IGtl
eXMuZ2V0UHVibGljS2V5U3RyaW5nKGRhdGEgPSBwdWJsaWNLZXkpDQogICAgfQ0KICAgIGYucHJp
dmF0ZUtleXMgPSB7DQogICAgICAgICdzc2gtcnNhJyA6IGtleXMuZ2V0UHJpdmF0ZUtleU9iamVj
dChkYXRhPXByaXZhdGVLZXkpDQogICAgfQ0KICAgIGYucG9ydGFsID0gcA0KDQogICAgcmVhY3Rv
ci5saXN0ZW5UQ1AoNDIyMiwgZigpKQ0KICAgIHJlYWN0b3IucnVuKCkNCg0KaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoNCiAgICBfX21haW5fXygpDQo=

--=-QA9bD+YxFoGCxbMwyLuj--

--=-WaOtw+dRnvRFj4yLHPro
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQBAZ8FJ0Lhe9RiJonARAvjgAJ9mTwu5QxIU0YrtSxvp+fYSMwPZgwCfcQSa
lz/2ql96/9aPW29jdDcsLsY=
=5Ltm
-----END PGP SIGNATURE-----

--=-WaOtw+dRnvRFj4yLHPro--