From 762ff8bce5758288a1f55c83b7fec5dcec64fe83 Mon Sep 17 00:00:00 2001 From: "7u83@mail.ru" <7u83@mail.ru@noemail.net> Date: Thu, 1 Mar 2018 23:12:38 +0000 Subject: [PATCH] Compiles with tcc FossilOrigin-Name: ec63b57d34761baede1254385a5abb4ed9d5f3becdbdab91ef596b4399d196fa --- src/Macros.mak | 27 +++++- src/ac/Makefile | 9 +- src/cw/Makefile | 26 ++---- src/cw/dbg.c | 3 + src/cw/dtls.h | 14 +-- src/cw/dtls_gnutls.c | 1 + src/cw/dtls_gnutls_accept.c | 1 + src/cw/dtls_gnutls_get_cipher.c | 2 +- src/cw/log_syslog.c | 1 + src/cw/mbag.c | 158 ++++++++++++++++++++++++++++++++ src/cw/mbag.h | 144 ++++------------------------- 11 files changed, 223 insertions(+), 163 deletions(-) diff --git a/src/Macros.mak b/src/Macros.mak index d58ae344..c99e06d1 100644 --- a/src/Macros.mak +++ b/src/Macros.mak @@ -19,7 +19,32 @@ endif ifndef ARCH - ARCH = $(shell $(CC) -dumpmachine) + ARCH = $(shell uname -m) endif +ifeq ($(CC),clang) +LDFLAGS += -g -L/usr/local/lib +CFLAGS += -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -fPIC -g -O0 -D_REENTRANT -I /usr/local/include -I../ +LD = gcc +endif + +ifeq ($(CC),gcc) +LDFLAGS += -g -L/usr/local/lib +CFLAGS += -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -fPIC -g -O0 -D_REENTRANT -I /usr/local/include -I../ +LD = gcc +endif + +ifeq ($(CC),tcc) +LDFLAGS += -g -L/usr/local/lib +CFLAGS += -Wall -Wunusupported -Wimplicit-function-declaration -I /usr/local/include -I../ +LD = tcc +endif + + + +CFLAGS += -DWITH_IPV6 -DWITH_RMAC_SUPPORT + + + + diff --git a/src/ac/Makefile b/src/ac/Makefile index 53bfbe2b..91a622cc 100644 --- a/src/ac/Makefile +++ b/src/ac/Makefile @@ -1,12 +1,13 @@ -include ../Macros.mak include ../Config.mak include ../ACConfig.mak -include ../Config.local.mak +-include ../ACConfig.local.mak +include ../Macros.mak LIBARCHDIR=../../lib/$(ARCH) -LDFLAGS+=-g -D_REENTRANT -L/usr/local/lib -L$(LIBARCHDIR) +LDFLAGS+=-g -L/usr/local/lib -L$(LIBARCHDIR) CFLAGS += -W -g -O0 -D_REENTRANT -DIPV6 -I/usr/local/include -I../ -DSYS_ARCH=\"${ARCH}\" @@ -80,7 +81,7 @@ all: $(AC_NAME) $(AC_NAME): $(AC_OBJS) # $(CC) $(AC_OBJS) ../mod/modload_ac.o -o $(AC_NAME) $(LDFLAGS) $(LIBS) - $(CC) $(AC_OBJS) -o $(AC_NAME) $(LDFLAGS) $(LIBS) + $(LD) $(AC_OBJS) -o $(AC_NAME) $(LDFLAGS) $(LIBS) clean: @@ -90,6 +91,6 @@ clean_deps: $(AC_DEPS) deps: $(AC_SRC) - $(CC) -MD -E $(AC_SRCS) $(CFLAGS) >/dev/null + $(LD) -MD -E $(AC_SRCS) $(CFLAGS) >/dev/null -include $(AC_DEPS) diff --git a/src/cw/Makefile b/src/cw/Makefile index f6a71c52..fed02ce9 100644 --- a/src/cw/Makefile +++ b/src/cw/Makefile @@ -1,6 +1,6 @@ -include ../Macros.mak include ../CWConfig.mak -include ../Config.local.mak +include ../Macros.mak LIBDIR := ../../lib @@ -10,8 +10,6 @@ OBJDIR := ../../obj/cw/$(ARCH) SNAME := $(LIBARCHDIR)/libcw.a DNAME := $(LIBARCHDIR)/libcw.so -LDFLAGS+=-g -D_REENTRANT -L/usr/local/lib - LIBS= ifeq ($(WITH_OPENSSL),1) @@ -40,24 +38,16 @@ endif SRC=$(wildcard *.c) OBJS=$(patsubst %.c,%.o,$(SRC)) -#O:=$(OBJS); - OBJS:=$(patsubst %.o,$(OBJDIR)/%.o,$(OBJS)) all: $(SNAME) $(DNAME) -#CFLAGS = -D_XOPEN_SOURCE=500 -std=c90 -pedantic -Wall -fPIC -g -O0 -D_REENTRANT -DWITH_IPV6 -DWITH_RMAC_SUPPORT -I /usr/local/include -I../ -CFLAGS = -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wall -fPIC -g -O0 -D_REENTRANT -DWITH_IPV6 -DWITH_RMAC_SUPPORT -I /usr/local/include -I../ - CFLAGS += $(GNUTLS_CFLAGS) \ -DWITH_CW_LOG \ -DWITH_CW_LOG_DEBUG \ - -DWITH_DTLS \ - $(XINCLUDE)\ - -I $(OPENSSLINC)\ - -Werror + -DWITH_DTLS $(OBJDIR)/%.o:%.c @@ -65,15 +55,15 @@ $(OBJDIR)/%.o:%.c @echo " $(CC) "$< @$(CC) -c $(CFLAGS) $< -o $@ -$(SNAME) : $(OBJS) $(MODOBJS) +$(SNAME) : $(OBJS) @mkdir -p $(LIBARCHDIR) - @echo " AR $(SNAME)" - @$(AR) rcs $(SNAME) $(OBJS) $(MODOBJS) + @echo " $(AR) $(SNAME)" + @$(AR) rcs $(SNAME) $(OBJS) -$(DNAME) : $(OBJS) $(MODOBJS) +$(DNAME) : $(OBJS) @mkdir -p $(LIBARCHDIR) - @echo " $(CC) $(DNAME)" - @$(CC) $(LDFLAGS) -shared -o $(DNAME) $(OBJS) $(MODOBJS) $(LIBS) + @echo " $(LD) $(DNAME)" + @$(LD) $(LDFLAGS) -shared -o $(DNAME) $(OBJS) $(LIBS) SRCS = $(OBJS:.o=.c) diff --git a/src/cw/dbg.c b/src/cw/dbg.c index f58884a8..b50fd782 100644 --- a/src/cw/dbg.c +++ b/src/cw/dbg.c @@ -25,6 +25,7 @@ * @file Debugging Functions * @brief Various debug functions. */ +#include #include "capwap.h" #include "dbg.h" @@ -39,6 +40,8 @@ #include "cw.h" #include "message_set.h" + + /** *@addtogroup DBG *@{ diff --git a/src/cw/dtls.h b/src/cw/dtls.h index baaf5c8f..1177e057 100644 --- a/src/cw/dtls.h +++ b/src/cw/dtls.h @@ -19,19 +19,7 @@ #define __CW_DTLS_H -#include -#include "conn.h" - - -struct dtls_ssl_cert -{ - int size; - int type; - uint8_t * data; -}; - -extern int dtls_bio_read(struct conn *conn, char *out, int maxlen); -extern int dtls_bio_write(struct conn * conn, const char *data, int len); +#include "dtls_common.h" diff --git a/src/cw/dtls_gnutls.c b/src/cw/dtls_gnutls.c index 103276a1..723f04d7 100644 --- a/src/cw/dtls_gnutls.c +++ b/src/cw/dtls_gnutls.c @@ -22,6 +22,7 @@ #include #include +#include "dtls_common.h" #include "dtls_gnutls.h" #include "conn.h" diff --git a/src/cw/dtls_gnutls_accept.c b/src/cw/dtls_gnutls_accept.c index c4fb174a..33ac8a3d 100644 --- a/src/cw/dtls_gnutls_accept.c +++ b/src/cw/dtls_gnutls_accept.c @@ -29,6 +29,7 @@ #include "log.h" #include "sock.h" #include "capwap.h" +#include "dtls_common.h" #include "dtls_gnutls.h" #include "timer.h" diff --git a/src/cw/dtls_gnutls_get_cipher.c b/src/cw/dtls_gnutls_get_cipher.c index 4a921d56..1b98e11a 100644 --- a/src/cw/dtls_gnutls_get_cipher.c +++ b/src/cw/dtls_gnutls_get_cipher.c @@ -1,5 +1,5 @@ - +#include "dtls_common.h" #include "dtls_gnutls.h" const char *dtls_gnutls_get_cipher(struct conn *conn) diff --git a/src/cw/log_syslog.c b/src/cw/log_syslog.c index 9bb8a683..628add20 100644 --- a/src/cw/log_syslog.c +++ b/src/cw/log_syslog.c @@ -16,6 +16,7 @@ */ +#include #include "log.h" diff --git a/src/cw/mbag.c b/src/cw/mbag.c index e2ff03e1..bb48b3b2 100644 --- a/src/cw/mbag.c +++ b/src/cw/mbag.c @@ -237,3 +237,161 @@ struct mbag_item *strmbag_item_create(mbag_t s, char *name) */ /**@}*/ + + + + + + + + + + + + + +int mbag_set(mbag_t t,mbag_item_t *is) +{ + mavl_del(t,is); + mavl_add(t,is); + return 1; + +/* + struct mbag_item *i = mavl_get(s, is); + if (i) { + mbag_del_data(i); + return i; + } + mavl_add(t,is); +*/ +} + +int mbag_set_byte(mbag_t s, const char *id, uint8_t byte) +{ + struct mbag_item *i = mbag_item_create(s, id); + if (!i) + return 0; + i->byte = byte; + i->type = &mbag_type_byte; + return 1; +} + +struct mbag_item * mbag_set_word(mbag_t s, const char *id, uint16_t word) +{ + struct mbag_item *i = mbag_item_create(s, id); + if (!i) + return 0; + i->word = word; + i->type = &mbag_type_word; + return i; +} + + + + +struct mbag_item * mbag_set_dword(mbag_t s, const char *id, uint32_t dword) +{ + struct mbag_item *i = mbag_item_create(s, id); + if (!i) + return NULL; + i->dword = dword; + i->type = &mtype_dword; + return i; +} + + +int mbag_i_set_mbag(mbag_t s, uint32_t id, mbag_t mbag) +{ + struct mbag_item *i = mbag_i_item_create(s, id); + if (!i) + return 0; + i->data = mbag; + i->type = &mbag_type_mbag; + return 1; +} + +int mbag_set_mbag(mbag_t s, const char *id, mbag_t mbag) +{ + struct mbag_item *i = mbag_item_create(s, id); + if (!i) + return 0; + i->data = mbag; + i->type = &mbag_type_mbag; + return 1; +} + +int mbag_set_data(mbag_t s, const char *id, const struct mbag_typedef *type, void *data) +{ + struct mbag_item *i = mbag_item_create(s, id); + if (!i) + return 0; + i->data = data; + i->type = type; + return 1; + + +} + + +bstrv_t mbag_set_bstrv(mbag_t s, const char *id, uint32_t vendor_id, + uint8_t * version, int len) +{ + mbag_item_t *i = mbag_item_create(s, id); + if (!i) + return NULL; + + i->type = MBAG_VENDORSTR; + i->data = bstrv_create(vendor_id,version,len); + return i->data; +} + + + + + + + + + + + + + +mbag_item_t *mbag_get(mbag_t s, const char *id) +{ + mbag_item_t i; + i.id = id; + i.type=0; + return mavl_get(s, &i); +} + + +mbag_item_t *mbag_i_get(mbag_t s, uint32_t id) +{ + mbag_item_t i; + i.iid = id; + i.type=0; + return mavl_get(s, &i); +} + + + +void mbag_del(mbag_t s,const char *id) +{ + mbag_item_t i; + i.id = id; + i.type=0; + mavl_del(s, &i); +} + +void * mbag_get_data(mbag_t s, const char *id, const struct mbag_typedef * type, void * def) +{ + struct mbag_item *i = mbag_get(s, id); + if (!i) + return def; + if (i->type != type) + return def; + return i->data; +} + + diff --git a/src/cw/mbag.h b/src/cw/mbag.h index 2a2d27b8..96d80761 100644 --- a/src/cw/mbag.h +++ b/src/cw/mbag.h @@ -176,100 +176,15 @@ struct mbag_item *mbag_item_create(mbag_t s, const char *id); struct mbag_item *mbag_i_item_create(mbag_t s, uint32_t id); -static inline int mbag_set(mbag_t t,mbag_item_t *is) -{ - mavl_del(t,is); - mavl_add(t,is); - return 1; - -/* - struct mbag_item *i = mavl_get(s, is); - if (i) { - mbag_del_data(i); - return i; - } - mavl_add(t,is); -*/ -} - -static inline int mbag_set_byte(mbag_t s, const char *id, uint8_t byte) -{ - struct mbag_item *i = mbag_item_create(s, id); - if (!i) - return 0; - i->byte = byte; - i->type = &mbag_type_byte; - return 1; -} - -static inline struct mbag_item * mbag_set_word(mbag_t s, const char *id, uint16_t word) -{ - struct mbag_item *i = mbag_item_create(s, id); - if (!i) - return 0; - i->word = word; - i->type = &mbag_type_word; - return i; -} - - - - -static inline struct mbag_item * mbag_set_dword(mbag_t s, const char *id, uint32_t dword) -{ - struct mbag_item *i = mbag_item_create(s, id); - if (!i) - return NULL; - i->dword = dword; - i->type = &mtype_dword; - return i; -} - - -static inline int mbag_i_set_mbag(mbag_t s, uint32_t id, mbag_t mbag) -{ - struct mbag_item *i = mbag_i_item_create(s, id); - if (!i) - return 0; - i->data = mbag; - i->type = &mbag_type_mbag; - return 1; -} - -static inline int mbag_set_mbag(mbag_t s, const char *id, mbag_t mbag) -{ - struct mbag_item *i = mbag_item_create(s, id); - if (!i) - return 0; - i->data = mbag; - i->type = &mbag_type_mbag; - return 1; -} - -static inline int mbag_set_data(mbag_t s, const char *id, const struct mbag_typedef *type, void *data) -{ - struct mbag_item *i = mbag_item_create(s, id); - if (!i) - return 0; - i->data = data; - i->type = type; - return 1; - - -} - - -static inline bstrv_t mbag_set_bstrv(mbag_t s, const char *id, uint32_t vendor_id, - uint8_t * version, int len) -{ - mbag_item_t *i = mbag_item_create(s, id); - if (!i) - return NULL; - - i->type = MBAG_VENDORSTR; - i->data = bstrv_create(vendor_id,version,len); - return i->data; -} +bstrv_t mbag_set_bstrv(mbag_t s, const char *id, uint32_t vendor_id, + uint8_t * version, int len); +int mbag_set_data(mbag_t s, const char *id, const struct mbag_typedef *type, void *data); +int mbag_set_mbag(mbag_t s, const char *id, mbag_t mbag); +int mbag_i_set_mbag(mbag_t s, uint32_t id, mbag_t mbag); +struct mbag_item * mbag_set_dword(mbag_t s, const char *id, uint32_t dword); +struct mbag_item * mbag_set_word(mbag_t s, const char *id, uint16_t word); +int mbag_set_byte(mbag_t s, const char *id, uint8_t byte); +int mbag_set(mbag_t t,mbag_item_t *is); mbag_item_t *mbag_item_new(mbagtype_t type); @@ -281,42 +196,19 @@ mbag_item_t *mbag_item_new(mbagtype_t type); #define mbag_set_bstr16(m,i,d) mbag_set_data(m,i,MBAG_BSTR16,d) -static inline mbag_item_t *mbag_get(mbag_t s, const char *id) -{ - mbag_item_t i; - i.id = id; - i.type=0; - return mavl_get(s, &i); -} - - -static inline mbag_item_t *mbag_i_get(mbag_t s, uint32_t id) -{ - mbag_item_t i; - i.iid = id; - i.type=0; - return mavl_get(s, &i); -} -static inline void mbag_del(mbag_t s,const char *id) -{ - mbag_item_t i; - i.id = id; - i.type=0; - mavl_del(s, &i); -} +void * mbag_get_data(mbag_t s, const char *id, const struct mbag_typedef * type, void * def); +void mbag_del(mbag_t s,const char *id); +mbag_item_t *mbag_i_get(mbag_t s, uint32_t id); +mbag_item_t *mbag_get(mbag_t s, const char *id); + + + + + -static inline void * mbag_get_data(mbag_t s, const char *id, const struct mbag_typedef * type, void * def) -{ - struct mbag_item *i = mbag_get(s, id); - if (!i) - return def; - if (i->type != type) - return def; - return i->data; -} #define mbag_get_bstr(m,i,d) mbag_get_data(m,i,MBAG_BSTR,d) #define mbag_get_bstr16(m,i,d) mbag_get_data(m,i,MBAG_BSTR16,d)