root/net/inet/utils.c

/* [previous][next][first][last][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. in_ntoa
  2. in_aton

   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)
     /* [previous][next][first][last][top][bottom][index][help] */
  50 {
  51         static char buff[18];
  52         char *p;
  53 
  54         p = (char *) &in;
  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)
     /* [previous][next][first][last][top][bottom][index][help] */
  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 

/* [previous][next][first][last][top][bottom][index][help] */