#include <stdio.h>
#include <string.h>
#include "ipaddr.h"
+#include "util.h"
#define DEFAULT_ALLOC 2
#define EXTEND_ALLOC_BY 4
if (l>a->alloc) {
assert(a->alloc < (int)(INT_MAX/sizeof(*nd))-EXTEND_ALLOC_BY);
na=a->alloc+EXTEND_ALLOC_BY;
- nd=realloc(a->list,sizeof(*nd)*na);
- if (!nd) {
- fatal_perror("subnet_list_set_len: realloc");
- }
+ nd=safe_realloc_ary(a->list,sizeof(*nd),na,"subnet_list_set_len");
a->alloc=na;
a->list=nd;
}
if (l>a->a) {
assert(a->a < INT_MAX-EXTEND_ALLOC_BY);
na=a->a+EXTEND_ALLOC_BY;
- nd=realloc(a->d,sizeof(*nd)*na);
- if (!nd) {
- fatal_perror("ipset_set_len: realloc");
- }
+ nd=safe_realloc_ary(a->d,sizeof(*nd),na,"ipset_set_len");
a->a=na;
a->d=nd;
}
a->d[a->l-1]=r;
}
-#define max(a,b) (a>b?a:b)
struct ipset *ipset_union(struct ipset *a, struct ipset *b)
{
struct ipset *c;
ipset_append_range(c,r);
else if (r.a <= c->d[c->l-1].b+1)
/* Extends (or is consumed by) the last range */
- c->d[c->l-1].b=max(c->d[c->l-1].b, r.b);
+ c->d[c->l-1].b=MAX(c->d[c->l-1].b, r.b);
else
ipset_append_range(c,r);
}
return s;
}
-uint32_t string_item_to_ipaddr(item_t *i, cstring_t desc)
+uint32_t string_item_to_ipaddr(const item_t *i, cstring_t desc)
{
uint32_t a, b, c, d;
int match;