26 lines
		
	
	
		
			549 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			549 B
		
	
	
	
		
			C
		
	
	
	
	
	
| 
 | |
| #include <stdlib.h>
 | |
| #include <strings.h>
 | |
| #include "barpainet.h"
 | |
| 
 | |
| int inet_aton (const char * str, struct in_addr * add) {
 | |
| 	const char * pch = str;
 | |
| 	unsigned int add1 = 0, add2 = 0, add3 = 0, add4 = 0;
 | |
| 	
 | |
| 	add1 = atoi(pch);
 | |
| 	pch = strpbrk(pch,".");
 | |
| 	if (pch == 0 || ++pch == 0) goto done;
 | |
| 	add2 = atoi(pch);
 | |
| 	pch = strpbrk(pch,".");
 | |
| 	if (pch == 0 || ++pch == 0) goto done;
 | |
| 	add3 = atoi(pch);
 | |
| 	pch = strpbrk(pch,".");
 | |
| 	if (pch == 0 || ++pch == 0) goto done;
 | |
| 	add4 = atoi(pch);
 | |
| 
 | |
| done:
 | |
| 	add->s_addr=(add4<<24)+(add3<<16)+(add2<<8)+add1;
 | |
| 	
 | |
| 	return 1;	
 | |
| }
 |