Proposal: patch for pand
Hi everyone,
For my work I need a similar mechanism to "devup" script in pand when a PAN disconnection occurs.
That's why I've done the following patch (see attachment for source code) which allows PAN daemon to run a "devdown" script either when a disconnection is spotted i.e. remote device closes the connection or when you explicitly do the disconnection. To use it, simply add the following option to your command line:
pand --options --devdown /path/to/devdown-script
or
pand -options -o /path/to/devdown-script
or you can also read the pand man page ;)
The behaviour is the same as for "devup" script. I mean when the script is run the following arguments are supplied to the script:
$1 <-> device interface e.g. "bnep0"
$2 <-> bluetooth address of the disconnected device e.g. "00:45:78:AE:B4:01"
and of course your script must have the correct permissions to run.
Any feedback about this patch is of course welcome ;) Hope you will find this patch usefull.
Regards,
Olivier DOLE
main.c +83 -53
@@ -73,6 +73,7 @@static char netdev[16 ] ="bnep%d" ;static char *pidfile =NULL ;static char *devupcmd =NULL ; +static char *devdowncmd =NULL ;static bdaddr_t src_addr = *BDADDR_ANY ;static int src_dev =-1 ;
@@ -89,15 +90,22 @@ KILL } modes; -static void run_devup (char *dev,char *dst,int sk,int nsk) +struct script_arg { +char dev[20 ]; +char dst[20 ]; +int sk; +int nsk; +}; + +static void run_script (char *script,char *dev,char *dst,int sk,int nsk) {char *argv[4 ];struct sigaction sa; -if (!devupcmd) +if (!script)return ; - -if (access (devupcmd,R_OK |X_OK )) + +if (access (script,R_OK |X_OK ))return ;if (fork ())
@@ -114,16 +122,57 @@sigaction (SIGCHLD , &sa,NULL );sigaction (SIGPIPE , &sa,NULL ); - argv[0 ] = devupcmd; + argv[0 ] = script; argv[1 ] = dev; argv[2 ] = dst; argv[3 ] =NULL ; -execv (devupcmd, argv); +execv (script, argv);exit (1 ); } +/* Wait for disconnect or error condition on the socket */ +static int w4_hup (int sk,struct script_arg *down_cmd) +{ +struct pollfd pf; +sigset_t sigs; +int n; + +sigfillset (&sigs); +sigdelset (&sigs,SIGCHLD ); +sigdelset (&sigs,SIGPIPE ); +sigdelset (&sigs,SIGTERM ); +sigdelset (&sigs,SIGINT ); +sigdelset (&sigs,SIGHUP ); + +while (!terminate) { + pf.fd = sk; + pf.events =POLLERR |POLLHUP ; + n =ppoll (&pf,1 ,NULL , &sigs); +if (n <0 ) { +if (errno ==EINTR || errno ==EAGAIN ) +continue ; +syslog (LOG_ERR ,"Poll failed. %s(%d)" , +strerror (errno), errno); +return 1 ; + } + +if (n) { +int err =0 ; +socklen_t olen =sizeof (err); +getsockopt (sk,SOL_SOCKET ,SO_ERROR , &err, &olen); +syslog (LOG_INFO ,"%s disconnected%s%s" , netdev, + err ?" : " :"" , err ?strerror (err) :"" ); +if (down_cmd) +run_script (devdowncmd, down_cmd->dev, down_cmd->dst, down_cmd->sk, down_cmd->nsk); +close (sk); +return 0 ; + } + } +return 0 ; +} +static int do_listen (void ) {struct l2cap_options l2o;
@@ -207,12 +256,21 @@if (!bnep_accept_connection (nsk, role, devname)) {char str[40 ]; +struct script_arg down_cmd; +ba2str (&l2a.l2_bdaddr, str);syslog (LOG_INFO ,"New connection from %s %s" , - str, devname); + str, netdev); -run_devup (devname, str, sk, nsk); +run_script (devupcmd, devname, str, sk, nsk); + +memset (&down_cmd,0 ,sizeof (struct script_arg )); +strncpy (down_cmd.dev, devname,strlen (devname) +1 ); +strncpy (down_cmd.dst, str,strlen (str) +1 ); + down_cmd.sk = sk; + down_cmd.nsk = nsk; +w4_hup (nsk, &down_cmd); }else {syslog (LOG_ERR ,"Connection failed. %s(%d)" ,strerror (errno), errno);
@@ -227,46 +285,6 @@return 0 ; } -/* Wait for disconnect or error condition on the socket */ -static int w4_hup (int sk) -{ -struct pollfd pf; -sigset_t sigs; -int n; - -sigfillset (&sigs); -sigdelset (&sigs,SIGCHLD ); -sigdelset (&sigs,SIGPIPE ); -sigdelset (&sigs,SIGTERM ); -sigdelset (&sigs,SIGINT ); -sigdelset (&sigs,SIGHUP ); - -while (!terminate) { - pf.fd = sk; - pf.events =POLLERR |POLLHUP ; - n =ppoll (&pf,1 ,NULL , &sigs); -if (n <0 ) { -if (errno ==EINTR || errno ==EAGAIN ) -continue ; -syslog (LOG_ERR ,"Poll failed. %s(%d)" , -strerror (errno), errno); -return 1 ; - } - -if (n) { -int err =0 ; -socklen_t olen =sizeof (err); -getsockopt (sk,SOL_SOCKET ,SO_ERROR , &err, &olen); -syslog (LOG_INFO ,"%s disconnected%s%s" , netdev, - err ?" : " :"" , err ?strerror (err) :"" ); - -close (sk); -return 0 ; - } - } -return 0 ; -} -/* Connect and initiate BNEP session * Returns: * -1 - critical error (exit persist mode)
@@ -279,6 +297,7 @@struct sockaddr_l2 l2a;socklen_t olen;int sk, r =0 ; +struct script_arg down_cmd;syslog (LOG_INFO ,"Connecting to %s" , dst);
@@ -314,10 +333,15 @@syslog (LOG_INFO ,"%s connected" , netdev); -run_devup (netdev, dst, sk,-1 ); +run_script (devupcmd, netdev, dst, sk,-1 ); -if (persist) { -w4_hup (sk); +if (persist || devdowncmd) { +memset (&down_cmd,0 ,sizeof (struct script_arg )); +strncpy (down_cmd.dev, netdev,strlen (netdev) +1 ); +strncpy (down_cmd.dst, dst,strlen (dst) +1 ); + down_cmd.sk = sk; + down_cmd.nsk =-1 ; +w4_hup (sk, &down_cmd);if (terminate && cleanup) {syslog (LOG_INFO ,"Disconnecting from %s." , dst);
@@ -525,11 +549,12 @@ { "cache", 0, 0, 'C' }, { "pidfile", 1, 0, 'P' }, { "devup", 1, 0, 'u' }, + { "devdown", 1, 0, 'o' }, { "autozap", 0, 0, 'z' }, { 0, 0, 0, 0 } }; -static char main_sopts[] ="hsc:k:Kr:d:e:i:lnp::DQ::AESMC::P:u:z" ; +static char main_sopts[] ="hsc:k:Kr:d:e:i:lnp::DQ::AESMC::P:u:o:z" ;static char main_help[] ="Bluetooth PAN daemon version " VERSION " \n"
@@ -556,7 +581,8 @@"\t--persist -p[interval] Persist mode\n" "\t--cache -C[valid] Cache addresses\n" "\t--pidfile -P <pidfile> Create PID file\n" -"\t--devup -u <script> Script to run when interface comes up\n" ; +"\t--devup -u <script> Script to run when interface comes up\n" +"\t--devdown -o <script> Script to run when interface comes down\n" ;int main (int argc,char *argv[]) {
@@ -661,6 +687,10 @@ devupcmd =strdup (optarg);break ; +case 'o' : + devdowncmd =strdup (optarg); +break ; +case 'z' : cleanup =1 ;break ;
.main.c.swp +70 -0
71 lines not on this page · raw message
pand.1 +3 -0
@@ -66,6 +66,9 @@ \fB\-\-devup\fR \fB\-u <script>\fR Script to run when interface comes up .TP +\fB\-\-devdown\fR \fB\-o <script>\fR +Script to run when interface comes down. The script is executed with \fIdevice\fR \fIdestination\fR as arguments. +.TP \fB\-\-autozap\fR \fB\-z\fR Disconnect automatically on exit
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
Sorry tiny error in my patch... a vim swap file was included. Sorry for this mistake :p
so Here is a cleaner patch.
Regards,
Olivier DOLE
Quoted 23 lines · Olivier Dole
Hi everyone,
For my work I need a similar mechanism to "devup" script in pand when a PAN disconnection occurs.
That's why I've done the following patch (see attachment for source code) which allows PAN daemon to run a "devdown" script either when a disconnection is spotted i.e. remote device closes the connection or when you explicitly do the disconnection. To use it, simply add the following option to your command line:
pand --options --devdown /path/to/devdown-script
or
pand -options -o /path/to/devdown-script
or you can also read the pand man page ;)
The behaviour is the same as for "devup" script. I mean when the script is run the following arguments are supplied to the script:
$1 <-> device interface e.g. "bnep0"
$2 <-> bluetooth address of the disconnected device e.g. "00:45:78:AE:B4:01"
and of course your script must have the correct permissions to run.Any feedback about this patch is of course welcome ;) Hope you will find this patch usefull.
Quoted 8 lines
Regards,
Olivier DOLE
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________ Bluez-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/bluez-devel
main.c +83 -53
@@ -73,6 +73,7 @@static char netdev[16 ] ="bnep%d" ;static char *pidfile =NULL ;static char *devupcmd =NULL ; +static char *devdowncmd =NULL ;static bdaddr_t src_addr = *BDADDR_ANY ;static int src_dev =-1 ;
@@ -89,15 +90,22 @@ KILL } modes; -static void run_devup (char *dev,char *dst,int sk,int nsk) +struct script_arg { +char dev[20 ]; +char dst[20 ]; +int sk; +int nsk; +}; + +static void run_script (char *script,char *dev,char *dst,int sk,int nsk) {char *argv[4 ];struct sigaction sa; -if (!devupcmd) +if (!script)return ; - -if (access (devupcmd,R_OK |X_OK )) + +if (access (script,R_OK |X_OK ))return ;if (fork ())
@@ -114,16 +122,57 @@sigaction (SIGCHLD , &sa,NULL );sigaction (SIGPIPE , &sa,NULL ); - argv[0 ] = devupcmd; + argv[0 ] = script; argv[1 ] = dev; argv[2 ] = dst; argv[3 ] =NULL ; -execv (devupcmd, argv); +execv (script, argv);exit (1 ); } +/* Wait for disconnect or error condition on the socket */ +static int w4_hup (int sk,struct script_arg *down_cmd) +{ +struct pollfd pf; +sigset_t sigs; +int n; + +sigfillset (&sigs); +sigdelset (&sigs,SIGCHLD ); +sigdelset (&sigs,SIGPIPE ); +sigdelset (&sigs,SIGTERM ); +sigdelset (&sigs,SIGINT ); +sigdelset (&sigs,SIGHUP ); + +while (!terminate) { + pf.fd = sk; + pf.events =POLLERR |POLLHUP ; + n =ppoll (&pf,1 ,NULL , &sigs); +if (n <0 ) { +if (errno ==EINTR || errno ==EAGAIN ) +continue ; +syslog (LOG_ERR ,"Poll failed. %s(%d)" , +strerror (errno), errno); +return 1 ; + } + +if (n) { +int err =0 ; +socklen_t olen =sizeof (err); +getsockopt (sk,SOL_SOCKET ,SO_ERROR , &err, &olen); +syslog (LOG_INFO ,"%s disconnected%s%s" , netdev, + err ?" : " :"" , err ?strerror (err) :"" ); +if (down_cmd) +run_script (devdowncmd, down_cmd->dev, down_cmd->dst, down_cmd->sk, down_cmd->nsk); +close (sk); +return 0 ; + } + } +return 0 ; +} +static int do_listen (void ) {struct l2cap_options l2o;
@@ -207,12 +256,21 @@if (!bnep_accept_connection (nsk, role, devname)) {char str[40 ]; +struct script_arg down_cmd; +ba2str (&l2a.l2_bdaddr, str);syslog (LOG_INFO ,"New connection from %s %s" , - str, devname); + str, netdev); -run_devup (devname, str, sk, nsk); +run_script (devupcmd, devname, str, sk, nsk); + +memset (&down_cmd,0 ,sizeof (struct script_arg )); +strncpy (down_cmd.dev, devname,strlen (devname) +1 ); +strncpy (down_cmd.dst, str,strlen (str) +1 ); + down_cmd.sk = sk; + down_cmd.nsk = nsk; +w4_hup (nsk, &down_cmd); }else {syslog (LOG_ERR ,"Connection failed. %s(%d)" ,strerror (errno), errno);
@@ -227,46 +285,6 @@return 0 ; } -/* Wait for disconnect or error condition on the socket */ -static int w4_hup (int sk) -{ -struct pollfd pf; -sigset_t sigs; -int n; - -sigfillset (&sigs); -sigdelset (&sigs,SIGCHLD ); -sigdelset (&sigs,SIGPIPE ); -sigdelset (&sigs,SIGTERM ); -sigdelset (&sigs,SIGINT ); -sigdelset (&sigs,SIGHUP ); - -while (!terminate) { - pf.fd = sk; - pf.events =POLLERR |POLLHUP ; - n =ppoll (&pf,1 ,NULL , &sigs); -if (n <0 ) { -if (errno ==EINTR || errno ==EAGAIN ) -continue ; -syslog (LOG_ERR ,"Poll failed. %s(%d)" , -strerror (errno), errno); -return 1 ; - } - -if (n) { -int err =0 ; -socklen_t olen =sizeof (err); -getsockopt (sk,SOL_SOCKET ,SO_ERROR , &err, &olen); -syslog (LOG_INFO ,"%s disconnected%s%s" , netdev, - err ?" : " :"" , err ?strerror (err) :"" ); - -close (sk); -return 0 ; - } - } -return 0 ; -} -/* Connect and initiate BNEP session * Returns: * -1 - critical error (exit persist mode)
@@ -279,6 +297,7 @@struct sockaddr_l2 l2a;socklen_t olen;int sk, r =0 ; +struct script_arg down_cmd;syslog (LOG_INFO ,"Connecting to %s" , dst);
@@ -314,10 +333,15 @@syslog (LOG_INFO ,"%s connected" , netdev); -run_devup (netdev, dst, sk,-1 ); +run_script (devupcmd, netdev, dst, sk,-1 ); -if (persist) { -w4_hup (sk); +if (persist || devdowncmd) { +memset (&down_cmd,0 ,sizeof (struct script_arg )); +strncpy (down_cmd.dev, netdev,strlen (netdev) +1 ); +strncpy (down_cmd.dst, dst,strlen (dst) +1 ); + down_cmd.sk = sk; + down_cmd.nsk =-1 ; +w4_hup (sk, &down_cmd);if (terminate && cleanup) {syslog (LOG_INFO ,"Disconnecting from %s." , dst);
@@ -525,11 +549,12 @@ { "cache", 0, 0, 'C' }, { "pidfile", 1, 0, 'P' }, { "devup", 1, 0, 'u' }, + { "devdown", 1, 0, 'o' }, { "autozap", 0, 0, 'z' }, { 0, 0, 0, 0 } }; -static char main_sopts[] ="hsc:k:Kr:d:e:i:lnp::DQ::AESMC::P:u:z" ; +static char main_sopts[] ="hsc:k:Kr:d:e:i:lnp::DQ::AESMC::P:u:o:z" ;static char main_help[] ="Bluetooth PAN daemon version " VERSION " \n"
@@ -556,7 +581,8 @@"\t--persist -p[interval] Persist mode\n" "\t--cache -C[valid] Cache addresses\n" "\t--pidfile -P <pidfile> Create PID file\n" -"\t--devup -u <script> Script to run when interface comes up\n" ; +"\t--devup -u <script> Script to run when interface comes up\n" +"\t--devdown -o <script> Script to run when interface comes down\n" ;int main (int argc,char *argv[]) {
@@ -661,6 +687,10 @@ devupcmd =strdup (optarg);break ; +case 'o' : + devdowncmd =strdup (optarg); +break ; +case 'z' : cleanup =1 ;break ;
pand.1 +3 -0
@@ -66,6 +66,9 @@ \fB\-\-devup\fR \fB\-u <script>\fR Script to run when interface comes up .TP +\fB\-\-devdown\fR \fB\-o <script>\fR +Script to run when interface comes down. The script is executed with \fIdevice\fR \fIdestination\fR as arguments. +.TP \fB\-\-autozap\fR \fB\-z\fR Disconnect automatically on exit
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
SGVsbG8sCgpyZWFsbHkgbm9ib2R5IGlzIGludGVyZXN0ZWQgYnkgdGhpcyBmZWF0dXJlIGFuZCBz byBieSB0aGlzIHBhdGNoID8Kd2hhdCBhIHNoYW1lIDooCgpSZWdhcmRzLApPbGl2aWVyIERPTEUK CkxlIGpldWRpIDAyIG5vdmVtYnJlIDIwMDYgw6AgMTE6MzggKzAxMDAsIE9saXZpZXIgRG9sZSBh IMOpY3JpdCA6Cj4gU29ycnkgdGlueSBlcnJvciBpbiBteSBwYXRjaC4uLiBhIHZpbSBzd2FwIGZp bGUgd2FzIGluY2x1ZGVkLiBTb3JyeSBmb3IKPiB0aGlzIG1pc3Rha2UgOnAKPiBzbyBIZXJlIGlz IGEgY2xlYW5lciBwYXRjaC4KPiAKPiBSZWdhcmRzLAo+IE9saXZpZXIgRE9MRQo+IAo+IExlIGpl dWRpIDAyIG5vdmVtYnJlIDIwMDYgw6AgMTE6MzQgKzAxMDAsIE9saXZpZXIgRG9sZSBhIMOpY3Jp dCA6Cj4gPiBIaSBldmVyeW9uZSwKPiA+IAo+ID4gRm9yIG15IHdvcmsgSSBuZWVkIGEgc2ltaWxh ciBtZWNoYW5pc20gdG8gImRldnVwIiBzY3JpcHQgaW4gcGFuZCB3aGVuIGEKPiA+IFBBTiBkaXNj b25uZWN0aW9uIG9jY3Vycy4KPiA+IFRoYXQncyB3aHkgSSd2ZSBkb25lIHRoZSBmb2xsb3dpbmcg cGF0Y2ggKHNlZSBhdHRhY2htZW50IGZvciBzb3VyY2UKPiA+IGNvZGUpIHdoaWNoIGFsbG93cyBQ QU4gZGFlbW9uIHRvIHJ1biBhICJkZXZkb3duIiBzY3JpcHQgZWl0aGVyIHdoZW4gYQo+ID4gZGlz Y29ubmVjdGlvbiBpcyBzcG90dGVkIGkuZS4gcmVtb3RlIGRldmljZSBjbG9zZXMgdGhlIGNvbm5l Y3Rpb24gb3IKPiA+IHdoZW4geW91IGV4cGxpY2l0bHkgZG8gdGhlIGRpc2Nvbm5lY3Rpb24uIFRv IHVzZSBpdCwgc2ltcGx5IGFkZCB0aGUKPiA+IGZvbGxvd2luZyBvcHRpb24gdG8geW91ciBjb21t YW5kIGxpbmU6Cj4gPiBwYW5kIC0tb3B0aW9ucyAtLWRldmRvd24gL3BhdGgvdG8vZGV2ZG93bi1z Y3JpcHQKPiA+IG9yCj4gPiBwYW5kIC1vcHRpb25zIC1vIC9wYXRoL3RvL2RldmRvd24tc2NyaXB0 Cj4gPiBvciB5b3UgY2FuIGFsc28gcmVhZCB0aGUgcGFuZCBtYW4gcGFnZSA7KQo+ID4gVGhlIGJl aGF2aW91ciBpcyB0aGUgc2FtZSBhcyBmb3IgImRldnVwIiBzY3JpcHQuIEkgbWVhbiB3aGVuIHRo ZSBzY3JpcHQKPiA+IGlzIHJ1biB0aGUgZm9sbG93aW5nIGFyZ3VtZW50cyBhcmUgc3VwcGxpZWQg dG8gdGhlIHNjcmlwdDoKPiA+ICQxIDwtPiBkZXZpY2UgaW50ZXJmYWNlIGUuZy4gImJuZXAwIgo+ ID4gJDIgPC0+IGJsdWV0b290aCBhZGRyZXNzIG9mIHRoZSBkaXNjb25uZWN0ZWQgZGV2aWNlIGUu Zy4KPiA+ICIwMDo0NTo3ODpBRTpCNDowMSIKPiA+IGFuZCBvZiBjb3Vyc2UgeW91ciBzY3JpcHQg bXVzdCBoYXZlIHRoZSBjb3JyZWN0IHBlcm1pc3Npb25zIHRvIHJ1bi4KPiA+IAo+ID4gQW55IGZl ZWRiYWNrIGFib3V0IHRoaXMgcGF0Y2ggaXMgb2YgY291cnNlIHdlbGNvbWUgOykKPiA+IEhvcGUg eW91IHdpbGwgZmluZCB0aGlzIHBhdGNoIHVzZWZ1bGwuCj4gPiAKPiA+IFJlZ2FyZHMsCj4gPiBP bGl2aWVyIERPTEUKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFVzaW5nIFRvbWNhdCBidXQgbmVl ZCB0byBkbyBtb3JlPyBOZWVkIHRvIHN1cHBvcnQgd2ViIHNlcnZpY2VzLCBzZWN1cml0eT8KPiA+ IEdldCBzdHVmZiBkb25lIHF1aWNrbHkgd2l0aCBwcmUtaW50ZWdyYXRlZCB0ZWNobm9sb2d5IHRv IG1ha2UgeW91ciBqb2IgZWFzaWVyCj4gPiBEb3dubG9hZCBJQk0gV2ViU3BoZXJlIEFwcGxpY2F0 aW9uIFNlcnZlciB2LjEuMC4xIGJhc2VkIG9uIEFwYWNoZSBHZXJvbmltbwo+ID4gaHR0cDovL3Nl bC5hcy11cy5mYWxrYWcubmV0L3NlbD9jbWQ9bG5rJmtpZD0xMjA3MDkmYmlkPTI2MzA1NyZkYXQ9 MTIxNjQyCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XyBCbHVlei1kZXZlbCBtYWlsaW5nIGxpc3QgQmx1ZXotZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2Uu bmV0IGh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2JsdWV6LWRl dmVsCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFVzaW5nIFRvbWNhdCBidXQgbmVlZCB0byBkbyBtb3Jl PyBOZWVkIHRvIHN1cHBvcnQgd2ViIHNlcnZpY2VzLCBzZWN1cml0eT8KPiBHZXQgc3R1ZmYgZG9u ZSBxdWlja2x5IHdpdGggcHJlLWludGVncmF0ZWQgdGVjaG5vbG9neSB0byBtYWtlIHlvdXIgam9i IGVhc2llcgo+IERvd25sb2FkIElCTSBXZWJTcGhlcmUgQXBwbGljYXRpb24gU2VydmVyIHYuMS4w LjEgYmFzZWQgb24gQXBhY2hlIEdlcm9uaW1vCj4gaHR0cDovL3NlbC5hcy11cy5mYWxrYWcubmV0 L3NlbD9jbWQ9bG5rJmtpZD0xMjA3MDkmYmlkPTI2MzA1NyZkYXQ9MTIxNjQyCj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gQmx1ZXotZGV2ZWwgbWFpbGlu ZyBsaXN0IEJsdWV6LWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldCBodHRwczovL2xpc3RzLnNv dXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9ibHVlei1kZXZlbAoKCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KVXNpbmcgVG9tY2F0IGJ1dCBuZWVkIHRvIGRvIG1vcmU/IE5lZWQgdG8gc3VwcG9ydCB3ZWIg c2VydmljZXMsIHNlY3VyaXR5PwpHZXQgc3R1ZmYgZG9uZSBxdWlja2x5IHdpdGggcHJlLWludGVn cmF0ZWQgdGVjaG5vbG9neSB0byBtYWtlIHlvdXIgam9iIGVhc2llcgpEb3dubG9hZCBJQk0gV2Vi U3BoZXJlIEFwcGxpY2F0aW9uIFNlcnZlciB2LjEuMC4xIGJhc2VkIG9uIEFwYWNoZSBHZXJvbmlt bwpodHRwOi8vc2VsLmFzLXVzLmZhbGthZy5uZXQvc2VsP2NtZD1sbmsma2lkPTEyMDcwOSZiaWQ9 MjYzMDU3JmRhdD0xMjE2NDIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KQmx1ZXotZGV2ZWwgbWFpbGluZyBsaXN0CkJsdWV6LWRldmVsQGxpc3RzLnNvdXJj ZWZvcmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9i bHVlei1kZXZlbAo=
Marcel Holtmann
maintainerHi Olivier,
Quoted 2 lines
really nobody is interested by this feature and so by this patch ? what a shame :(
I totally overlooked that one. If you don't get an accept or reject reply from me, then post it again. I must have been simply busy. Anyhow, the patch has been committed to the CVS now.
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