]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/plugins/radius/sendserver.c
Merge pull request #103 from Low-power/solaris-mtu-fix
[ppp.git] / pppd / plugins / radius / sendserver.c
index 3612b8d57a88a8f291bd8b84635c5838f7390b09..0c0ef30f8d37f41309cc395a9d3fad5153130f08 100644 (file)
@@ -244,7 +244,7 @@ int rc_send_server (SEND_DATA *data, char *msg, REQUEST_INFO *info)
        sin = (struct sockaddr_in *) & salocal;
        memset ((char *) sin, '\0', (size_t) length);
        sin->sin_family = AF_INET;
-       sin->sin_addr.s_addr = htonl(INADDR_ANY);
+       sin->sin_addr.s_addr = htonl(rc_own_bind_ipaddress());
        sin->sin_port = htons ((unsigned short) 0);
        if (bind (sockfd, (struct sockaddr *) sin, length) < 0 ||
                   getsockname (sockfd, (struct sockaddr *) sin, &length) < 0)
@@ -302,7 +302,7 @@ int rc_send_server (SEND_DATA *data, char *msg, REQUEST_INFO *info)
                FD_SET (sockfd, &readfds);
                if (select (sockfd + 1, &readfds, NULL, NULL, &authtime) < 0)
                {
-                       if (errno == EINTR)
+                       if (errno == EINTR && !got_sigterm)
                                continue;
                        error("rc_send_server: select: %m");
                        memset (secret, '\0', sizeof (secret));