Return-Path: Message-ID: <2a9506370712130701t2c1c7d33ocd2c44fde5e2abf1@mail.gmail.com> Date: Thu, 13 Dec 2007 12:01:39 -0300 From: "Vinicius Gomes" To: bluez-devel@lists.sourceforge.net MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_10117_13027151.1197558099911" Subject: [Bluez-devel] [Patch] Extending the serial service to export a TCP socket. Reply-To: BlueZ development List-Id: BlueZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: bluez-devel-bounces@lists.sourceforge.net Errors-To: bluez-devel-bounces@lists.sourceforge.net ------=_Part_10117_13027151.1197558099911 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi Marcel, It only exports a local (127.0.0.1) port, but could be easily modified to export a port from any host. It is really simple as all the hard work was already done for the Unix socket proxy. My primary interest is export the internal N810 GPS so other devices can use it. It is based in the latest git tree. -- Vinicius Costa Gomes INdT - Instituto Nokia de Tecnologia ------=_Part_10117_13027151.1197558099911 Content-Type: application/octet-stream; name=tcp-proxy.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_fa5e8xuc Content-Disposition: attachment; filename=tcp-proxy.patch ZGlmZiAtLWdpdCBhL3NlcmlhbC9tYW5hZ2VyLmMgYi9zZXJpYWwvbWFuYWdlci5jCmluZGV4IGI0 NTk1OGIuLmIzMjY5NzUgMTAwNjQ0Ci0tLSBhL3NlcmlhbC9tYW5hZ2VyLmMKKysrIGIvc2VyaWFs L21hbmFnZXIuYwpAQCAtMTA1LDIyICsxMDUsMjQgQEAgc3RhdGljIHN0cnVjdCB7CiB0eXBlZGVm IGVudW0gewogCVRUWV9QUk9YWSwKIAlVTklYX1NPQ0tFVF9QUk9YWSwKKwlUQ1BfU09DS0VUX1BS T1hZLAogCVVOS05PV05fUFJPWFlfVFlQRSA9IDB4RkYKIH0gcHJveHlfdHlwZV90OwogCiBzdHJ1 Y3QgcHJveHkgewotCWJkYWRkcl90CXNyYzsKLQliZGFkZHJfdAlkc3Q7Ci0JY2hhcgkJKnV1aWQx Mjg7CS8qIFVVSUQgMTI4ICovCi0JY2hhcgkJKmFkZHJlc3M7CS8qIFRUWSBvciBVbml4IHNvY2tl dCBuYW1lICovCi0JcHJveHlfdHlwZV90CXR5cGU7CQkvKiBUVFkgb3IgVW5peCBzb2NrZXQgKi8K LQlzdHJ1Y3QgdGVybWlvcyAgc3lzX3RpOwkJLyogRGVmYXVsdCBUVFkgc2V0dGluZyAqLwotCXN0 cnVjdCB0ZXJtaW9zICBwcm94eV90aTsJLyogUHJveHkgVFRZIHNldHRpbmdzICovCi0JdWludDhf dAkJY2hhbm5lbDsJLyogUkZDT01NIGNoYW5uZWwgKi8KLQl1aW50MzJfdAlyZWNvcmRfaWQ7CS8q IFNlcnZpY2UgcmVjb3JkIGlkICovCi0JZ3VpbnQJCWxpc3Rlbl93YXRjaDsJLyogU2VydmVyIGxp c3RlbiB3YXRjaCAqLwotCWd1aW50CQlyZmNvbW1fd2F0Y2g7CS8qIFJGQ09NTSB3YXRjaDogUmVt b3RlICovCi0JZ3VpbnQJCWxvY2FsX3dhdGNoOwkvKiBMb2NhbCB3YXRjaDogVFRZIG9yIFVuaXgg c29ja2V0ICovCisJYmRhZGRyX3QJICAgICAgc3JjOworCWJkYWRkcl90CSAgICAgIGRzdDsKKwlj aGFyCQkgICAgICAqdXVpZDEyODsJICAgICAgICAvKiBVVUlEIDEyOCAqLworCWNoYXIJCSAgICAg ICphZGRyZXNzOwkgICAgICAgIC8qIFRUWSwgVW5peCBvciBUQ1Agc29ja2V0IG5hbWUgKi8KKwl1 bnNpZ25lZCBzaG9ydCBpbnQgICAgcG9ydDsgICAgICAgICAgICAgLyogVENQIHBvcnQgKi8KKwlw cm94eV90eXBlX3QJICAgICAgdHlwZTsJCS8qIFRUWSwgVW5peCBvciBUQ1Agc29ja2V0ICovCisJ c3RydWN0IHRlcm1pb3MgICAgICAgIHN5c190aTsJCS8qIERlZmF1bHQgVFRZIHNldHRpbmcgKi8K KwlzdHJ1Y3QgdGVybWlvcyAgICAgICAgcHJveHlfdGk7CSAgICAgICAgLyogUHJveHkgVFRZIHNl dHRpbmdzICovCisJdWludDhfdAkJICAgICAgY2hhbm5lbDsJICAgICAgICAvKiBSRkNPTU0gY2hh bm5lbCAqLworCXVpbnQzMl90CSAgICAgIHJlY29yZF9pZDsJLyogU2VydmljZSByZWNvcmQgaWQg Ki8KKwlndWludAkJICAgICAgbGlzdGVuX3dhdGNoOwkvKiBTZXJ2ZXIgbGlzdGVuIHdhdGNoICov CisJZ3VpbnQJCSAgICAgIHJmY29tbV93YXRjaDsJLyogUkZDT01NIHdhdGNoOiBSZW1vdGUgKi8K KwlndWludAkJICAgICAgbG9jYWxfd2F0Y2g7CS8qIExvY2FsIHdhdGNoOiBUVFkgb3IgVW5peCBz b2NrZXQgKi8KIH07CiAKIHN0YXRpYyBEQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlvbiA9IE5VTEw7 CkBAIC01ODYsNyArNTg4LDcgQEAgc3RhdGljIHZvaWQgcmVjb3JkX3JlcGx5KERCdXNQZW5kaW5n Q2FsbCAqY2FsbCwgdm9pZCAqZGF0YSkKIAkJZXJyID0gcmZjb21tX2Nvbm5lY3QocGMpOwogCQlp ZiAoZXJyIDwgMCkgewogCQkJZXJyb3IoIlJGQ09NTSBjb25uZWN0aW9uIGZhaWxlZCIpOwotCQkJ ZXJyb3JfY29ubmVjdGlvbl9hdHRlbXB0X2ZhaWxlZChwYy0+Y29ubiwgCisJCQllcnJvcl9jb25u ZWN0aW9uX2F0dGVtcHRfZmFpbGVkKHBjLT5jb25uLAogCQkJCQlwYy0+bXNnLCAtZXJyKTsKIAkJ CWdvdG8gZmFpbDsKIAkJfQpAQCAtNjU3LDcgKzY1OSw3IEBAIHN0YXRpYyB2b2lkIGhhbmRsZXNf cmVwbHkoREJ1c1BlbmRpbmdDYWxsICpjYWxsLCB2b2lkICpkYXRhKQogCQkvKiBGSVhNRSA6IGZv cndhcmQgZXJyb3IgYXMgaXMgKi8KIAkJaWYgKGRidXNfZXJyb3JfaGFzX25hbWUoJmRlcnIsCiAJ CQkJIm9yZy5ibHVlei5FcnJvci5Db25uZWN0aW9uQXR0ZW1wdEZhaWxlZCIpKQotCQkJZXJyb3Jf Y29ubmVjdGlvbl9hdHRlbXB0X2ZhaWxlZChwYy0+Y29ubiwgCisJCQllcnJvcl9jb25uZWN0aW9u X2F0dGVtcHRfZmFpbGVkKHBjLT5jb25uLAogCQkJCQlwYy0+bXNnLCBFSU8pOwogCQllbHNlCiAJ CQllcnJvcl9ub3Rfc3VwcG9ydGVkKHBjLT5jb25uLCBwYy0+bXNnKTsKQEAgLTY2Nyw3ICs2Njks NyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVzX3JlcGx5KERCdXNQZW5kaW5nQ2FsbCAqY2FsbCwgdm9p ZCAqZGF0YSkKIAkJZGJ1c19lcnJvcl9mcmVlKCZkZXJyKTsKIAkJZ290byBmYWlsOwogCX0KLQkK KwogCWlmICghZGJ1c19tZXNzYWdlX2dldF9hcmdzKHJlcGx5LCAmZGVyciwKIAkJCQlEQlVTX1RZ UEVfQVJSQVksIERCVVNfVFlQRV9VSU5UMzIsICZwaGFuZGxlLAogCQkJCSZsZW4sIERCVVNfVFlQ RV9JTlZBTElEKSkgewpAQCAtMTI4Nyw2ICsxMjg5LDQ5IEBAIHN0YXRpYyBpbmxpbmUgaW50IHVu aXhfc29ja2V0X2Nvbm5lY3QoY29uc3QgY2hhciAqYWRkcmVzcykKIAlyZXR1cm4gc2s7CiB9CiAK K3N0YXRpYyBpbnQgdGNwX3NvY2tldF9jb25uZWN0KGNvbnN0IGNoYXIgKmFkZHJlc3MpCit7CisJ c3RydWN0IHNvY2thZGRyX2luIGFkZHI7CisJaW50IGVyciwgc2s7CisJdW5zaWduZWQgc2hvcnQg aW50IHBvcnQ7CisKKwltZW1zZXQoJmFkZHIsIDAsIHNpemVvZihhZGRyKSk7CisKKwlpZiAoc3Ry bmNtcChhZGRyZXNzLCAibG9jYWxob3N0IiwgOSkgIT0gMCkgeworCQllcnJvcigiQWRkcmVzcyBz aG91bGQgaGF2ZSB0aGUgZm9ybSBsb2NhbGhvc3Q6J3BvcnQnLiIpOworCQlyZXR1cm4gLTE7CisJ fQorCisJcG9ydCA9IGF0b2koc3RyY2hyKGFkZHJlc3MsICc6JykgKyAxKTsKKwlpZiAocG9ydCA8 PSAwKSB7CisJCWVycm9yKCJJbnZhbGlkIHBvcnQgJyVkJy4iLCBwb3J0KTsKKwkJcmV0dXJuIC0x OworCX0KKworCWFkZHIuc2luX2ZhbWlseSA9IEFGX0lORVQ7CisJYWRkci5zaW5fYWRkci5zX2Fk ZHIgPSBpbmV0X2FkZHIoIjEyNy4wLjAuMSIpOworCWFkZHIuc2luX3BvcnQgPSBodG9ucyhwb3J0 KTsKKworCXNrID0gc29ja2V0KFBGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsKKwlpZiAoc2sgPCAw KSB7CisJCWVyciA9IGVycm5vOworCQllcnJvcigiVENQIHNvY2tldCglcykgY3JlYXRlIGZhaWxl ZCAlcyglZCkiLCBhZGRyZXNzLAorCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cmVycm9yKGVyciksIGVycik7CisJCXJldHVybiAtZXJyOworCX0KKworCWlmIChjb25uZWN0 KHNrLCAoc3RydWN0IHNvY2thZGRyICopICZhZGRyLCBzaXplb2YoYWRkcikpIDwgMCkgeworCQll cnIgPSBlcnJubzsKKwkJZXJyb3IoIlRDUCBzb2NrZXQoJXMpIGNvbm5lY3QgZmFpbGVkOiAlcygl ZCkiLAorCQkJCWFkZHJlc3MsIHN0cmVycm9yKGVyciksIGVycik7CisJCWNsb3NlKHNrKTsKKwkJ ZXJybm8gPSBlcnI7CisJCXJldHVybiAtZXJyOworCX0KKworCXJldHVybiBzazsKK30KKwogc3Rh dGljIGlubGluZSBpbnQgdHR5X29wZW4oY29uc3QgY2hhciAqdHR5LCBzdHJ1Y3QgdGVybWlvcyAq dGkpCiB7CiAJaW50IGVyciwgc2s7CkBAIC0xMzM3LDEwICsxMzgyLDE5IEBAIHN0YXRpYyBnYm9v bGVhbiBjb25uZWN0X2V2ZW50KEdJT0NoYW5uZWwgKmNoYW4sCiAKIAliYWNweSgmcHJ4LT5kc3Qs ICZyYWRkci5yY19iZGFkZHIpOwogCi0JaWYgKHByeC0+dHlwZSA9PSBVTklYX1NPQ0tFVF9QUk9Y WSkKKwlzd2l0Y2ggKHByeC0+dHlwZSkgeworCWNhc2UgVU5JWF9TT0NLRVRfUFJPWFk6CiAJCWxz ayA9IHVuaXhfc29ja2V0X2Nvbm5lY3QocHJ4LT5hZGRyZXNzKTsKLQllbHNlCisJCWJyZWFrOwor CWNhc2UgVFRZX1BST1hZOgogCQlsc2sgPSB0dHlfb3BlbihwcngtPmFkZHJlc3MsICZwcngtPnBy b3h5X3RpKTsKKwkJYnJlYWs7CisJY2FzZSBUQ1BfU09DS0VUX1BST1hZOgorCQlsc2sgPSB0Y3Bf c29ja2V0X2Nvbm5lY3QocHJ4LT5hZGRyZXNzKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJbHNr ID0gLTE7CisJfQogCiAJaWYgKGxzayA8IDApIHsKIAkJY2xvc2UocnNrKTsKQEAgLTE3NTMsNiAr MTgwNywyNSBAQCBzdGF0aWMgaW50IHByb3h5X3NvY2tldF9yZWdpc3RlcihiZGFkZHJfdCAqc3Jj LCBjb25zdCBjaGFyICp1dWlkMTI4LAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbnQgcHJv eHlfdGNwX3JlZ2lzdGVyKGJkYWRkcl90ICpzcmMsIGNvbnN0IGNoYXIgKnV1aWQxMjgsCisJCWNv bnN0IGNoYXIgKmFkZHJlc3MsIGNoYXIgKm91dHBhdGgsIHNpemVfdCBzaXplKQoreworCXN0cnVj dCBwcm94eSAqcHJ4OworCWludCByZXQ7CisKKwlwcnggPSBnX25ldzAoc3RydWN0IHByb3h5LCAx KTsKKwlwcngtPmFkZHJlc3MgPSBnX3N0cmR1cChhZGRyZXNzKTsKKwlwcngtPnV1aWQxMjggPSBn X3N0cmR1cCh1dWlkMTI4KTsKKwlwcngtPnR5cGUgPSBUQ1BfU09DS0VUX1BST1hZOworCWJhY3B5 KCZwcngtPnNyYywgc3JjKTsKKworCXJldCA9IHJlZ2lzdGVyX3Byb3h5X29iamVjdChwcngsIG91 dHBhdGgsIHNpemUpOworCWlmIChyZXQgPCAwKQorCQlwcm94eV9mcmVlKHByeCk7CisKKwlyZXR1 cm4gcmV0OworfQorCiBzdGF0aWMgcHJveHlfdHlwZV90IGFkZHIydHlwZShjb25zdCBjaGFyICph ZGRyZXNzKQogewogCXN0cnVjdCBzdGF0IHN0OwpAQCAtMTc2MywxMCArMTgzNiwxNCBAQCBzdGF0 aWMgcHJveHlfdHlwZV90IGFkZHIydHlwZShjb25zdCBjaGFyICphZGRyZXNzKQogCQkgKiBpdCBy ZWZlcnMgdG8gYWJzdHJhY3QgbmFtZXNwYWNlLiAneDAwJyB3aWxsIGJlIHVzZWQKIAkJICogdG8g cmVwcmVzZW50IHRoZSBudWxsIGJ5dGUuCiAJCSAqLworCQlpZiAoc3RybmNtcCgibG9jYWxob3N0 OiIsIGFkZHJlc3MsIDEwKSA9PSAwKQorCQkJcmV0dXJuIFRDUF9TT0NLRVRfUFJPWFk7CisKIAkJ aWYgKHN0cm5jbXAoIngwMCIsIGFkZHJlc3MsIDMpICE9IDApCiAJCQlyZXR1cm4gVU5LTk9XTl9Q Uk9YWV9UWVBFOwogCQllbHNlCiAJCQlyZXR1cm4gVU5JWF9TT0NLRVRfUFJPWFk7CisKIAl9IGVs c2UgewogCQkvKiBGaWxlc3lzdGVtOiBjaGFyIGRldmljZSBvciB1bml4IHNvY2tldCAqLwogCQlp ZiAoU19JU0NIUihzdC5zdF9tb2RlKSAmJiBzdHJuY21wKCIvZGV2LyIsIGFkZHJlc3MsIDQpID09 IDApCkBAIC0xODMzLDEyICsxOTEwLDIyIEBAIHN0YXRpYyBEQnVzSGFuZGxlclJlc3VsdCBjcmVh dGVfcHJveHkoREJ1c0Nvbm5lY3Rpb24gKmNvbm4sCiAJaWYgKCFyZXBseSkKIAkJcmV0dXJuIERC VVNfSEFORExFUl9SRVNVTFRfTkVFRF9NRU1PUlk7CiAKLQlpZiAodHlwZSAhPSBUVFlfUFJPWFkp CisJc3dpdGNoICh0eXBlKSB7CisJY2FzZSBVTklYX1NPQ0tFVF9QUk9YWToKIAkJcmV0ID0gcHJv eHlfc29ja2V0X3JlZ2lzdGVyKCZzcmMsIHV1aWQxMjgsCi0JCQkJYWRkcmVzcywgcGF0aCwgc2l6 ZW9mKHBhdGgpKTsKLQllbHNlCisJCQkJCSAgICBhZGRyZXNzLCBwYXRoLCBzaXplb2YocGF0aCkp OworCQlicmVhazsKKwljYXNlIFRUWV9QUk9YWToKIAkJcmV0ID0gcHJveHlfdHR5X3JlZ2lzdGVy KCZzcmMsIHV1aWQxMjgsCiAJCQkJYWRkcmVzcywgTlVMTCwgcGF0aCwgc2l6ZW9mKHBhdGgpKTsK KwkJYnJlYWs7CisJY2FzZSBUQ1BfU09DS0VUX1BST1hZOgorCQlyZXQgPSBwcm94eV90Y3BfcmVn aXN0ZXIoJnNyYywgdXVpZDEyOCwgYWRkcmVzcywKKwkJCQkJICBwYXRoLCBzaXplb2YocGF0aCkp OworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXQgPSAtMTsKKwl9CiAKIAlpZiAocmV0IDwgMCkg ewogCQlkYnVzX21lc3NhZ2VfdW5yZWYocmVwbHkpOwpAQCAtMjA2NSw3ICsyMTUyLDcgQEAgc3Rh dGljIERCdXNIYW5kbGVyUmVzdWx0IGNhbmNlbF9jb25uZWN0X3NlcnZpY2UoREJ1c0Nvbm5lY3Rp b24gKmNvbm4sCiAKIAlwZW5kaW5nID0gZmluZF9wZW5kaW5nX2Nvbm5lY3RfYnlfcGF0dGVybihi ZGEsIHBhdHRlcm4pOwogCWlmICghcGVuZGluZykKLQkJcmV0dXJuIGVycm9yX2RvZXNfbm90X2V4 aXN0KGNvbm4sIG1zZywgCisJCXJldHVybiBlcnJvcl9kb2VzX25vdF9leGlzdChjb25uLCBtc2cs CiAJCQkJIk5vIHN1Y2ggY29ubmVjdGlvbiByZXF1ZXN0Iik7CiAKIAlyZXBseSA9IGRidXNfbWVz c2FnZV9uZXdfbWV0aG9kX3JldHVybihtc2cpOwpAQCAtMjA4Nyw3ICsyMTc0LDcgQEAgc3RhdGlj IHZvaWQgcHJveHlfcGF0aF9mcmVlKGdwb2ludGVyIGRhdGEsIGdwb2ludGVyIHVkYXRhKQogCWlm IChkYnVzX2Nvbm5lY3Rpb25fZ2V0X29iamVjdF91c2VyX2RhdGEoY29ubiwKIAkJCQlwYXRoLCAo dm9pZCAqKSAmcHJ4KSAmJiBwcngpIHsKIAkJc3RydWN0IHRlcm1pb3MgKnRpOwotCQkKKwogCQl0 aSA9IChwcngtPnR5cGUgPT0gVFRZX1BST1hZID8gJnByeC0+cHJveHlfdGkgOiBOVUxMKTsKIAkJ cHJveHlfc3RvcmUoJnByeC0+c3JjLCBwcngtPnV1aWQxMjgsIHByeC0+YWRkcmVzcywgTlVMTCwK IAkJCQlwcngtPmNoYW5uZWwsIDAsIHRpKTsKQEAgLTIyNDQsNiArMjMzMSw5IEBAIHN0YXRpYyB2 b2lkIHBhcnNlX3Byb3h5KGNoYXIgKmtleSwgY2hhciAqdmFsdWUsIHZvaWQgKmRhdGEpCiAJY2Fz ZSBVTklYX1NPQ0tFVF9QUk9YWToKIAkJcHJveHlfc29ja2V0X3JlZ2lzdGVyKCZzcmMsIHV1aWQx MjgsIGtleSwgTlVMTCwgMCk7CiAJCWJyZWFrOworCWNhc2UgVENQX1NPQ0tFVF9QUk9YWToKKwkJ cHJveHlfdGNwX3JlZ2lzdGVyKCZzcmMsIHV1aWQxMjgsIGtleSwgTlVMTCwgMCk7CisJCWJyZWFr OwogCWRlZmF1bHQ6CiAJCXJldHVybjsKIAl9Cg== ------=_Part_10117_13027151.1197558099911 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------- SF.Net email is sponsored by: Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace ------=_Part_10117_13027151.1197558099911 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Bluez-devel mailing list Bluez-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bluez-devel ------=_Part_10117_13027151.1197558099911--