Re: Re: [Fwd: Motorola A780 phone]
"Alexandre d'Alton" <multisync-jojFES6RfZNxtahE/[email protected]> Tue, 25 Oct 2005 09:41:41 +0200 (CEST)
| Newsgroups | gmane.comp.gnome.apps.multisync.devel |
|---|---|
| Message-ID | <[email protected]> |
------=_20051025094141_52079 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable >> If now I want to integrate my work into multisync, I would like your >> comments on how to do that. >> 1) Add a switch and config in the syncml plugin in order to add t= he >> USB device as an alternate data transport than HTTP. >> OR >> 2) Keep the "proxy" approach of the external program that >> translates >> HTTP <-> USB binary data. >> >> My prefered way would be the 1) >> >> Please give me your comments and ask for more information if necessary= . > > It seems to be the 1) the right way. > > Alexandre, could I ask you to send me your standalone program if suitab= le > for > testing and/or synchronization? I send the source-code of the syncml_proxy program that redirects USB<->HTTP. It only supports one sync per run. It is not that stable yet. Some values are hard-coded, It's not pretty code but as I think we'll have to integrate it to multisync, it's not a problem yet. Last time I tried it, authentication were not working (don't remember the password sent by the phone), so I just forced it to be true in Multisync. Let me know If you're able to make it woks. Thanks, Alex. > > Thanks, > > Peter > (peter-92d/[email protected]) > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: > Power Architecture Resource Center: Free content, downloads, discussion= s, > and more. http://solutions.newsforge.com/ibmarch.tmpl > _______________________________________________ > Multisync-devel mailing list > Multisync-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org > https://lists.sourceforge.net/lists/listinfo/multisync-devel > ------=_20051025094141_52079 Content-Type: application/octet-stream; name="syncml_proxy.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="syncml_proxy.c" I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHVuaXN0ZC5o PgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDx0aW1lLmg+CiNpbmNsdWRlIDxmY250bC5o PgojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CiNpbmNsdWRl IDxzeXMvc2VsZWN0Lmg+CiNpbmNsdWRlIDxzeXMvdGltZS5oPgojaW5jbHVkZSA8bmV0aW5ldC9p bi5oPgojaW5jbHVkZSA8bmV0ZGIuaD4KI2luY2x1ZGUgPGdsaWIuaD4KCnR5cGVkZWYgc3RydWN0 IGhlYWRlcl9fIHsKCXVuc2lnbmVkIGNoYXIgY21kOwoJdW5zaWduZWQgc2hvcnQgbGVuOwp9IGhl YWRlcl90OwoKI2RlZmluZSBTWU5DTUxfQ09OTl9USU1FT1VUIDEwMAoKI2RlZmluZSBHRVRfREVW SU5GICJQT1NUIGh0dHA6Ly8vU3luYyBIVFRQLzEuMVxuIiAgICBcCgkiY29udGVudC10eXBlOiBh cHBsaWNhdGlvbi92bmQuc3luY21sK3htbFxuIiBcCgkiQWNjZXB0OiBhcHBsaWNhdGlvbi92bmQu c3luY21sK3htbFxuIiBcCgkiY29udGVudC1sZW5ndGg6IDk2OVxuIiBcCgkiPCFET0NUWVBFIFN5 bmNNTCBQVUJMSUMgXCItLy9TWU5DTUwvL0RURCBTeW5jTUwgMS4wLy9FTlwiIFwiaHR0cDovL3d3 dy5zeW5jbWwub3JnL2RvY3Mvc3luY21sX3JlcHJlc2VudF92MTBfMjAwMDEyMDcuZHRkXCI+IiBc CgkiPFN5bmNNTCB4bWxucz1cInN5bmNtbDpTWU5DTUwxLjBcIj4iIFwKCSI8U3luY0hkcj48VmVy RFREPjEuMDwvVmVyRFREPjxWZXJQcm90bz5TeW5jTUwvMS4wPC9WZXJQcm90bz48U2Vzc2lvbklE PjAzMjkxMjMxNDA8L1Nlc3Npb25JRD48TXNnSUQ+MTwvTXNnSUQ+PFRhcmdldD4iIFwKCSI8TG9j VVJJPmh0dHA6Ly8vU3luYzwvTG9jVVJJPjwvVGFyZ2V0PjxTb3VyY2U+PExvY1VSST4zNTQzNTgw MDA4NDAwOTQ8L0xvY1VSST48TG9jTmFtZT5tb3RvPC9Mb2NOYW1lPjwvU291cmNlPjxNZXRhPiIg XAoJIjxNYXhNc2dTaXplIHhtbG5zPVwic3luY21sOm1ldGluZlwiPjEwMDAwPC9NYXhNc2dTaXpl PjwvTWV0YT48Q3JlZD48TWV0YT48VHlwZSB4bWxucz1cInN5bmNtbDptZXRpbmZcIj5zeW5jbWw6 YXV0aC1iYXNpYzwvVHlwZT4iIFwKCSI8Rm9ybWF0IHhtbG5zPVwic3luY21sOm1ldGluZlwiPmI2 NDwvRm9ybWF0PjwvTWV0YT48RGF0YT5iVzkwYnpwdGIzUnY8L0RhdGE+PC9DcmVkPjwvU3luY0hk cj4iIFwKCSI8U3luY0JvZHk+PEdldD48Q21kSUQ+MTwvQ21kSUQ+PEl0ZW0+PFRhcmdldD48TG9j VVJJPi4vZGV2aW5mMTA8L0xvY1VSST48L1RhcmdldD48L0l0ZW0+PC9HZXQ+PEZpbmFsPjwvRmlu YWw+PC9TeW5jQm9keT48L1N5bmNNTD4iCgp2b2lkIHByaW50X2RhdGEodW5zaWduZWQgY2hhciAq IGRhdGEsIGludCBsZW4pIHsKCWludCBpID0gMDsKCWludCBqOwoJZm9yIChpPTA7IGk8bGVuOyBp KyspIHsKCQlpZiAoKCsraiAlIDE2KSA9PSAwKSBwcmludGYoIlxuIik7CgkJaWYoaXNwcmludChk YXRhW2ldKSB8fCBpc3NwYWNlKGRhdGFbaV0pKSB7CgkJCXByaW50ZigiJTAyWCglYykgIiwgZGF0 YVtpXSwgZGF0YVtpXSk7CgkJfSBlbHNlIHsKCQkJcHJpbnRmKCIlMDJYKC4pICIsIGRhdGFbaV0p OwoJCX0KCX0KCXByaW50ZigiXG4iKTsKfQoKY2hhciAqIHJlYWRfbGluZShGSUxFICogZikgewoJ Y2hhciBidWZbMjU1XTsKCWludCBpID0gMDsKCWNoYXIgYzsKCgl3aGlsZSAoKGMgPSBmZ2V0Yyhm KSkgIT0gMHgwYSkgewoJCWJ1ZltpKytdID0gYzsKCX0KCWJ1ZltpKytdID0gMHgwYTsKCWJ1Zltp KytdID0gMDsKCXJldHVybiAoY2hhciAqICkgc3RyZHVwKGJ1Zik7Cn0KCmludCByZWFkX2hlYWRl cihGSUxFICogZiwgaGVhZGVyX3QgKiBoZHIpIHsKCXVuc2lnbmVkIGNoYXIgdG90b1szXTsKCWZy ZWFkKHRvdG8sIDMsIDEsIGYpOwoJaGRyLT5jbWQgPSB0b3RvWzBdOwoJaGRyLT5sZW4gPSB0b3Rv WzFdIDw8IDggfCB0b3RvWzJdOwoJcmV0dXJuIGhkci0+bGVuOwp9CgppbnQgcmVhZF9kYXRhKEZJ TEUgKiBmLCBpbnQgbGVuLCBjaGFyICogZGF0YSkgewoJcmV0dXJuIGZyZWFkKGRhdGEsIDEsIGxl biwgZik7Cn0KCmludCB3cml0ZV9kYXRhKEZJTEUgKiBmLCBpbnQgbGVuLCBjaGFyICogZGF0YSkg ewoJcmV0dXJuIGZ3cml0ZShkYXRhLCAxLCBsZW4sIGYpOwp9Cgp2b2lkIHdyaXRlX2xpbmUoRklM RSAqIGYsIGNoYXIgKiBkYXRhKSB7Cglmd3JpdGUoZGF0YSwgMSwgc3RybGVuKGRhdGEpLCBmKTsK fQoKI2RlZmluZSBXQlhNTF9TVVBQT1JUX1NZTkNNTAojaW5jbHVkZSA8d2J4bWwuaD4KCmNoYXIg KiAgd2J4bWxfdG9vbChjaGFyICogZGF0YSwgaW50IGxlbil7CglXQl9VVElOWSAqaW4gPSBkYXRh LCAqeG1sID0gTlVMTDsKCVdCX0xPTkcgaW5zaXplID0gbGVuOwoJV0JYTUxDb252V0JYTUwyWE1M UGFyYW1zIHBhcmFtcyA9IHtXQlhNTF9FTkNPREVSX1hNTF9HRU5fSU5ERU5ULAoJCQkJCSAgIFdC WE1MX0xBTkdfU1lOQ01MX1NZTkNNTDEwLCAyLCBUUlVFIH07CglpZiAod2J4bWxfY29udl93Ynht bDJ4bWwoaW4sIGluc2l6ZSwgJnhtbCwgJnBhcmFtcykgPT0gV0JYTUxfT0spIHsKCQlkYXRhID0g KFdCX1VUSU5ZICopZ19zdHJkdXAoeG1sKTsKCQl3YnhtbF9mcmVlKHhtbCk7CgkJcHJpbnRmKGRh dGEpOwoJfSBlbHNlIHsgCgkJcmV0dXJuIE5VTEw7Cgl9CglyZXR1cm4gZGF0YTsKfQoKCmNoYXIg KiBnZXRfZnVsbF9kYXRhKEZJTEUgKiBkZXYsIGludCAqcmV0X2xlbikKewoKCWhlYWRlcl90IGhk cjsKCWNoYXIgY29udGludWVfY21kW10gPSB7IDB4OTAsIDB4MDAsIDB4MDN9OwoJY2hhciAqIHRt cCwgKiBjdXJyOwoJaW50IGRhdGFfbGVuOwoJaW50IGxlbjsKCglsZW4gPSByZWFkX2hlYWRlcihk ZXYsICZoZHIpOwoJCglwcmludGYoIkdvdCBoZWFkZXIgbGVuICVkIHR5cGUgJTAyeFxuIiwgaGRy LmxlbiwgaGRyLmNtZCk7CgoJaWYgKGhkci5sZW4gPT0gMyAmJiBoZHIuY21kID09IDB4ODEpCgkJ cmV0dXJuIE5VTEw7CgoJZGF0YV9sZW4gPSBoZHIubGVuIC0gMzsKCgljdXJyID0gdG1wID0gbWFs bG9jKGRhdGFfbGVuKTsKCglyZWFkX2RhdGEoZGV2LCBoZHIubGVuIC0gMywgdG1wKTsKCWN1cnIg Kz0gaGRyLmxlbiAtIDM7CgoJLy9wcmludF9kYXRhKHRtcCwgaGRyLmxlbiAtIDMpOwoKCXdoaWxl ICghKGhkci5jbWQmMHg4MCkpIHsKCQljaGFyIGR1bW15WzNdOwoKCQl3cml0ZV9kYXRhKGRldiwg MywgY29udGludWVfY21kKTsKCQkKCQlsZW4gPSByZWFkX2hlYWRlcihkZXYsICZoZHIpOwoJCQoJ CXByaW50ZigiR290IGhlYWRlciBsZW4gJWQgdHlwZSAlMDJ4XG4iLCBoZHIubGVuLCBoZHIuY21k KTsKCQlkYXRhX2xlbiArPSBoZHIubGVuIC0gMzsKCQl0bXAgPSByZWFsbG9jKHRtcCwgZGF0YV9s ZW4pOwoJCS8qIGR1bW15IHJlYWQuLi4gKi8KCQkvL2xlbiA9IHJlYWRfaGVhZGVyKGRldiwgJmhk cik7CgkJcmVhZF9kYXRhKGRldiwgMywgZHVtbXkpOwoJCXByaW50ZigiRHVtbXkgcmVhZCBnaXZl cyA6ICUwMnggJTAyeCAlMDJ4XG4iLCBkdW1teVswXSwgZHVtbXlbMV0sIGR1bW15WzJdKTsKCQly ZWFkX2RhdGEoZGV2LCBoZHIubGVuIC0gNiwgY3Vycik7CgkJY3VyciArPSBoZHIubGVuIC0gNjsK CX0KCSpyZXRfbGVuID0gZGF0YV9sZW47IAoJcmV0dXJuIHRtcDsKfQoKLy8gTGlrZSByZWFkKCkg YnV0IHdpdGggYSB0aW1lb3V0IG9mIHRpbWVvdXQgc2Vjb25kcwppbnQgY29ubl9yZWFkKGludCBm ZCwgY2hhciAqZGF0YSwgaW50IGxlbiwgaW50IHRpbWVvdXQpIHsKCXN0cnVjdCB0aW1ldmFsIHR2 OwoJZmRfc2V0IHJzZXQsIHdzZXQsIHhzZXQ7CglpbnQgbGVubGVmdCA9IGxlbjsKCglpZiAoZmQg PCAwKQoJCXJldHVybigwKTsKCXdoaWxlIChsZW5sZWZ0ID4gMCkgewoJCUZEX1pFUk8oJnJzZXQp OwoJCUZEX1pFUk8oJndzZXQpOwoJCUZEX1pFUk8oJnhzZXQpOwoJCUZEX1NFVChmZCwgJnJzZXQp OwoJCXR2LnR2X3NlYyA9IHRpbWVvdXQ7CgkJdHYudHZfdXNlYyA9IDA7CgkJaWYgKHNlbGVjdChm ZCsxLCAgJnJzZXQsICZ3c2V0LCAmeHNldCwgJnR2KSkgewoJCQlpbnQgcmV0OwoJCQlyZXQgPSBy ZWFkKGZkLCBkYXRhK2xlbi1sZW5sZWZ0LCBsZW5sZWZ0KTsgCgkJCWlmIChyZXQgPiAwKSB7CgkJ CQlsZW5sZWZ0IC09IHJldDsKCQkJfSBlbHNlIHsKCQkJCXJldHVybihsZW4tbGVubGVmdCk7CgkJ CX0KCQl9IGVsc2UgewoJCQlyZXR1cm4oLTEpOwoJCX0KCX0KCXJldHVybihsZW4pOwp9CgppbnQg Y29ubl93cml0ZShpbnQgZmQsIGNoYXIgKmRhdGEsIGludCBsZW4sIGludCB0aW1lb3V0KSB7Cglz dHJ1Y3QgdGltZXZhbCB0djsKCWZkX3NldCByc2V0LCB3c2V0LCB4c2V0OwoJaW50IGxlbmxlZnQg PSBsZW47CgoJaWYgKGZkIDwgMCkKCQlyZXR1cm4oMCk7Cgl3aGlsZSAobGVubGVmdCA+IDApIHsK CQlGRF9aRVJPKCZyc2V0KTsKCQlGRF9aRVJPKCZ3c2V0KTsKCQlGRF9aRVJPKCZ4c2V0KTsKCQlG RF9TRVQoZmQsICZ3c2V0KTsKCQl0di50dl9zZWMgPSB0aW1lb3V0OwoJCXR2LnR2X3VzZWMgPSAw OwoJCWlmIChzZWxlY3QoZmQrMSwgICZyc2V0LCAmd3NldCwgJnhzZXQsICZ0dikpIHsKCQkJaW50 IHJldDsKCQkJcmV0ID0gd3JpdGUoZmQsIGRhdGErbGVuLWxlbmxlZnQsIGxlbmxlZnQpOyAKCQkJ aWYgKHJldCA+IDApIHsKCQkJCWxlbmxlZnQgLT0gcmV0OwoJCQl9IGVsc2UgewoJCQkJcmV0dXJu KHJldCk7CgkJCX0KCQl9IGVsc2UgewoJCQlyZXR1cm4oLTEpOwoJCX0KCX0KCXJldHVybihsZW4p Owp9CgovLyBSZWNlaXZlIG9uZSBsaW5lLCB3aXRoIHRpbWVvdXQKaW50IGNvbm5fcmVjdl9saW5l KGludCBmZCwgY2hhciAqbGluZSwgaW50IGxlbikgewoJaW50IGkgPSAwOwoJaW50IHJlcyA9IC0x OwoJCglpZiAobGVuID09IDApCgkJcmV0dXJuKDApOwoJaSA9IC0xOwoJZG8gewoJCWkrKzsKCQly ZXMgPSBjb25uX3JlYWQoZmQsIGxpbmUraSwgMSwgCgkJCQlTWU5DTUxfQ09OTl9USU1FT1VUKTsK CX0gd2hpbGUgKHJlcyA9PSAxICYmIGkgPCBsZW4gJiYgbGluZVtpXSAhPSAnXG4nKTsKCWxpbmVb aV0gPSAwOwoJaWYgKGkgPiAwICYmIGxpbmVbaS0xXSA9PSAnXHInKQoJCWxpbmVbLS1pXSA9IDA7 CglyZXR1cm4oaSk7Cn0KCmludCBjb25uX3JlY3YoaW50IGZkLCBjaGFyICpkYXRhLCBpbnQgbGVu KSB7CglpbnQgcmVzID0gLTE7CglpZiAobGVuID09IDApCgkJcmV0dXJuKDApOwoJcmVzID0gY29u bl9yZWFkKGZkLCBkYXRhLCBsZW4sIFNZTkNNTF9DT05OX1RJTUVPVVQpOwoJcmV0dXJuKHJlcyk7 Cn0KCmludCBjb25uX3NlbmQoaW50IGZkLCBjaGFyICpkYXRhLCBpbnQgbGVuKSB7CglpbnQgcmVz ID0gMDsKCWlmIChsZW4gPT0gMCkKCQlyZXR1cm4oMCk7CglyZXMgPSBjb25uX3dyaXRlKGZkLCBk YXRhLCBsZW4sIFNZTkNNTF9DT05OX1RJTUVPVVQpOwoJcmV0dXJuKHJlcyk7Cn0KCmludCBjb25u X3JlY3ZfYWxsKGludCBmZCwgY2hhciAqKmRhdGEpIHsKCWludCBsZW4gPSAwOwoJKmRhdGEgPSBO VUxMOwoJaWYgKGZkID49IDApIHsKCQlpbnQgYmxvY2tsZW4gPSAxMDI0LCBvZmZzZXQ9MCwgcmVz OwoJCSpkYXRhID0gZ19tYWxsb2MoYmxvY2tsZW4pOwoJCXdoaWxlKChyZXMgPSBjb25uX3JlYWQo ZmQsICpkYXRhK29mZnNldCwgCgkJCQkgICAgICAgYmxvY2tsZW4tb2Zmc2V0LCAKCQkJCSAgICAg ICBTWU5DTUxfQ09OTl9USU1FT1VUKSkgPT0gYmxvY2tsZW4tb2Zmc2V0KSB7CgkJCWNoYXIgKnRt cCA9ICpkYXRhOwoJCQlvZmZzZXQgPSBibG9ja2xlbjsKCQkJKmRhdGEgPSBnX21hbGxvYyhibG9j a2xlbioyKTsKCQkJbWVtY3B5KCpkYXRhLCB0bXAsIGJsb2NrbGVuKTsKCQkJYmxvY2tsZW4gKj0g MjsKCQkJZ19mcmVlKHRtcCk7CgkJfQoJCWxlbiA9IG9mZnNldDsKCQlpZiAocmVzID49IDApCgkJ CWxlbiArPSByZXM7Cgl9CglyZXR1cm4obGVuKTsKfQoKCmludCBvcGVuX3NvY2tldChpbnQgcG9y dCkKewoJaW50IHNvY2sgPSBzb2NrZXQoUEZfSU5FVCwgU09DS19TVFJFQU0sIDApOwoJc3RydWN0 IGhvc3RlbnQgKmhvc3RlbnQ7CglzdHJ1Y3Qgc29ja2FkZHJfaW4gc2VydmFkZHI7CiAgICAKCWhv c3RlbnQgPSBnZXRob3N0YnluYW1lKCJsb2NhbGhvc3QiKTsKCXNlcnZhZGRyLnNpbl9mYW1pbHkg PSBBRl9JTkVUOwoJc2VydmFkZHIuc2luX3BvcnQgPSBodG9ucyhwb3J0KTsKCXNlcnZhZGRyLnNp bl9hZGRyLnNfYWRkciA9IAoJCSgqKCh1bnNpZ25lZCBpbnQqKWhvc3RlbnQtPmhfYWRkcl9saXN0 WzBdKSk7CglpZiAoY29ubmVjdChzb2NrLCAoc3RydWN0IHNvY2thZGRyKikgJnNlcnZhZGRyLCAK CQkgICAgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbikpKSB7CgkJcHJpbnRmKCJFcnJvciBjb25u ZWN0aW5nIHRvIGxvY2FsaG9zdDolZFxuIiwgcG9ydCk7CgkJcmV0dXJuIC0xOwoJfQoJcmV0dXJu IHNvY2s7Cn0KCgpjaGFyICoKcmVhZF9odHRwX3Jlc3AoaW50IHNvY2tldCwgaW50ICpsZW4pCnsK CWludCBjb250ZW50bGVuZ3RoID0gLTE7CglpbnQgcmVzID0gMDsKCWludCBleHBlY3QgPSAwOwoJ Y2hhciAqZGF0YSA9IE5VTEwsICp0bXA7CgljaGFyIGNvbnRlbnR0eXBlWzEwMjRdID0gIiIsIHRy YW5zZmVyZW5jb2RpbmdbMjU2XSA9ICIiOwoJY2hhciBsaW5lWzEwMjRdOwoJY2hhciBjb29raWVb MTAyNF0gPSAiIjsKCWdib29sZWFuIGhlYWRlcnMgPSBUUlVFOwoJaW50IGw7CgoJaWYgKChyZXMg PSBjb25uX3JlY3ZfbGluZShzb2NrZXQsIGxpbmUsIDEwMjQpKSA+PSAwKSB7CgkJY2hhciBodHRw Y21kWzMyXSA9ICIiOwoJCWNoYXIgZmlsZVsyNTZdOwoJCWNoYXIgaHR0cHZlclszMl07CgkJaW50 IHJzcGNvZGUgPSAwOwoJCWdib29sZWFuIGh0dHByZXE9RkFMU0U7CgkJZ2Jvb2xlYW4gaHR0cHJz cD1GQUxTRTsKCQlpZiAoc3NjYW5mKGxpbmUsICJIVFRQLyUzMXMgJWQiLCBodHRwdmVyLCAmcnNw Y29kZSkgPT0gMikgewoJCQlodHRwcnNwPVRSVUU7CgkJfQoJCS8vIEdldCBoZWFkZXJzCgkJd2hp bGUgKGhlYWRlcnMpIHsKCQkJaWYgKGNvbm5fcmVjdl9saW5lKHNvY2tldCwgbGluZSwgMTAyNCkg Pj0gMCkgewoJCQkJY2hhciBrZXlbMjU2XSwgdmFsdWVbMTAyNF07CgkJCQlwcmludGYoIiVzXG4i LCBsaW5lKTsKCQkJCWlmIChzdHJsZW4obGluZSkgPiAwKSB7CgkJCQkJaWYgKHNzY2FuZihsaW5l LCAiJTI1NVteOl06ICUxMDIzW15cbl0iLCBrZXksIHZhbHVlKSA9PSAyKSB7CgkJCQkJCWlmICgh Z19zdHJjYXNlY21wKGtleSwgImNvbnRlbnQtbGVuZ3RoIikpCgkJCQkJCQlzc2NhbmYodmFsdWUs ICIlZCIsICZjb250ZW50bGVuZ3RoKTsKCQkJCQkJaWYgKCFnX3N0cmNhc2VjbXAoa2V5LCAiY29u dGVudC10eXBlIikpCgkJCQkJCQlzc2NhbmYodmFsdWUsICIlMTAyM1teO10iLCAmY29udGVudHR5 cGUpOwoJCQkJCQlpZiAoIWdfc3RyY2FzZWNtcChrZXksICJleHBlY3QiKSkKCQkJCQkJCXNzY2Fu Zih2YWx1ZSwgIiVkIiwgJmV4cGVjdCk7CgkJCQkJCWlmICghZ19zdHJjYXNlY21wKGtleSwgInRy YW5zZmVyLWVuY29kaW5nIikpCgkJCQkJCQlzc2NhbmYodmFsdWUsICIlMjU1W147XSIsICZ0cmFu c2ZlcmVuY29kaW5nKTsKCQkJCQkJaWYgKCFnX3N0cmNhc2VjbXAoa2V5LCAiY29va2llIikpIHsK CQkJCQkJCWlmIChzc2NhbmYodmFsdWUsICIlMTAyM1teXG5dIiwgJmNvb2tpZSkgPj0gMSkgewoJ CQkJCQkJCWNoYXIgKnBvcyA9IGNvb2tpZTsKCQkJCQkJCQl3aGlsZSAocG9zKSB7CgkJCQkJCQkJ CWNoYXIgbmFtZVsyNTZdPSIiLHZhbHVlWzI1Nl07CgkJCQkJCQkJCXNzY2FuZihwb3MsICIlMjU1 W149O109JTI1NVteO10iLCBuYW1lLCB2YWx1ZSk7CgkJCQkJCQkJCXBvcyA9IHN0cnN0cihwb3Ms IjsiKTsKCQkJCQkJCQkJd2hpbGUgKHBvcyAmJiAqcG9zICYmICgqcG9zID09ICcgJyB8fCAqcG9z ID09ICc7JykpCgkJCQkJCQkJCQlwb3MrKzsKCQkJCQkJCQl9IAoJCQkJCQkJfQoJCQkJCQl9CgkJ CQkJfQoJCQkJfSBlbHNlCgkJCQkJaGVhZGVycyA9IEZBTFNFOwoJCQl9IGVsc2UKCQkJCWhlYWRl cnMgPSBGQUxTRTsKCQl9Cgl9CglsID0gY29udGVudGxlbmd0aDsKCXByaW50ZigiR28gdG8gcmVj dl9hbGwgJWRcbiIsIGwpOwoJZGF0YSA9IG1hbGxvYyhjb250ZW50bGVuZ3RoKTsKCXJlcyA9IGNv bnRlbnRsZW5ndGggPSBjb25uX3JlYWQoc29ja2V0LCBkYXRhLCBsLCBTWU5DTUxfQ09OTl9USU1F T1VUKTsKCXByaW50ZigiR290ICVkIGJ5dGVzIFxuIiwgcmVzKTsKCgkqbGVuID0gY29udGVudGxl bmd0aDsKCglyZXR1cm4gZGF0YTsKfQoKCmNoYXIgKiBzZXNzaW9uX2lkOwppbnQKcG9zdF9yZXF1 ZXN0KGludCBmZCwgY2hhciAqIGRhdGEsIGludCBsZW4pCnsKCWNoYXIgKiBidWZmZXI7CglpbnQg aTsKCWNoYXIqIG9mZnNldDsKCWNoYXIgKiBvOwoJYnVmZmVyID0gbWFsbG9jKDEwMjQgKyBsZW4p OwoJaSA9IDA7Cgl3aGlsZSAoaSA8IGxlbikgewoJCWlmIChvZmZzZXQgPSBzdHJzdHIoZGF0YSAr IGksICI/c2Vzc2lvbmlkPSIpKSB7CgkJCXNlc3Npb25faWQgPSBzdHJkdXAob2Zmc2V0KTsKCQkJ cHJpbnRmKCJHb3Qgc2Vzc2lvbiA6JXNcbiIsIHNlc3Npb25faWQpOwoJCQlicmVhazsKCQl9IGVs c2UgewoJCQlzZXNzaW9uX2lkID0gTlVMTDsKCQl9CgkJaSArPSBzdHJsZW4oZGF0YStpKSArIDE7 Cgl9CglzcHJpbnRmKGJ1ZmZlciwgCgkJIlBPU1QgaHR0cDovLy9TeW5jJXMgSFRUUC8xLjFcbiIK CQkiY29udGVudC1sZW5ndGg6ICVkXG4iCgkJImNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vdm5k LnN5bmNtbCt3YnhtbFxuXG4iLCBzZXNzaW9uX2lkLCBsZW4pOwoKCWlmKHNlc3Npb25faWQpIHsK CQlmcmVlKHNlc3Npb25faWQpOwoJCXNlc3Npb25faWQgPSBOVUxMOwoJfQoJaSA9IHN0cmxlbihi dWZmZXIpOwoJbWVtY3B5KGJ1ZmZlcitpLCBkYXRhLCBsZW4pOwoKCWNvbm5fc2VuZChmZCwgYnVm ZmVyLCBsZW4raSk7CglmcmVlKGJ1ZmZlcik7CglwcmludGYoIlJlcXVlc3Qgc2VudFxuIik7Cgly ZXR1cm47CQp9CgojZGVmaW5lIE1BWF9MRU4gMTAxMwoKaW50IApzZW5kX2RhdGFfbXVsdGlwbGUo RklMRSAqIGZkLCBjaGFyICogZGF0YSwgaW50IGxlbikKewoJaW50IHRvZ28gPSBsZW47CglpbnQg dG1wX2xlbiA9IE1BWF9MRU47CglpbnQgZm4gPSBmaWxlbm8oZmQpOwoJaGVhZGVyX3QgcGhkcjsK CgljaGFyIGZ1bGxfaGRyW10gPSB7MHg5MCwgMHgwNCwgMHgwLCAweEMzLCAweDAwLCAweDAwLCAw eDAsIDB4MCwgMHg0OCwgMHgwLCAweDB9OyAKCWNoYXIgaGRyW10gPSB7MHg5MCwgMHgwMCwgMHgw MCwgMHg0OCwgMHgwMCwgMHgwMH07CgljaGFyICogcHRyID0gZGF0YTsKCglmdWxsX2hkclsxXSA9 IChNQVhfTEVOICsgMTEpID4+IDggJiAweGZmOwoJZnVsbF9oZHJbMl0gPSAoTUFYX0xFTiArIDEx KSAmIDB4ZmY7CgoJZnVsbF9oZHJbNl0gPSAobGVuKSA+PiA4ICYgMHhmZjsKCWZ1bGxfaGRyWzdd ID0gKGxlbikgPj4gOCAmIDB4ZmY7CgoJZnVsbF9oZHJbOV0gPSAoTUFYX0xFTiArIDMpID4+IDgg JiAweGZmOwoJZnVsbF9oZHJbMTBdID0gKE1BWF9MRU4gKyAzKSAmIDB4ZmY7CgkJCgljb25uX3Nl bmQoZm4sIGZ1bGxfaGRyLCAxMSk7Cgljb25uX3NlbmQoZm4sIGRhdGEsIE1BWF9MRU4pOwoKCQoJ dG9nbyAtPSB0bXBfbGVuOwoJcHRyICs9IHRtcF9sZW47CglwcmludGYoIlNlbnQgQ2h1bmsgJWQs IHRvZ28gJWRcbiIsIHRtcF9sZW4sIHRvZ28pOwoJcmVhZF9oZWFkZXIoZmQsICZwaGRyKTsKCXBy aW50ZigiR290IGhlYWRlciBsZW4gJWQgdHlwZSAlMDJ4XG4iLCBwaGRyLmxlbiwgcGhkci5jbWQp OwoKCXdoaWxlICh0b2dvID4gTUFYX0xFTiApIHsKCQloZHJbMV0gPSAoTUFYX0xFTis2KSA+PiA4 ICYgMHhmZjsKCQloZHJbMl0gPSAoTUFYX0xFTis2KSAmIDB4ZmY7CgkJaGRyWzRdID0gKE1BWF9M RU4rMykgPj4gOCAmIDB4ZmY7CgkJaGRyWzVdID0gKE1BWF9MRU4rMykgJiAweGZmOwoJCWNvbm5f c2VuZChmbiwgaGRyLCA2KTsKCQljb25uX3NlbmQoZm4sIHB0ciwgdG1wX2xlbik7CgkJcHRyICs9 IHRtcF9sZW47CgkJdG9nbyAtPSB0bXBfbGVuOwoJCXByaW50ZigiU2VudCBDaHVuayAlZCwgdG9n byAlZCBcbiIsIHRtcF9sZW4sIHRvZ28pOwoJCXJlYWRfaGVhZGVyKGZkLCAmcGhkcik7CgkJcHJp bnRmKCJHb3QgaGVhZGVyIGxlbiAlZCB0eXBlICUwMnhcbiIsIHBoZHIubGVuLCBwaGRyLmNtZCk7 Cgl9CgloZHJbMF0gPSAweGEwOwoJaGRyWzFdID0gKHRvZ28rNikgPj4gOCAmIDB4ZmY7CgloZHJb Ml0gPSAodG9nbys2KSAmIDB4ZmY7CgloZHJbM10gPSAweDQ5OwoJaGRyWzRdID0gKHRvZ28rMykg Pj4gOCAmIDB4ZmY7CgloZHJbNV0gPSAodG9nbyszKSAmIDB4ZmY7Cgljb25uX3NlbmQoZm4sIGhk ciwgNik7Cgljb25uX3NlbmQoZm4sIHB0ciwgdG9nbyk7CglwcmludGYoIlNlbnQgQ2h1bmsgJWQg XG4iLCB0b2dvKTsKCXJldHVybiAwOwp9CgoKaW50IApzZW5kX2RhdGFfd2l0aF9oZWFkZXIoRklM RSAqIGZkLCBjaGFyICogZGF0YSwgaW50IGxlbikKewoJY2hhciB0b3RvW10gPSB7MHhhMCwgMHgw LCAweDAsIDB4QzMsIDB4MDAsIDB4MDAsIDB4MCwgMHgwLCAweDQ5LCAweDAsIDB4MH07IAoJaW50 IGZuID0gZmlsZW5vKGZkKTsKCWludCByZXM7CgoJaWYgKGxlbiA+IE1BWF9MRU4pCgkJcmV0dXJu IChzZW5kX2RhdGFfbXVsdGlwbGUoZmQsIGRhdGEsIGxlbikpOwoKCXRvdG9bNl0gPSBsZW4gPj4g OCAmIDB4ZmY7Cgl0b3RvWzddID0gbGVuICYgMHhmZjsJCglsZW4gKz0gMzsKCXRvdG9bOV0gPSBs ZW4gPj4gOCAmIDB4ZmY7Cgl0b3RvWzEwXSA9IGxlbiAmIDB4ZmY7CglsZW4gKz0gODsKCXRvdG9b MV0gPSBsZW4gPj4gOCAmIDB4ZmY7Cgl0b3RvWzJdID0gbGVuICYgMHhmZjsKCQoJcmVzID0gY29u bl9zZW5kKGZuLCB0b3RvLCAxMSk7CglwcmludGYoIlNlbnQgaGVhZGVyICVkIGJ5dGVzIC4uLlxu IiwgcmVzKTsKCQoJLy9wcmludF9kYXRhKHRvdG8sIDExKTsKCglyZXMgPSBjb25uX3NlbmQoZm4s IGRhdGEsIGxlbi0xMSk7CglwcmludGYoIlNlbnQgZGF0YSAlZCBieXRlcy4uLlxuIiwgcmVzKTsK CXJldHVybiAwOwp9CgoKaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqIGFyZ3YpIHsKCUZJTEUg KiBkZXYsICpvdXQ7CgljaGFyICogdG1wOwoJaW50IGxlbjsKCWhlYWRlcl90IGhkcjsKCWNoYXIg Y21kW10gPSB7IDB4YTAsIDB4MDAsIDB4MGMsIDB4MTIsIDB4MDAsIDB4MDQsIDB4MDAsIDB4Q0Is IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEgfTsJCgljaGFyIGNtZDNbXSA9IHsgMHhhMCwgMHgwMCwg MHgwM307CglpbnQgb2Zmc2V0OwoJaW50IHNvY2tldDsgCgljaGFyICogZGV2aW5mOwoJaW50IGRl dmluZmxlbjsKCWludCBjb250ID0gMTsKCglpZiAoIShzb2NrZXQgPSBvcGVuX3NvY2tldCg1MDUw KSkgKSB7CgkJcmV0dXJuIDA7Cgl9CgovKgoJcG9zdF9yZXF1ZXN0KHNvY2tldCwgR0VUX0RFVklO Riwgc3RybGVuKEdFVF9ERVZJTkYpKTsKCglkZXZpbmYgPSByZWFkX2h0dHBfcmVzcChzb2NrZXQs ICZkZXZpbmZsZW4pOwoJewoJCWludCBvZmYgPSBzdHJzdHIoZGV2aW5mLCAiP3Nlc3Npb25pZD0i KTsKCQlpZiAob2ZmKSB7CgkJCXNlc3Npb25faWQgPSBzdHJkdXAoZGV2aW5mK29mZik7CgkJCXBy aW50ZigiU2Vzc2lvbklEIGlzIDogJXMiLCBzZXNzaW9uX2lkKTsKCQl9Cgl9CiovCQoJZGV2ID0g Zm9wZW4oIi9kZXYvdHR5QUNNMCIsICJ3KyIpOwoKCWlmIChkZXYgPT0gTlVMTCkgewoJCXByaW50 ZigiRXJyb3Igb3BlbmluZyBmaWxlIFxuIik7CgkJZXhpdCgxKTsKCX0KCW91dCA9IGZvcGVuKCJv dXQud2J4bWwiLCAidyIpOwoJCgl3cml0ZV9saW5lKGRldiwgIkFUXHJcbkFURTFcclxuIik7CgoJ Ly90bXAgPSByZWFkX2xpbmUoZGV2KTsKCS8vZnJlZSh0bXApOwoKCWRvIHsKCQl0bXAgPSByZWFk X2xpbmUoZGV2KTsKCQlpZihzdHJjbXAodG1wLCAiT0tcclxuIikpIHsKCQkJcHJpbnRmKCJPSyBl eHBlY3RlZFxuIik7CgkJCWZyZWUodG1wKTsJCQoJCQkvL3JldHVybjsKCQl9IGVsc2UgewoJCQlj b250ID0gMDsKCQl9Cgl9IHdoaWxlIChjb250KTsKCglwcmludGYoIkdvdCBPS1xuIik7CgoJd3Jp dGVfbGluZShkZXYsICJBVCtNU1lOQ1xyXG4iKTsKCgljb250ID0gMTsKCWRvIHsKCQl0bXAgPSBy ZWFkX2xpbmUoZGV2KTsKCQlpZiAoc3RyY21wKHRtcCwgIkFUK01TWU5DXHJcbiIpKSB7CgkJCXBy aW50ZigiQVQrTVNZTkMgZXhwZWN0ZWRcbiIpOwoJCQlmcmVlKHRtcCk7CgkJCS8vcmV0dXJuIDsJ CgkJfWVsc2UgewoJCQljb250ID0gMDsKCQl9Cgl9IHdoaWxlIChjb250KTsKCglmcmVlKHRtcCk7 Cgl0bXAgPSByZWFkX2xpbmUoZGV2KTsKCWZyZWUodG1wKTsKCXRtcCA9IHJlYWRfbGluZShkZXYp OwoKCWlmKHN0cmNtcCh0bXAsICJPS1xyXG4iKSkgewoJCXByaW50ZigiT0sgZXhwZWN0ZWRcbiIp OwoJCWZyZWUodG1wKTsJCQoJCXJldHVybiA7Cgl9CglmcmVlKHRtcCk7CgoJbGVuID0gcmVhZF9o ZWFkZXIoZGV2LCAmaGRyKTsKCQoJcHJpbnRmKCJHb3QgaGVhZGVyIGxlbiAlZCB0eXBlICUwMnhc biIsIGhkci5sZW4sIGhkci5jbWQpOwoJCgl0bXAgPSBtYWxsb2MoaGRyLmxlbiAtIDMpOwoJcmVh ZF9kYXRhKGRldiwgaGRyLmxlbiAtIDMsIHRtcCk7CgkvL3ByaW50X2RhdGEodG1wLCBoZHIubGVu IC0gMyk7CglmcmVlKHRtcCk7CgkKCXdyaXRlX2RhdGEoZGV2LCAxMiwgY21kKTsKCgl3aGlsZSAo MSkgewoJCWNoYXIgKiB0bXAyOwoJCWludCBsZW4yOwoKCQl0bXAgPSBnZXRfZnVsbF9kYXRhKGRl diwgJmxlbik7CgkJcHJpbnRmKF9fRklMRV9fICIlZFxuIiwgX19MSU5FX18pOwoJCS8vcHJpbnRf ZGF0YSh0bXAsIGxlbik7CgkJaWYgKHRtcCA9PSBOVUxMKSB7CgkJCXJldHVybiAwOwoJCX0KCQl3 cml0ZV9kYXRhKGRldiwgMywgY21kMyk7CgkJdG1wMiA9IGdldF9mdWxsX2RhdGEoZGV2LCAmbGVu Mik7CgkJaWYgKHRtcDIgPT0gTlVMTCkgewoJCQlyZXR1cm4gMDsKCQl9CgkJcHJpbnRmKF9fRklM RV9fICIlZFxuIiwgX19MSU5FX18pOwoJCWZyZWUodG1wMik7CgoJCW91dCA9IGZvcGVuKCJvdXRf MS53YnhtbCIsICJ3Iik7CgkJewoJCQlvZmZzZXQgPSB0bXBbN10rMTM7CgkJCWZ3cml0ZSh0bXAg KyBvZmZzZXQsIDEsIGxlbi1vZmZzZXQsIG91dCk7CgkJCWZjbG9zZShvdXQpOwoJCQkvL3ByaW50 Zih3YnhtbF90b29sKHRtcCtvZmZzZXQsIGxlbi1vZmZzZXQpKTsKCQl9CgkJcG9zdF9yZXF1ZXN0 KHNvY2tldCwgdG1wK29mZnNldCwgbGVuIC0gb2Zmc2V0KTsKCQlmcmVlKHRtcCk7CgoJCXRtcCA9 IHJlYWRfaHR0cF9yZXNwKHNvY2tldCwgJmxlbik7CgkJb3V0ID0gZm9wZW4oIm91dF9zZXJ2ZXIu d2J4bWwiLCAidyIpOwoJCXsKCQkJZndyaXRlKHRtcCwgMSwgbGVuLCBvdXQpOwoJCQlmY2xvc2Uo b3V0KTsKCQkJLy9wcmludGYod2J4bWxfdG9vbCh0bXArb2Zmc2V0LCBsZW4tb2Zmc2V0KSk7CgkJ fQoJCQoJCXByaW50ZigicmVhZGJhY2sgJWQgY2hhcnMgXG4iLCBsZW4pOwoJCWlmIChsZW4gPiAx MSkgewoJCQkvL3ByaW50X2RhdGEodG1wLGxlbik7CgkJCXNlbmRfZGF0YV93aXRoX2hlYWRlcihk ZXYsIHRtcCwgbGVuKTsKCQkJcHJpbnRmKF9fRklMRV9fICIlZFxuIiwgX19MSU5FX18pOwoJCX0K CX0KCgl3cml0ZV9kYXRhKGRldiwgMywgY21kMyk7Cgl0bXAgPSBnZXRfZnVsbF9kYXRhKGRldiwg Jmxlbik7CgoJb3V0ID0gZm9wZW4oIm91dF8yLndieG1sIiwgInciKTsKCWZ3cml0ZSh0bXAsIDEs IGxlbiwgb3V0KTsKCWZjbG9zZShvdXQpOwoJZnJlZSh0bXApOwoJCglyZXR1cm47Cn0KCgo= ------=_20051025094141_52079-- ------------------------------------------------------- This SF.Net email is sponsored by the JBoss Inc. Get Certified Today * Register for a JBoss Training Course Free Certification Exam for All Training Attendees Through End of 2005 Visit http://www.jboss.com/services/certification for more information