summaryrefslogtreecommitdiffstats
path: root/hidd
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@nokia.com>2006-08-01 12:35:58 +0000
committerJohan Hedberg <johan.hedberg@nokia.com>2006-08-01 12:35:58 +0000
commit670e5ef72176dafc1bf2669d4c5c30e0db26dd71 (patch)
tree55320c8c6455c71248e6c6e4ac2040ddc634bdc5 /hidd
parent9505d0aad9044b60d3a3f8374bf238a68055472a (diff)
Exit with non-zero exit status if fakehid functions fail
Diffstat (limited to 'hidd')
-rw-r--r--hidd/fakehid.c11
-rw-r--r--hidd/hidd.h4
-rw-r--r--hidd/main.c10
3 files changed, 17 insertions, 8 deletions
diff --git a/hidd/fakehid.c b/hidd/fakehid.c
index 138d2b48..2699d3f5 100644
--- a/hidd/fakehid.c
+++ b/hidd/fakehid.c
@@ -277,7 +277,7 @@ static void sig_term(int sig)
__io_canceled = 1;
}
-void epox_presenter(const bdaddr_t *src, const bdaddr_t *dst, uint8_t channel)
+int epox_presenter(const bdaddr_t *src, const bdaddr_t *dst, uint8_t channel)
{
unsigned char buf[16];
struct sigaction sa;
@@ -287,12 +287,12 @@ void epox_presenter(const bdaddr_t *src, const bdaddr_t *dst, uint8_t channel)
sk = rfcomm_connect(src, dst, channel);
if (sk < 0)
- return;
+ return -1;
fd = uinput_create("Bluetooth Presenter", 0, 1);
if (fd < 0) {
close(sk);
- return;
+ return -1;
}
ba2str(dst, addr);
@@ -335,9 +335,12 @@ void epox_presenter(const bdaddr_t *src, const bdaddr_t *dst, uint8_t channel)
close(fd);
close(sk);
+
+ return 0;
}
-void headset_presenter(const bdaddr_t *src, const bdaddr_t *dst, uint8_t channel)
+int headset_presenter(const bdaddr_t *src, const bdaddr_t *dst, uint8_t channel)
{
printf("Not implemented\n");
+ return -1;
}
diff --git a/hidd/hidd.h b/hidd/hidd.h
index 5e9fd311..afc65be1 100644
--- a/hidd/hidd.h
+++ b/hidd/hidd.h
@@ -28,5 +28,5 @@ int get_stored_device_info(const bdaddr_t *src, const bdaddr_t *dst, struct hidp
int get_sdp_device_info(const bdaddr_t *src, const bdaddr_t *dst, struct hidp_connadd_req *req);
int get_alternate_device_info(const bdaddr_t *src, const bdaddr_t *dst, uint16_t *uuid, uint8_t *channel);
-void epox_presenter(const bdaddr_t *src, const bdaddr_t *dst, uint8_t channel);
-void headset_presenter(const bdaddr_t *src, const bdaddr_t *dst, uint8_t channel);
+int epox_presenter(const bdaddr_t *src, const bdaddr_t *dst, uint8_t channel);
+int headset_presenter(const bdaddr_t *src, const bdaddr_t *dst, uint8_t channel);
diff --git a/hidd/main.c b/hidd/main.c
index b1fe2cb4..4ececd5a 100644
--- a/hidd/main.c
+++ b/hidd/main.c
@@ -438,12 +438,18 @@ static void do_connect(int ctl, bdaddr_t *src, bdaddr_t *dst, uint8_t subclass,
goto connect;
case SERIAL_PORT_SVCLASS_ID:
- epox_presenter(src, dst, channel);
+ if (epox_presenter(src, dst, channel) < 0) {
+ close(ctl);
+ exit(1);
+ }
break;
case HEADSET_SVCLASS_ID:
case HANDSFREE_SVCLASS_ID:
- headset_presenter(src, dst, channel);
+ if (headset_presenter(src, dst, channel) < 0) {
+ close(ctl);
+ exit(1);
+ }
break;
}