1 #include "poc_test.h"
2
3 #include <errno.h>
4 #include <fcntl.h>
5 #include <stdio.h>
6 #include <string.h>
7 #include <sys/socket.h>
8 #include <unistd.h>
9
main(int argc,char * argv[])10 int main(int argc, char* argv[]) {
11 VtsHostInput host_input = ParseVtsHostFlags(argc, argv);
12 struct sockaddr sa;
13 socklen_t len, i;
14 int fd;
15
16 fd = socket(AF_BLUETOOTH, SOCK_STREAM, 3);
17 if (fd == -1) {
18 printf("[-] can't create socket: %s\n", strerror(errno));
19 return POC_TEST_SKIP;
20 }
21
22 memset(&sa, 0, sizeof(sa));
23 sa.sa_family = AF_BLUETOOTH;
24
25 if (bind(fd, &sa, 2)) {
26 printf("[-] can't bind socket: %s\n", strerror(errno));
27 close(fd);
28 return POC_TEST_SKIP;
29 }
30
31 len = sizeof(sa);
32 if (getsockname(fd, &sa, &len)) {
33 printf("[-] can't getsockname for socket: %s\n", strerror(errno));
34 close(fd);
35 return POC_TEST_SKIP;
36 } else {
37 printf("[+] getsockname return len = %d\n", len);
38 }
39
40 for (i = 0; i < len; i++) {
41 printf("%02x ", ((unsigned char*)&sa)[i]);
42 }
43 printf("\n");
44
45 for (i = 1; i < len; i++) {
46 if (((unsigned char*)&sa)[i] != 0) {
47 return POC_TEST_FAIL;
48 }
49 }
50
51 close(fd);
52 return POC_TEST_PASS;
53 }
54