at v2.6.12 1.3 kB view raw
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: $Id: utils.c,v 1.8 2000/10/03 07:29:01 anton Exp $ 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 * Andi Kleen : add net_ratelimit() 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 <linux/module.h> 25#include <linux/types.h> 26#include <asm/byteorder.h> 27 28/* 29 * Convert an ASCII string to binary IP. 30 */ 31 32__u32 in_aton(const char *str) 33{ 34 unsigned long l; 35 unsigned int val; 36 int i; 37 38 l = 0; 39 for (i = 0; i < 4; i++) 40 { 41 l <<= 8; 42 if (*str != '\0') 43 { 44 val = 0; 45 while (*str != '\0' && *str != '.') 46 { 47 val *= 10; 48 val += *str - '0'; 49 str++; 50 } 51 l |= val; 52 if (*str != '\0') 53 str++; 54 } 55 } 56 return(htonl(l)); 57} 58 59EXPORT_SYMBOL(in_aton);