From f759e52e11ee649677ee1fdf74e9e6a8557289e4 Mon Sep 17 00:00:00 2001 From: ian Date: Sun, 8 Nov 1998 16:29:54 +0000 Subject: [PATCH] Compiles and links. --- src/Makefile | 2 +- src/Makefile.in | 2 +- src/general.c | 6 ++++++ src/query.c | 14 +++++++++++--- src/types.c | 12 ++++++------ 5 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/Makefile b/src/Makefile index 4096d84..59ccf54 100644 --- a/src/Makefile +++ b/src/Makefile @@ -21,7 +21,7 @@ WARNS= -Wall -Wmissing-prototypes -Wwrite-strings -Wstrict-prototypes \ -Wcast-qual -Wpointer-arith WERROR=-Werror -LIBOBJS= event.o query.o setup.o transmit.o general.o reply.o parse.o +LIBOBJS= event.o query.o setup.o transmit.o general.o reply.o parse.o types.o ALLOBJS= $(LIBOBJS) dtest.o all: dtest diff --git a/src/Makefile.in b/src/Makefile.in index 4096d84..59ccf54 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -21,7 +21,7 @@ WARNS= -Wall -Wmissing-prototypes -Wwrite-strings -Wstrict-prototypes \ -Wcast-qual -Wpointer-arith WERROR=-Werror -LIBOBJS= event.o query.o setup.o transmit.o general.o reply.o parse.o +LIBOBJS= event.o query.o setup.o transmit.o general.o reply.o parse.o types.o ALLOBJS= $(LIBOBJS) dtest.o all: dtest diff --git a/src/general.c b/src/general.c index 9db4bb4..09b63e6 100644 --- a/src/general.c +++ b/src/general.c @@ -123,6 +123,12 @@ int adns__vbuf_append(vbuf *vb, const byte *data, int len) { return 1; } +int adns__vbuf_appendstr(vbuf *vb, const char *data) { + int l; + l= strlen(data)+1; + return adns__vbuf_append(vb,data,l); +} + void adns__vbuf_free(vbuf *vb) { free(vb->buf); adns__vbuf_init(vb); diff --git a/src/query.c b/src/query.c index 7c977bb..1d4dc5f 100644 --- a/src/query.c +++ b/src/query.c @@ -158,23 +158,31 @@ void adns_cancel(adns_query query) { abort(); /* fixme */ } -void *adns__alloc_interim(adns_query qu, size_t sz) { +static void *alloc_common(adns_query qu, size_t sz) { allocnode *an; if (!sz) return qu; /* Any old pointer will do */ assert(!qu->final_allocspace); - sz= MEM_ROUND(sz); an= malloc(MEM_ROUND(MEM_ROUND(sizeof(*an)) + sz)); if (!an) { adns__query_fail(qu,adns_s_nolocalmem); return 0; } - qu->interim_allocd += sz; an->next= qu->allocations; qu->allocations= an; return (byte*)an + MEM_ROUND(sizeof(*an)); } +void *adns__alloc_interim(adns_query qu, size_t sz) { + sz= MEM_ROUND(sz); + qu->interim_allocd += sz; + return alloc_common(qu,sz); +} + +void *adns__alloc_mine(adns_query qu, size_t sz) { + return alloc_common(qu,MEM_ROUND(sz)); +} + void *adns__alloc_final(adns_query qu, size_t sz) { /* When we're in the _final stage, we _subtract_ from interim_alloc'd * each allocation, and use final_allocspace to point to the next free diff --git a/src/types.c b/src/types.c index 45741fa..5219ff5 100644 --- a/src/types.c +++ b/src/types.c @@ -22,7 +22,7 @@ #include "internal.h" -static adns_status rp_inaddr(adns_state ads, adns_query qu, int serv, +static adns_status rp_inaddr(adns_query qu, int serv, const byte *dgram, int dglen, int cbyte, int max, void *store_r) { struct in_addr *dr= store_r; @@ -32,10 +32,10 @@ static adns_status rp_inaddr(adns_state ads, adns_query qu, int serv, return adns_s_ok; } -static adns_status rmf_null(adns_state ads, adns_query qu, void *data) { } +static void rmf_null(adns_query qu, void *data) { } -#define TYPE_SF(size,func,free) size, rp_#func, rmf_#free -#define TYPE_SN(size,func) size, rp_#func, rmf_null +#define TYPE_SF(size,func,free) size, rp_##func, rmf_##free +#define TYPE_SN(size,func) size, rp_##func, rmf_null #define TYPESZ_M(member) (sizeof(((adns_answer*)0)->rrs.member)) #define TYPE_MF(member,parse) TYPE_SF(TYPESZ_M(member),parse,member) #define TYPE_MN(member,parse) TYPE_SN(TYPESZ_M(member),parse) @@ -72,8 +72,8 @@ static const typeinfo typeinfos[] = { #endif }; -const typeinfo adns__findtype(adns_rrtype type) { - const typeinfo *begin, *end; +const typeinfo *adns__findtype(adns_rrtype type) { + const typeinfo *begin, *end, *mid; begin= typeinfos; end= typeinfos+(sizeof(typeinfos)/sizeof(typeinfo)); -- 2.30.2