]> git.meshlink.io Git - meshlink/commitdiff
Make meshlink_set_port() return false if we didn't bind to the requested port.
authorGuus Sliepen <guus@meshlink.io>
Mon, 20 May 2019 09:18:23 +0000 (11:18 +0200)
committerGuus Sliepen <guus@meshlink.io>
Wed, 5 Jun 2019 18:47:00 +0000 (20:47 +0200)
src/meshlink++.h
src/meshlink.c
src/meshlink.h

index 48eabf3fbf5fdf80cfb3586c6a5001e808a7e208..8287e0382632777df5d4c0f1a7e59d4c398259ad 100644 (file)
@@ -533,7 +533,9 @@ public:
         *                       If the port is set to 0, then MeshLink will listen on a port
         *                       that is randomly assigned by the operating system every time open() is called.
         *
-        *  @return              This function returns true if the port was successfully changed, false otherwise.
+        *  @return              This function returns true if the port was successfully changed
+        *                       to the desired port, false otherwise. If it returns false, there
+        *                       is no guarantee that MeshLink is listening on the old port.
         */
        bool set_port(int port) {
                return meshlink_set_port(handle, port);
index 9641173af047cb987be69ec72fd22e8852ef22f6..496e5d3c753763560bf173591a3aa8f883559dd6 100644 (file)
@@ -2339,7 +2339,7 @@ bool meshlink_set_port(meshlink_handle_t *mesh, int port) {
 done:
        pthread_mutex_unlock(&(mesh->mesh_mutex));
 
-       return rval;
+       return rval && meshlink_get_port(mesh) == port;
 }
 
 void meshlink_set_invitation_timeout(meshlink_handle_t *mesh, int timeout) {
index 8ec7b50835fedbadb94704a871689ebffc7dc471..c6cb86c6bc6192c308037f5ccca5578de9c8fa66 100644 (file)
@@ -730,7 +730,9 @@ extern int meshlink_get_port(meshlink_handle_t *mesh);
  *                       If the port is set to 0, then MeshLink will listen on a port
  *                       that is randomly assigned by the operating system every time meshlink_open() is called.
  *
- *  @return              This function returns true if the port was successfully changed, false otherwise.
+ *  @return              This function returns true if the port was successfully changed
+ *                       to the desired port, false otherwise. If it returns false, there
+ *                       is no guarantee that MeshLink is listening on the old port.
  */
 
 extern bool meshlink_set_port(meshlink_handle_t *mesh, int port);