home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / KERNEL-S / V1.2 / LINUX-1.2 / LINUX-1 / linux / net / inet / utils.c < prev   
Encoding:
C/C++ Source or Header  |  1994-05-23  |  1.8 KB  |  92 lines

  1. /*
  2.  * INET        An implementation of the TCP/IP protocol suite for the LINUX
  3.  *        operating system.  INET is implemented using the  BSD Socket
  4.  *        interface as the means of communication with the user level.
  5.  *
  6.  *        Various kernel-resident INET utility functions; mainly
  7.  *        for format conversion and debugging output.
  8.  *
  9.  * Version:    @(#)utils.c    1.0.7    05/18/93
  10.  *
  11.  * Author:    Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
  12.  *
  13.  * Fixes:
  14.  *        Alan Cox    :    verify_area check.
  15.  *        Alan Cox    :    removed old debugging.
  16.  *
  17.  *
  18.  *        This program is free software; you can redistribute it and/or
  19.  *        modify it under the terms of the GNU General Public License
  20.  *        as published by the Free Software Foundation; either version
  21.  *        2 of the License, or (at your option) any later version.
  22.  */
  23.  
  24. #include <asm/segment.h>
  25. #include <asm/system.h>
  26. #include <linux/types.h>
  27. #include <linux/kernel.h>
  28. #include <linux/sched.h>
  29. #include <linux/string.h>
  30. #include <linux/mm.h>
  31. #include <linux/socket.h>
  32. #include <linux/in.h>
  33. #include <linux/errno.h>
  34. #include <linux/stat.h>
  35. #include <stdarg.h>
  36. #include <linux/inet.h>
  37. #include <linux/netdevice.h>
  38. #include <linux/etherdevice.h>
  39. #include "ip.h"
  40. #include "protocol.h"
  41. #include "tcp.h"
  42. #include <linux/skbuff.h>
  43.  
  44.  
  45. /*
  46.  *    Display an IP address in readable format. 
  47.  */
  48.  
  49. char *in_ntoa(unsigned long in)
  50. {
  51.     static char buff[18];
  52.     char *p;
  53.  
  54.     p = (char *) ∈
  55.     sprintf(buff, "%d.%d.%d.%d",
  56.         (p[0] & 255), (p[1] & 255), (p[2] & 255), (p[3] & 255));
  57.     return(buff);
  58. }
  59.  
  60.  
  61. /*
  62.  *    Convert an ASCII string to binary IP. 
  63.  */
  64.  
  65. unsigned long in_aton(char *str)
  66. {
  67.     unsigned long l;
  68.     unsigned int val;
  69.     int i;
  70.  
  71.     l = 0;
  72.     for (i = 0; i < 4; i++) 
  73.     {
  74.         l <<= 8;
  75.         if (*str != '\0') 
  76.         {
  77.             val = 0;
  78.             while (*str != '\0' && *str != '.') 
  79.             {
  80.                 val *= 10;
  81.                 val += *str - '0';
  82.                 str++;
  83.             }
  84.             l |= val;
  85.             if (*str != '\0') 
  86.                 str++;
  87.         }
  88.     }
  89.     return(htonl(l));
  90. }
  91.  
  92.