X-Git-Url: https://git.distorted.org.uk/~mdw/secnet/blobdiff_plain/32654a316b5925914f5e5f481971d47f9728edab..ee2536e4af21ca16d5711d1b848b04d0958f481b:/secnet.h diff --git a/secnet.h b/secnet.h index eb250a4..83ee97f 100644 --- a/secnet.h +++ b/secnet.h @@ -1,4 +1,22 @@ /* Core interface of secnet, to be used by all modules */ +/* + * This file is part of secnet. + * See README for full list of copyright holders. + * + * secnet is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version d of the License, or + * (at your option) any later version. + * + * secnet is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * version 3 along with secnet; if not, see + * https://www.gnu.org/licenses/gpl.html. + */ #ifndef secnet_h #define secnet_h @@ -180,6 +198,16 @@ extern void *safe_malloc_ary(size_t size, size_t count, const char *message); extern void *safe_realloc_ary(void *p, size_t size, size_t count, const char *message); +#define NEW(p) \ + ((p)=safe_malloc(sizeof(*(p)), \ + __FILE__ ":" #p)) +#define NEW_ARY(p,count) \ + ((p)=safe_malloc_ary(sizeof(*(p)),(count), \ + __FILE__ ":" #p "[" #count "]")) +#define REALLOC_ARY(p,count) \ + ((p)=safe_realloc_ary((p),sizeof(*(p)),(count), \ + __FILE__ ":" #p "[" #count "]")) + void setcloexec(int fd); /* cannot fail */ void setnonblock(int fd); /* cannot fail */ void pipe_cloexec(int fd[2]); /* pipe(), setcloexec() twice; cannot fail */ @@ -431,7 +459,8 @@ struct comm_if { comm_addr_to_string_fn *addr_to_string; }; -bool_t iaddr_equal(const union iaddr *ia, const union iaddr *ib); +bool_t iaddr_equal(const union iaddr *ia, const union iaddr *ib, + bool_t ignoreport); static inline const char *comm_addr_to_string(const struct comm_addr *ca) { @@ -441,7 +470,7 @@ static inline const char *comm_addr_to_string(const struct comm_addr *ca) static inline bool_t comm_addr_equal(const struct comm_addr *a, const struct comm_addr *b) { - return a->comm==b->comm && iaddr_equal(&a->ia,&b->ia); + return a->comm==b->comm && iaddr_equal(&a->ia,&b->ia,False); } /* LOG interface */