]> git.meshlink.io Git - meshlink/commitdiff
Find first available descriptor in bit array
authorSaverio Proto <zioproto@gmail.com>
Sat, 28 Jun 2014 13:13:19 +0000 (15:13 +0200)
committerSaverio Proto <zioproto@gmail.com>
Sat, 28 Jun 2014 13:14:21 +0000 (15:14 +0200)
src/meshlink.c

index 7d717e5ac564c7957f468635651b56e995f53583..538a9e5c5d84440b8f39531db92a94ee4216b644 100644 (file)
@@ -1374,6 +1374,18 @@ meshlink_connection_t* meshlink_open_rchannel(meshlink_handle_t *mesh, meshlink_
 
 //TODO: check in mesh->socketsbitmap for a free descriptor and allocate a source port for this connection
 
+       int descriptor=-1;
+
+       for (int i=0; i < 1024 ;i++) {
+               if (mesh->socketsbitmap.bitValues[i].bit == 0) {
+                       mesh->socketsbitmap.bitValues[i].bit=1;
+                       descriptor=i;
+                       break;
+               }
+       }
+
+       if (descriptor == -1 ) return NULL;
+
 //TODO: register a callback for the data that will be received from this connection
 
 //TODO: return a description value that the user will use to write on this channel