/* * Copyright (C) James R. Leu 2000 * jleu@mindspring.com * * This software is covered under the LGPL, for more * info check out http://www.gnu.org/copyleft/lgpl.html */ #include #include "ldp_struct.h" #include "ldp_assert.h" #include "ldp_inet_addr.h" #include "ldp_mm_impl.h" ldp_inet_addr* ldp_inet_addr_create() { ldp_inet_addr* ia = (ldp_inet_addr*)ldp_malloc(sizeof(ldp_inet_addr)); if(ia != NULL) memset(ia,0,sizeof(ldp_inet_addr)); return ia; } int ldp_inet_addr_compare(ldp_inet_addr *a,ldp_inet_addr *b) { if(a->protocol != b->protocol) return -2; switch(a->protocol) { case AF_INET: if(a->u.ipv4 == b->u.ipv4) return 0; if(a->u.ipv4 > b->u.ipv4) return 1; else return -1; break; default: LDP_ASSERT(0); } return -2; } ldp_bool ldp_inet_addr_is_equal(ldp_inet_addr *a,ldp_inet_addr *b) { LDP_ASSERT(a && b); if(a->protocol == b->protocol) { switch(a->protocol) { case AF_INET: if(a->u.ipv4 == b->u.ipv4) return LDP_TRUE; break; default: LDP_ASSERT(0); } } return LDP_FALSE; }