2007-04-04 07:30:32

by Meenakshi Seeballack

[permalink] [raw]
Subject: Re: [Bluez-devel] L2CAP sockets, SDP

hello, I did not think I needed to use D-Bus with SDP and L2CAP.
Would someone please provide me more information on how the SDP sends data
with L2CAP as the transport layer?
Or point me to a direction where I can find the information?
Thanks in advance
Meena
---------------------------------------------

On 03/04/07, [email protected] <
[email protected]> wrote:
>
> Send Bluez-devel mailing list submissions to
> [email protected]
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://lists.sourceforge.net/lists/listinfo/bluez-devel
> or, via email, send a message with subject or body 'help' to
> [email protected]
>
> You can reach the person managing the list at
> [email protected]
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Bluez-devel digest..."
>
>
> Today's Topics:
>
> 1. Re: L2CAP sockets, SDP (Claudio Takahasi)
> 2. Re: problems with getting Plan tronics M1000 to pair on
> Ubuntu system (Brad Midgley)
> 3. Re: RemoteNameRequested signal during discovery patch
> (Marcel Holtmann)
> 4. used (chips)
> 5. Re: new sco flowcontrol patch (Brad Midgley)
> 6. Re: new sco flowcontrol patch (Marcel Holtmann)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 3 Apr 2007 09:10:44 -0300
> From: "Claudio Takahasi" <[email protected]>
> Subject: Re: [Bluez-devel] L2CAP sockets, SDP
> To: "BlueZ development" <[email protected]>
> Message-ID:
> <[email protected]>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> On 4/3/07, Meenakshi Seeballack <[email protected]> wrote:
> > Hello,
> > I have tried to understand how to open an L2CAP socket, and have used
> the
> > BlueZ API. This is what I have got so far:
> > /*
> > * l2cap_listen(l2cap_channel)
> > * Use this channel as a listening post
> > */
> > static int l2cap_listen(const bdaddr_t *bdaddr, unsigned short psm, int
> lm,
> > int backlog)
> > {
> > struct sockaddr_l2 addr;
> > struct l2cap_options opts;
> > int sk;
> >
> > /* allocate a free socket */
> > if ((sk = socket(PF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP)) < 0)
> > return -1;
> >
> > /* open connection to remote device */
> > memset(&addr, 0, sizeof(addr));
> > addr.l2_family = AF_BLUETOOTH;
> > bacpy(&addr.l2_bdaddr, bdaddr); /* update source address of socket
> */
> > addr.l2_psm = htobs(psm);
> >
> > /* bind socket to newly formed socket */
> > if (bind(sk, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
> > perror("ERROR: Could not bind socket");
> > close(sk);
> > return -1;
> > }
> >
> > setsockopt(sk, SOL_L2CAP, L2CAP_LM, &lm, sizeof(lm));
> >
> > memset(&opts, 0, sizeof(opts));
> > opts.imtu = HIDP_DEFAULT_MTU;
> > opts.omtu = HIDP_DEFAULT_MTU;
> > opts.flush_to = 0xffff;
> >
> > setsockopt(sk, SOL_L2CAP, L2CAP_OPTIONS, &opts, sizeof(opts));
> >
> > /* backlog: specifies the number of unaccepted connection
> > * that the system will allow before refusing new connections
> > */
> > if (listen(sk, backlog) < 0) {
> > close(sk);
> > return -1;
> > }
> >
> > return sk;
> > }
> >
> > /*
> > * l2cap_connect_req()
> > * Establishes connection with specific socket
> > * Request to establish connection from remote
> > * communication partner.
> > * Such a socket has to have been previously created
> > * by an application with the command listen.
> > */
> > static int l2cap_connect(bdaddr_t *src, bdaddr_t *dst, unsigned short
> psm)
> > {
> > struct sockaddr_l2 addr;
> > struct l2cap_options opts;
> > int sk;
> >
> > /* socket allocation */
> > if ((sk = socket(PF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP)) < 0)
> > perror("ERROR: Could not create socket");
> > return -1;
> >
> > memset(&addr, 0, sizeof(addr));
> > addr.l2_family = AF_BLUETOOTH;
> > bacpy(&addr.l2_bdaddr, src); /*update source address of socket */
> >
> > /* binds socket to psm */
> > if (bind(sk, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
> > close(sk);
> > return -1;
> > }
> >
> > memset(&opts, 0, sizeof(opts));
> > opts.imtu = HIDP_DEFAULT_MTU;
> > opts.omtu = HIDP_DEFAULT_MTU;
> > opts.flush_to = 0xffff;
> >
> > setsockopt(sk, SOL_L2CAP, L2CAP_OPTIONS, &opts, sizeof(opts));
> >
> > memset(&addr, 0, sizeof(addr));
> > addr.l2_family = AF_BLUETOOTH;
> > bacpy(&addr.l2_bdaddr, dst);
> > addr.l2_psm = htobs(psm);
> >
> > if (connect(sk, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
> > close(sk);
> > return -1;
> > }
> >
> > return sk;
> > }
> >
> > /*
> > * l2cap_accept()
> > * (Permits incoming connection)
> > * Blocks and accepts incoming connection
> > * Function switches from BT_LISTEN to BT_CONNECTED
> > */
> > static int l2cap_accept(int sk, bdaddr_t *bdaddr)
> > {
> > struct sockaddr_l2 addr;
> > socklen_t addrlen;
> > int nsk;
> >
> > memset(&addr, 0, sizeof(addr));
> > addrlen = sizeof(addr);
> >
> > // accept one connection
> > if ((nsk = accept(sk, (struct sockaddr *) &addr, &addrlen)) < 0)
> > return -1;
> >
> > if (bdaddr)
> > bacpy(bdaddr, &addr.l2_bdaddr);
> >
> > return nsk;
> > }
> > --------------------
> > I am eventually aiming to register the mouse HID events, and send it via
> the
> > L2CAP socket to "control" another bluetooth-enabled PC.
> > How do I use an SDP service in conjunction with the existing L2CAP code?
> How
> > do I use the control channel (L2CAP_PSM_HIDP_CTRL 0x11) and the
> interrupt
> > channel (L2CAP_PSM_HIDP_INTR 0x13)
> > I think the control channel is used by SDP for signalling, (device
> > discovery); the interrupt channel is used for data transfer (service
> > discovery)
> > Thanks in advance for any help!
> >
> >
> >
> -------------------------------------------------------------------------
> > Take Surveys. Earn Cash. Influence the Future of IT
> > Join SourceForge.net's Techsay panel and you'll get the chance to share
> your
> > opinions on IT & business topics through brief surveys-and earn cash
> >
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> > _______________________________________________
> > Bluez-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/bluez-devel
> >
> >
>
> Hi Meenakshi,
>
> Check the D-Bus Input service implementation: utils/input
> It contains the code that you want.
>
> BR,
> Claudio.
> --
> ---------------------------------------------------------
> Claudio Takahasi
> Instituto Nokia de Tecnologia - INdT
>
>
>
> ------------------------------
>
> Message: 2
> Date: Tue, 03 Apr 2007 11:21:34 -0600
> From: Brad Midgley <[email protected]>
> Subject: Re: [Bluez-devel] problems with getting Plan tronics M1000 to
> pair on Ubuntu system
> To: BlueZ development <[email protected]>
> Message-ID: <[email protected]>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> Brett
>
> > I tried pairing and then tried a connect - do I have a PIN issue?
>
> i got something similar when bluez-passkey-gnome needed to be installed
>
> brad
>
>
>
>
> ------------------------------
>
> Message: 3
> Date: Tue, 03 Apr 2007 21:05:56 +0200
> From: Marcel Holtmann <[email protected]>
> Subject: Re: [Bluez-devel] RemoteNameRequested signal during discovery
> patch
> To: BlueZ development <[email protected]>
> Message-ID: <1175627156.5815.402.camel@violet>
> Content-Type: text/plain
>
> Hi Johan,
>
> > > > A new version of the patch.
> > > > Are you okay with it ?
> > >
> > > the patch looks okay to me. However I prefer if Claudio or Johan can
> > > have an additional look.
> >
> > Looks good to me.
>
> feel free to commit it to the CVS then.
>
> Regards
>
> Marcel
>
>
>
>
>
> ------------------------------
>
> Message: 4
> Date: Tue, 3 Apr 2007 21:16:43 -0000
> From: "chips" <[email protected]>
> Subject: [Bluez-devel] used
> To: [email protected]
> Message-ID: <001201c77635$61395500$86572f97@davide10>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Choices multiple, mak management service kms activates. Conflict vistaiam
> school students.
> Comments seis office, you need read.
> Help, links by xpearlier, for pcsshared computer. Megatest fastest, modems
> revealed gps navigation, get from no.
> Word priced hungery crap, anonymous sucksdidnt say blue.
> Connecting computers going online. Thread subject author algo, de,
> slackware hay una que. Someone bringing their home, installing leaving
> again.
> Re newest greg mar kentucky sorta looked.
> Officially than, chips awful stick check. Certainly looks, set put.
> Students finally gone mad beyond bull shit apart high?
> Hunter blogs linux amp, open source news! Able as welland pieces? Tito,
> sites sport finance music.
> Wed, feb previous, message, messages.
> Groups direct phone, connection.
> Vbulletin copyright jelsoft scheduled. Hmmm wonder willhmmm, big higher
> normal reinstall rates like. Used anything another call moment able as.
> Worth trouble sysprep xml file hard.
> Its world server macs.
> Imminent arrival business enterprise, additions, dropped nasty little.
> -------------- next part --------------
> An HTML attachment was scrubbed...
> -------------- next part --------------
> A non-text attachment was scrubbed...
> Name: not available
> Type: image/gif
> Size: 4634 bytes
> Desc: not available
>
> ------------------------------
>
> Message: 5
> Date: Tue, 03 Apr 2007 15:04:29 -0600
> From: Brad Midgley <[email protected]>
> Subject: Re: [Bluez-devel] new sco flowcontrol patch
> To: BlueZ development <[email protected]>
> Message-ID: <[email protected]>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> Marcel
>
> > And why do we have to do "c->tx_timer.function = hci_sco_tx_timer" over
> > and over again. Isn't it enough if we set the timer function once after
> > init of the timer.
>
> should this happen directly inside hci_conn.c or through something like
> a notification?
>
> To use it in hci_conn I'd want to move the definition of the function
> there too but that may not be the right fit.
>
> Brad
>
>
>
>
>
>
> ------------------------------
>
> Message: 6
> Date: Tue, 03 Apr 2007 23:08:47 +0200
> From: Marcel Holtmann <[email protected]>
> Subject: Re: [Bluez-devel] new sco flowcontrol patch
> To: BlueZ development <[email protected]>
> Message-ID: <1175634527.5815.409.camel@violet>
> Content-Type: text/plain
>
> Hi Brad,
>
> > > And why do we have to do "c->tx_timer.function = hci_sco_tx_timer"
> over
> > > and over again. Isn't it enough if we set the timer function once
> after
> > > init of the timer.
> >
> > should this happen directly inside hci_conn.c or through something like
> > a notification?
> >
> > To use it in hci_conn I'd want to move the definition of the function
> > there too but that may not be the right fit.
>
> actually hci_sco_tx_timer() should be in hci_conn.c. There is no need to
> put that into hci_core.c and make this so complex.
>
> Regards
>
> Marcel
>
>
>
>
>
> ------------------------------
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share
> your
> opinions on IT & business topics through brief surveys-and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>
> ------------------------------
>
> _______________________________________________
> Bluez-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/bluez-devel
>
>
> End of Bluez-devel Digest, Vol 12, Issue 9
> ******************************************
>


Attachments:
(No filename) (11.98 kB)
(No filename) (17.37 kB)
(No filename) (345.00 B)
(No filename) (164.00 B)
Download all attachments