Date: Tue, 13 May 2008 09:48:06 -0700 From: "Maksim Yevmenkin" <maksim.yevmenkin@gmail.com> To: "Helge Oldach" <freebsd-bluetooth@oldach.net> Cc: freebsd-bluetooth@freebsd.org, rizzo@iet.unipi.it Subject: Re: any reason to require -t dev in rfcomm_sppd -S ? Message-ID: <bb4a86c70805130948x54fa4ea8tbc170196ff4eeaec@mail.gmail.com> In-Reply-To: <200805131552.m4DFqQOW031043@sep.oldach.net> References: <bb4a86c70804211151l76230f1ek32a9c51b644a983e@mail.gmail.com> <200805131552.m4DFqQOW031043@sep.oldach.net>
next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_8614_29769232.1210697286687 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline On Tue, May 13, 2008 at 8:52 AM, Helge Oldach <freebsd-bluetooth@oldach.net> wrote: > Maksim Yevmenkin wrote on Mon, 21 Apr 2008 20:51:55 +0200 (CEST): >> On Thu, Apr 17, 2008 at 11:06 AM, Luigi Rizzo <rizzo@iet.unipi.it> wrote: >> > >> > On Thu, Apr 17, 2008 at 10:39:16AM -0700, Maksim Yevmenkin wrote: >> > > On Thu, Apr 17, 2008 at 4:56 AM, Luigi Rizzo <rizzo@iet.unipi.it> wrote: >> > > > hi, is there any compelling reason to require >> > > > the '-t device' option in rfcomm_sppd when used in server mode ? >> > > >> > > technically, no. just need to be careful who is going to setup tty >> > > properly, for example make it 'raw' as rfcomm_sppd(1) does with pty. >> > > rfcomm_sppd(1) already can be used inside ppp(8), i.e. one can do >> > > something like >> > > >> > > set device '!/usr/bin/rfcomm_sppd -a mobile -c sp' >> > > >> > > in /etc/ppp.conf and it will work just fine. rfcomm_sppd(1) does not >> > > do anything to tty when running using stdin/stdout in client mode. the >> > > assumption here is that whatever calls rfcomm_sppd(1) will setup >> > > tty/fd properly. >> > > >> > > > I tried to disable the one-line that checks it in the code, and >> > > > things seem to work - and this makes the program very convenient >> > > > to use in a pipeline, e.g. to receive data from a remote bluetooth >> > > > device. >> > > >> > > right. can you please provide usage example? i certainly would not >> > > object to making the change you are requesting. >> > >> > sure - i need to listen to a portable ElectroCardioGram (ECG) device >> > which talks to the external world through bluetooth. The device >> > must have some kind of modem inside - its console port says it is >> > issuing commands such as >> > >> > AT+ZV SPPConnect XXX >> > ... >> > >> > where XXX is the (manually configured) address of the bluetooth >> > dongle on the PC. On the FreeBSD side, running >> > "rfcom_sppd -a YYY" (without the -S option, YYY is the ECG address) >> > sometimes connects, but most of the times doesnt. >> > >> > With a patched rfcomm_sppp i can just do >> > >> > rfcomm_sppd -S -a YYY | my_data_logger >> > >> > rather than having to manually select an available tty/pty pair >> > >> > Don't know how many devices behave in this way, but a >> > search for "AT+ZV SPPConnect" gives several matches with >> > documentation for embedded hardware. >> >> ok, please try the attached patch and see if it works for you. i >> basically removed the check for tty name in server mode, bind to >> "wildcard" channel instead of generating one based on pid (if channel >> was not specified) and fixed a possible problem with service >> registration in server mode (i.e. always register serial port >> service). > > Your patch applies cleanly, but I just get > > # rfcomm_sppd -S > rfcomm_sppd: Could not get socket name > # > > It seems that getsockbyname fails. What is the reason for that anyway? > > BTW, Luigi's pipe application is interesting, but what about true > two-way communcation? For instance, I would like to have something like > > # rfcomm_sppd -S -c sp -a myPalm -x "coldsync -t serial -s -md" > > ...meaning: Upon receipt of a SP connection request from myPalm we would > fork coldsync to synchronize the Palm (just like USB or serial sync, but > now bluetooth). > > This could even go into /etc/ttys, forking a fresh rfcomm_sppd after the > request terminates. > > I'm currently doing this in two separate steps, first starting > rfcomm_sppd with some arbitrary pty, then coldsync talking to that pty. > So yes, this definitely works. well, there is a problem with my previous patch. please try the attached updated patch. thanks, max ------=_Part_8614_29769232.1210697286687 Content-Type: text/plain; name=rfcomm_sppd.patch.txt Content-Transfer-Encoding: base64 X-Attachment-Id: f_fg6pw4500 Content-Disposition: attachment; filename=rfcomm_sppd.patch.txt SW5kZXg6IHJmY29tbV9zcHBkLjEKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3Vzci9sb2NhbC9jdnMv dXNyLmJpbi9ibHVldG9vdGgvcmZjb21tX3NwcGQvcmZjb21tX3NwcGQuMSx2CnJldHJpZXZpbmcg cmV2aXNpb24gMS4xMApkaWZmIC11IC1yMS4xMCByZmNvbW1fc3BwZC4xCi0tLSByZmNvbW1fc3Bw ZC4xCTIxIEFwciAyMDA4IDE4OjEzOjIzIC0wMDAwCTEuMTAKKysrIHJmY29tbV9zcHBkLjEJMjEg QXByIDIwMDggMTg6Mzc6MDkgLTAwMDAKQEAgLTI1LDcgKzI1LDcgQEAKIC5cIiAkSWQ6IHJmY29t bV9zcHBkLjEsdiAxLjEwIDIwMDgvMDQvMjEgMTg6MTM6MjMgbWF4IEV4cCAkCiAuXCIgJEZyZWVC U0Q6IHNyYy91c3IuYmluL2JsdWV0b290aC9yZmNvbW1fc3BwZC9yZmNvbW1fc3BwZC4xLHYgMS4x MCAyMDA3LzAxLzI1IDIwOjU0OjU5IGVtYXggRXhwICQKIC5cIgotLkRkIEphbnVhcnkgMjQsIDIw MDcKKy5EZCBBcHJpbCAyMSwgMjAwOAogLkR0IFJGQ09NTV9TUFBEIDEKIC5PcwogLlNoIE5BTUUK QEAgLTY5LDE0ICs2OSwxNSBAQAogdmlhIHRoZQogLlhyIHNkcGQgOAogZGFlbW9uLgotVGhlCitJ ZgogLkZsIHQKLW9wdGlvbiBtdXN0IGJlIHNwZWNpZmllZDsKK29wdGlvbnMgd2FzIHNwZWNpZmll ZCwKIHRoZSBzZXJ2ZXIgc2lkZSBvZiB0aGUgdmlydHVhbCBzZXJpYWwgcG9ydCBpcyBhdHRhY2hl ZCB0byB0aGUgcHNldWRvLXRlcm1pbmFsCiAuQXIgdHR5IC4KK090aGVyd2lzZSB0aGUgdmlydHVh bCBzZXJpYWwgcG9ydCBpcyBhdHRhY2hlZCB0byB0aGUgc3RkaW4vc3Rkb3V0LgogLk5tCiBzaG91 bGQgYmUgcnVuIGFzIHJvb3QgaW4gb3JkZXIgdG8gY29tbXVuaWNhdGUgd2l0aAotLlhyIHNkcCA4 CisuWHIgc2RwZCA4CiBpbiB0aGlzIGNhc2UuCiAuUHAKIFRoZQpAQCAtMTEzLDEyICsxMTQsMTgg QEAKIERldGFjaCBmcm9tIHRoZSBjb250cm9sbGluZyB0ZXJtaW5hbCwgaS5lLiwgcnVuIGluIGJh Y2tncm91bmQuCiAuSXQgRmwgYyBBciBjaGFubmVsCiBJbiBib3RoIGNsaWVudCBhbmQgc2VydmVy IG1vZGUsCi10aGlzIHJlcXVpcmVkIG9wdGlvbiBzcGVjaWZpZXMgdGhlIFJGQ09NTSBjaGFubmVs IHRvIGNvbm5lY3QgdG8gb3IgbGlzdGVuIG9uLgordGhpcyBvcHRpb24gc3BlY2lmaWVzIHRoZSBS RkNPTU0gY2hhbm5lbCB0byBjb25uZWN0IHRvIG9yIGxpc3RlbiBvbi4KIEluIHNlcnZlciBtb2Rl LAogdGhlIGNoYW5uZWwgc2hvdWxkIGJlIGEgbnVtYmVyIGJldHdlZW4gMSBhbmQgMzAuCiBJZiBu b3Qgc3BlY2lmaWVkLAogLk5tCi13aWxsIHRyeSB0byBhbGxvY2F0ZSBSRkNPTU0gY2hhbm5lbCBu dW1iZXIgYmFzZWQgb24gcHJvY2VzcyBJRC4KK3dpbGwgdHJ5IHRvIGJpbmQgdG8KKy5EcSB3aWxk Y2FyZAorUkZDT01NIGNoYW5uZWwgbnVtYmVyLgorVGhlIGFjdHVhbCBSRkNPTU0gY2hhbm5lbCB3 aWxsIGJlIG9idGFpbmVkIHZpYQorLlhyIGdldHNvY2tuYW1lIDIKK2NhbGwgYW5kIHdpbGwgYmUg dXNlZCB0byByZWdpc3RlciBTZXJpYWwgUG9ydCBzZXJ2aWNlIHdpdGgKKy5YciBzZHBkIDggLgog SW4gY2xpZW50IG1vZGUsCiB0aGUgY2hhbm5lbCBjb3VsZCBlaXRoZXIgYmUgYSBudW1iZXIgYmV0 d2VlbiAxIGFuZCAzMCBvciBhIHNlcnZpY2UgbmFtZS4KIFN1cHBvcnRlZCBzZXJ2aWNlIG5hbWVz IGFyZToKQEAgLTE0NCw4ICsxNTEsNiBAQAogSWYgbm90IHNldCBzdGRpbi9zdGRvdXQgd2lsbCBi ZSB1c2VkLgogVGhpcyBvcHRpb24gaXMgcmVxdWlyZWQgaWYKIC5GbCBiCi1vcgotLkZsIFMKIG9w dGlvbiB3YXMgc3BlY2lmaWVkLgogLkVsCiAuU2ggRklMRVMKSW5kZXg6IHJmY29tbV9zcHBkLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpSQ1MgZmlsZTogL3Vzci9sb2NhbC9jdnMvdXNyLmJpbi9ibHVldG9vdGgvcmZj b21tX3NwcGQvcmZjb21tX3NwcGQuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMQpkaWZmIC11 IC1yMS4xMSByZmNvbW1fc3BwZC5jCi0tLSByZmNvbW1fc3BwZC5jCTIxIEFwciAyMDA4IDE4OjEz OjIzIC0wMDAwCTEuMTEKKysrIHJmY29tbV9zcHBkLmMJMTMgTWF5IDIwMDggMTY6NDQ6MjQgLTAw MDAKQEAgLTEsNiArMSw4IEBACiAvKgogICogcmZjb21tX3NwcGQuYwotICoKKyAqLworCisvKi0K ICAqIENvcHlyaWdodCAoYykgMjAwMyBNYWtzaW0gWWV2bWVua2luIDxtX2V2bWVua2luQHlhaG9v LmNvbT4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMTcyLDcgKzE3NCw3IEBACiAK IAkvKiBPcGVuIFRUWXMgKi8KIAlpZiAodHR5ID09IE5VTEwpIHsKLQkJaWYgKGJhY2tncm91bmQg fHwgZG9zZXJ2ZXIpCisJCWlmIChiYWNrZ3JvdW5kKQogCQkJdXNhZ2UoKTsKIAogCQlhbWFzdGVy ID0gU1RESU5fRklMRU5POwpAQCAtMTg5LDQzICsxOTEsNDYgQEAKIAlpZiAoZG9zZXJ2ZXIpIHsK IAkJc3RydWN0IHNvY2thZGRyX3JmY29tbQkgbWE7CiAJCWJkYWRkcl90CQkgYnRfYWRkcl9hbnk7 Ci0JCXNkcF9sYW5fcHJvZmlsZV90CSBsYW47CisJCXNkcF9zcF9wcm9maWxlX3QJIHNwOwogCQl2 b2lkCQkJKnNzOwogCQl1aW50MzJfdAkJIHNkcF9oYW5kbGU7CiAJCWludAkJCSBhY2NlcHRzb2Nr LCBhYWRkcmxlbjsKIAotCQlpZiAoY2hhbm5lbCA9PSAwKSB7Ci0JCQkvKiBYWFg6IHNob3VsZCBj aGVjayBpZiBzZWxlY3RlZCBjaGFubmVsIGlzIHVudXNlZCAqLwotCQkJY2hhbm5lbCA9IChnZXRw aWQoKSAlIDMwKSArIDE7Ci0JCX0KIAkJYWNjZXB0c29jayA9IHNvY2tldChQRl9CTFVFVE9PVEgs IFNPQ0tfU1RSRUFNLAotCQkgICAgQkxVRVRPT1RIX1BST1RPX1JGQ09NTSk7CisJCQkJCUJMVUVU T09USF9QUk9UT19SRkNPTU0pOwogCQlpZiAoYWNjZXB0c29jayA8IDApCiAJCQllcnIoMSwgIkNv dWxkIG5vdCBjcmVhdGUgc29ja2V0Iik7CiAKKwkJbWVtY3B5KCZidF9hZGRyX2FueSwgTkdfSENJ X0JEQUREUl9BTlksIHNpemVvZihidF9hZGRyX2FueSkpOworCiAJCW1lbXNldCgmbWEsIDAsIHNp emVvZihtYSkpOwogCQltYS5yZmNvbW1fbGVuID0gc2l6ZW9mKG1hKTsKIAkJbWEucmZjb21tX2Zh bWlseSA9IEFGX0JMVUVUT09USDsKKwkJbWVtY3B5KCZtYS5yZmNvbW1fYmRhZGRyLCAmYnRfYWRk cl9hbnksIHNpemVvZihidF9hZGRyX2FueSkpOwogCQltYS5yZmNvbW1fY2hhbm5lbCA9IGNoYW5u ZWw7CiAKIAkJaWYgKGJpbmQoYWNjZXB0c29jaywgKHN0cnVjdCBzb2NrYWRkciAqKSZtYSwgc2l6 ZW9mKG1hKSkgPCAwKQotCQkJZXJyKDEsICJDb3VsZCBub3QgYmluZCBzb2NrZXQgLS0gY2hhbm5l bCAlZCBpbiB1c2U/IiwKLQkJCSAgICBjaGFubmVsKTsKKwkJCWVycigxLCAiQ291bGQgbm90IGJp bmQgc29ja2V0IG9uIGNoYW5uZWwgJWQiLCBjaGFubmVsKTsKIAkJaWYgKGxpc3RlbihhY2NlcHRz b2NrLCAxMCkgIT0gMCkKIAkJCWVycigxLCAiQ291bGQgbm90IGxpc3RlbiBvbiBzb2NrZXQiKTsK IAorCQlhYWRkcmxlbiA9IHNpemVvZihtYSk7CisJCWlmIChnZXRzb2NrbmFtZShhY2NlcHRzb2Nr LCAoc3RydWN0IHNvY2thZGRyICopJm1hLCAmYWFkZHJsZW4pIDwgMCkKKwkJCWVycigxLCAiQ291 bGQgbm90IGdldCBzb2NrZXQgbmFtZSIpOworCQljaGFubmVsID0gbWEucmZjb21tX2NoYW5uZWw7 CisKIAkJc3MgPSBzZHBfb3Blbl9sb2NhbChOVUxMKTsKIAkJaWYgKHNzID09IE5VTEwpCiAJCQll cnJ4KDEsICJVbmFibGUgdG8gY3JlYXRlIGxvY2FsIFNEUCBzZXNzaW9uIik7CiAJCWlmIChzZHBf ZXJyb3Ioc3MpICE9IDApCiAJCQllcnJ4KDEsICJVbmFibGUgdG8gb3BlbiBsb2NhbCBTRFAgc2Vz c2lvbi4gJXMgKCVkKSIsCiAJCQkgICAgc3RyZXJyb3Ioc2RwX2Vycm9yKHNzKSksIHNkcF9lcnJv cihzcykpOwotCQltZW1zZXQoJmxhbiwgMCwgc2l6ZW9mKGxhbikpOwotCQlsYW4uc2VydmVyX2No YW5uZWwgPSBjaGFubmVsOworCQltZW1zZXQoJnNwLCAwLCBzaXplb2Yoc3ApKTsKKwkJc3Auc2Vy dmVyX2NoYW5uZWwgPSBjaGFubmVsOwogCi0JCW1lbWNweSgmYnRfYWRkcl9hbnksIE5HX0hDSV9C REFERFJfQU5ZLCBzaXplb2YoYnRfYWRkcl9hbnkpKTsKLQkJaWYgKHNkcF9yZWdpc3Rlcl9zZXJ2 aWNlKHNzLCBzZXJ2aWNlLCAmYnRfYWRkcl9hbnksCi0JCSAgICAodm9pZCAqKSZsYW4sIHNpemVv ZihsYW4pLCAmc2RwX2hhbmRsZSkgIT0gMCkgeworCQlpZiAoc2RwX3JlZ2lzdGVyX3NlcnZpY2Uo c3MsIFNEUF9TRVJWSUNFX0NMQVNTX1NFUklBTF9QT1JULAorCQkJCSZidF9hZGRyX2FueSwgKHZv aWQgKikmc3AsIHNpemVvZihzcCksCisJCQkJJnNkcF9oYW5kbGUpICE9IDApIHsKIAkJCWVycngo MSwgIlVuYWJsZSB0byByZWdpc3RlciBMQU4gc2VydmljZSB3aXRoICIKIAkJCSAgICAibG9jYWwg U0RQIGRhZW1vbi4gJXMgKCVkKSIsCiAJCQkgICAgc3RyZXJyb3Ioc2RwX2Vycm9yKHNzKSksIHNk cF9lcnJvcihzcykpOwo= ------=_Part_8614_29769232.1210697286687--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bb4a86c70805130948x54fa4ea8tbc170196ff4eeaec>