]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
- Set the SO_REUSEADDR flag when creating sockets.
authorTed Lemon <source@isc.org>
Thu, 9 Sep 1999 21:07:55 +0000 (21:07 +0000)
committerTed Lemon <source@isc.org>
Thu, 9 Sep 1999 21:07:55 +0000 (21:07 +0000)
- Fix an uninitialized pointer bug.

omapip/connection.c

index 02828632a504e73e71668265e5c025c70e158704..0f7dd30e2295e4ad6cb5b3085a448d07d2c9e6b5 100644 (file)
@@ -30,6 +30,7 @@ isc_result_t omapi_connect (omapi_object_t *c,
        int hix;
        isc_result_t status;
        omapi_connection_object_t *obj;
+       int flag;
 
        obj = (omapi_connection_object_t *)malloc (sizeof *obj);
        if (!obj)
@@ -89,6 +90,15 @@ isc_result_t omapi_connect (omapi_object_t *c,
                        return ISC_R_NORESOURCES;
                return ISC_R_UNEXPECTED;
        }
+
+       /* Set the SO_REUSEADDR flag (this should not fail). */
+       flag = 1;
+       if (setsockopt (obj -> socket, SOL_SOCKET, SO_REUSEADDR,
+                       (char *)&flag, sizeof flag) < 0) {
+               omapi_object_dereference ((omapi_object_t **)&obj,
+                                         "omapi_connect");
+               return ISC_R_UNEXPECTED;
+       }
        
        /* Try to connect to the one IP address we were given, or any of
           the IP addresses listed in the host's A RR. */
@@ -225,6 +235,7 @@ int omapi_connection_writefd (omapi_object_t *h)
        omapi_connection_object_t *c;
        if (h -> type != omapi_type_connection)
                return -1;
+       c = (omapi_connection_object_t *)h;
        if (c -> out_bytes)
                return c -> socket;
        else