Home | History | Annotate | Download | only in 30149612
      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 
     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