[haiku-commits] r37133 - in haiku/trunk/src/tests/kits: . bluetooth bluetooth/l2capClient

  • From: oliver.ruiz.dorantes@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 14 Jun 2010 22:41:18 +0200 (CEST)

Author: oruizdorantes
Date: 2010-06-14 22:41:18 +0200 (Mon, 14 Jun 2010)
New Revision: 37133
Changeset: http://dev.haiku-os.org/changeset/37133/haiku

Added:
   haiku/trunk/src/tests/kits/bluetooth/
   haiku/trunk/src/tests/kits/bluetooth/Jamfile
   haiku/trunk/src/tests/kits/bluetooth/l2capClient/
   haiku/trunk/src/tests/kits/bluetooth/l2capClient/Jamfile
   haiku/trunk/src/tests/kits/bluetooth/l2capClient/l2capClient.cpp
Log:
Commit initial version for a l2cap client test
(Style pending)



Added: haiku/trunk/src/tests/kits/bluetooth/Jamfile
===================================================================
--- haiku/trunk/src/tests/kits/bluetooth/Jamfile                                
(rev 0)
+++ haiku/trunk/src/tests/kits/bluetooth/Jamfile        2010-06-14 20:41:18 UTC 
(rev 37133)
@@ -0,0 +1,11 @@
+SubDir HAIKU_TOP src tests kits bluetooth ;
+
+SetSubDirSupportedPlatformsBeOSCompatible ;
+AddSubDirSupportedPlatforms libbe_test ;
+
+UsePrivateHeaders bluetooth ;
+
+SEARCH_SOURCE += [ FDirName $(TOP) src kits bluetooth ] ;
+
+UsePrivateHeaders bluetooth ;
+SubInclude HAIKU_TOP src tests kits bluetooth l2capClient ;

Added: haiku/trunk/src/tests/kits/bluetooth/l2capClient/Jamfile
===================================================================
--- haiku/trunk/src/tests/kits/bluetooth/l2capClient/Jamfile                    
        (rev 0)
+++ haiku/trunk/src/tests/kits/bluetooth/l2capClient/Jamfile    2010-06-14 
20:41:18 UTC (rev 37133)
@@ -0,0 +1,8 @@
+SubDir HAIKU_TOP src tests kits bluetooth l2capClient ;
+
+UseLibraryHeaders bluetooth ;
+
+SimpleTest L2capClient :
+       l2capClient.cpp
+       : be bluetooth network $(TARGET_LIBSUPC++)
+       ;

Added: haiku/trunk/src/tests/kits/bluetooth/l2capClient/l2capClient.cpp
===================================================================
--- haiku/trunk/src/tests/kits/bluetooth/l2capClient/l2capClient.cpp            
                (rev 0)
+++ haiku/trunk/src/tests/kits/bluetooth/l2capClient/l2capClient.cpp    
2010-06-14 20:41:18 UTC (rev 37133)
@@ -0,0 +1,84 @@
+#include <stddef.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <sys/socket.h>
+
+#include <bluetooth/bluetooth.h>
+#include <bluetooth/bdaddrUtils.h>
+#include <bluetooth/L2CAP/btL2CAP.h>
+
+struct sockaddr_l2cap l2sa;
+
+int
+make_named_socket (const bdaddr_t* bdaddr)
+{
+
+  int sock;
+  size_t size;
+  status_t     error;
+
+  /* Create the socket. */
+  //printf("Creating socket for %s\n",pbatostr(bdaddr));
+
+  sock = socket (PF_BLUETOOTH, SOCK_STREAM, BLUETOOTH_PROTO_L2CAP);    //      
BLUETOOTH_PROTO_L2CAP
+  if (sock < 0)
+       {
+      perror ("socket");
+      exit (EXIT_FAILURE);
+    }
+
+  /* Bind a name to the socket. */
+  l2sa.l2cap_psm    = 1;
+  l2sa.l2cap_family = PF_BLUETOOTH;
+  memcpy(&l2sa.l2cap_bdaddr, bdaddr, sizeof(bdaddr_t));
+
+  size = sizeof(struct sockaddr_l2cap);
+  l2sa.l2cap_len = size;
+
+  if (bind (sock, (struct sockaddr *) &l2sa, size) < 0)
+  {
+       perror ("bind");
+       exit (EXIT_FAILURE);
+  }
+
+  printf("Connecting socket for %s\n", bdaddrUtils::ToString(*bdaddr));
+  if ( (error = connect(sock , (struct sockaddr *) &l2sa, sizeof(l2sa))) < 0) {
+           perror ("connect");
+       exit (EXIT_FAILURE);
+  }
+  printf("Return status of the connection is %ld \n", error );
+
+  return sock;
+}
+
+int main(int argc, char **argv)
+{
+       int                                     sock;
+       char                                    string[512];
+       size_t                                  len;
+
+       if (argc != 2 ) {
+               printf("i need a bdaddr! (%d)\n", argc);
+               return 0;
+       }
+
+       const bdaddr_t bdaddr = bdaddrUtils::FromString(argv[1]);
+
+       sock = make_named_socket(&bdaddr);
+
+       while (strcmp(string,"bye")!= 0 )       {
+
+               fscanf(stdin, "%s", string );
+       //  len = send(sock, string, strlen(string), 0);
+               len = sendto(sock, string, strlen(string) + 1 /*\0*/, 0, 
(struct sockaddr*) &l2sa, sizeof(struct sockaddr_l2cap) );
+
+               printf("Sent %ld bytes\n",len);
+               //recvfrom(sock, buff, 4096-1, 0, (struct sockaddr *)  &l2, 
&len);
+       }
+
+       printf("Transmission done ...\n");
+       getchar();
+       close(sock);
+}


Other related posts:

  • » [haiku-commits] r37133 - in haiku/trunk/src/tests/kits: . bluetooth bluetooth/l2capClient - oliver . ruiz . dorantes