diff options
| author | Johan Hedberg <johan.hedberg@nokia.com> | 2006-08-01 12:35:58 +0000 | 
|---|---|---|
| committer | Johan Hedberg <johan.hedberg@nokia.com> | 2006-08-01 12:35:58 +0000 | 
| commit | 670e5ef72176dafc1bf2669d4c5c30e0db26dd71 (patch) | |
| tree | 55320c8c6455c71248e6c6e4ac2040ddc634bdc5 | |
| parent | 9505d0aad9044b60d3a3f8374bf238a68055472a (diff) | |
Exit with non-zero exit status if fakehid functions fail
| -rw-r--r-- | hidd/fakehid.c | 11 | ||||
| -rw-r--r-- | hidd/hidd.h | 4 | ||||
| -rw-r--r-- | hidd/main.c | 10 | 
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;  	} | 
