summaryrefslogtreecommitdiffstats
path: root/release
diff options
context:
space:
mode:
authorabial <abial@FreeBSD.org>1998-10-09 12:42:20 +0000
committerabial <abial@FreeBSD.org>1998-10-09 12:42:20 +0000
commit12ff33ff94404e3a36b918594a09e6434ab11142 (patch)
tree7408adf0433293fa6bda52648fd65a855b6bb3de /release
parent918f35a74e867b71feeb432d0b25785e0da496dd (diff)
downloadFreeBSD-src-12ff33ff94404e3a36b918594a09e6434ab11142.zip
FreeBSD-src-12ff33ff94404e3a36b918594a09e6434ab11142.tar.gz
Fix for bad calculation of netmask bits. I'm amazed it worked thus far...
Diffstat (limited to 'release')
-rw-r--r--release/picobsd/tinyware/ns/ns.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/release/picobsd/tinyware/ns/ns.c b/release/picobsd/tinyware/ns/ns.c
index 7a28323..e8dd253 100644
--- a/release/picobsd/tinyware/ns/ns.c
+++ b/release/picobsd/tinyware/ns/ns.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: ns.c,v 1.3 1998/09/02 13:11:23 abial Exp $
+ * $Id: ns.c,v 1.4 1998/09/07 06:41:14 abial Exp $
*/
@@ -99,10 +99,13 @@ sock_ntop(const struct sockaddr *sa, size_t salen)
switch (sa->sa_family) {
case 255: {
struct sockaddr_in *sin = (struct sockaddr_in *) sa;
+ u_long mask;
int i;
i=0;
- while(sin->sin_addr.s_addr & (0x800000>>i)) i++;
+ mask=ntohl(sin->sin_addr.s_addr);
+
+ while(mask & (0x80000000>>i)) i++;
sprintf(str,"/%d",i);
return(str);
}
OpenPOWER on IntegriCloud