Skip to content
Snippets Groups Projects
net.c 23.1 KiB
Newer Older
  • Learn to ignore specific revisions
  • Wolfgang Denk's avatar
    Wolfgang Denk committed
    	ip->udp_dst  = htons(dport);
    	ip->udp_len  = htons(8 + len);
    	ip->udp_xsum = 0;
    	ip->ip_sum   = ~NetCksum((uchar *)ip, IP_HDR_SIZE_NO_UDP / 2);
    }
    
    void copy_filename (uchar *dst, uchar *src, int size)
    {
    	if (*src && (*src == '"')) {
    		++src;
    		--size;
    	}
    
    	while ((--size > 0) && *src && (*src != '"')) {
    		*dst++ = *src++;
    	}
    	*dst = '\0';
    }
    
    #endif /* CFG_CMD_NET */
    
    void ip_to_string (IPaddr_t x, char *s)
    {
        x = ntohl(x);
        sprintf (s,"%d.%d.%d.%d",
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	(int)((x >> 24) & 0xff),
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	(int)((x >> 16) & 0xff),
    	(int)((x >>  8) & 0xff),
    	(int)((x >>  0) & 0xff)
        );
    }
    
    
    IPaddr_t string_to_ip(char *s)
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    {
    	IPaddr_t addr;
    
    	char *e;
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	int i;
    
    
    	if (s == NULL)
    		return(0);
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    	for (addr=0, i=0; i<4; ++i) {
    		ulong val = s ? simple_strtoul(s, &e, 10) : 0;
    		addr <<= 8;
    		addr |= (val & 0xFF);
    		if (s) {
    			s = (*e) ? e+1 : e;
    		}
    	}
    
    	return (htonl(addr));
    }
    
    
    void print_IPaddr (IPaddr_t x)
    {
        char tmp[16];
    
        ip_to_string(x, tmp);
    
        puts(tmp);
    }
    
    IPaddr_t getenv_IPaddr (char *var)
    {
    	return (string_to_ip(getenv(var)));
    }