diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d613f22..f5f941d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -108,6 +108,8 @@ Developers may need to change their code ### Minor features +* Added -H option to clixon_netconf: Do not require hello before request +* CLIXON_STATIC_PLUGIN to support statically linked plugins * JSON errors are now labelled with JSON and not XML * Restconf native HTTP/2: * Added option `CLICON_RESTCONF_HTTP2_PLAIN` for non-TLS http diff --git a/apps/Makefile.in b/apps/Makefile.in index f4165f15..eb1baab1 100644 --- a/apps/Makefile.in +++ b/apps/Makefile.in @@ -35,10 +35,6 @@ VPATH = @srcdir@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ -CC = @CC@ -CFLAGS = @CFLAGS@ -LDFLAGS = @LDFLAGS@ -LIBS = @LIBS@ with_restconf = @with_restconf@ SHELL = /bin/sh diff --git a/apps/backend/Makefile.in b/apps/backend/Makefile.in index 2ee7056e..0860f384 100644 --- a/apps/backend/Makefile.in +++ b/apps/backend/Makefile.in @@ -164,10 +164,12 @@ test.c : test: test.c $(LIBOBJ) $(MYLIB) $(CC) $(INCLUDES) $(LDFLAGS) $< $(LIBOBJ) -L. $(MYLIB) $(LIBS) -o $@ -$(APPL) : $(APPOBJ) $(MYLIB) $(LIBDEPS) +# Note LIBDEPS is in lib/src and will always be remade du to a date dependency ifeq ($(LINKAGE),dynamic) +$(APPL) : $(APPOBJ) $(MYLIB) $(LIBDEPS) $(CC) $(LDFLAGS) $(APPOBJ) -L. $(MYLIB) $(LIBS) -o $@ else +$(APPL) : $(APPOBJ) $(LIBOBJ) $(LIBDEPS) $(CC) $(LDFLAGS) $(APPOBJ) -L. $(LIBOBJ) $(LIBS) -o $@ endif diff --git a/apps/backend/backend_get.c b/apps/backend/backend_get.c index a91a679e..6e80a7b5 100644 --- a/apps/backend/backend_get.c +++ b/apps/backend/backend_get.c @@ -533,7 +533,9 @@ get_list_pagination(clicon_handle h, /* sort */ if (ret && (x = xml_find_type(xe, NULL, "sort", CX_ELMNT)) != NULL) sort = xml_body(x); - if (sort) ; /* XXX */ + if (sort) { + /* XXX: nothing yet */ + } /* where */ if (ret && (x = xml_find_type(xe, NULL, "where", CX_ELMNT)) != NULL) where = xml_body(x); diff --git a/apps/cli/Makefile.in b/apps/cli/Makefile.in index 85a6a76b..8152e4b2 100644 --- a/apps/cli/Makefile.in +++ b/apps/cli/Makefile.in @@ -43,11 +43,11 @@ CPPFLAGS = @CPPFLAGS@ ifeq ($(LINKAGE),dynamic) CPPFLAGS += -fPIC endif -SH_SUFFIX = @SH_SUFFIX@ +SH_SUFFIX = .so INSTALLFLAGS = @INSTALLFLAGS@ LDFLAGS = @LDFLAGS@ ifneq ($(LINKAGE),dynamic) -LDFLAGS += -rdynamic -L. +LDFLAGS += -rdynamic -L. # -rdynamic for using -ldl endif prefix = @prefix@ @@ -165,11 +165,13 @@ test.c : test: test.c $(LIBOBJ) $(MYLIB) $(CC) $(INCLUDES) $(LDFLAGS) $< $(LIBOBJ) -L. $(MYLIB) $(LIBS) -o $@ +# Note LIBDEPS is in lib/src and will always be remade du to a date dependency $(APPL): $(APPOBJ) $(MYLIB) $(LIBDEPS) ifeq ($(LINKAGE),dynamic) $(CC) $(LDFLAGS) $(APPOBJ) -L. $(MYLIB) $(LIBS) -o $@ else - $(CC) $(LDFLAGS) $(APPOBJ) $(EXTRAS) -L. $(LIBOBJ) $(LIBS) -o $@ + # Force static libcligen.a linking + $(CC) $(LDFLAGS) $(APPOBJ) $(EXTRAS) -L. $(LIBOBJ) $(DESTDIR)$(libdir)/libcligen.a $(LIBS) -o $@ endif $(MYLIBDYNAMIC) : $(LIBOBJ) $(LIBDEPS) diff --git a/apps/netconf/Makefile.in b/apps/netconf/Makefile.in index e2d4214a..afe7b396 100644 --- a/apps/netconf/Makefile.in +++ b/apps/netconf/Makefile.in @@ -53,7 +53,7 @@ sysconfdir = @sysconfdir@ includedir = @includedir@ HOST_VENDOR = @host_vendor@ -SH_SUFFIX = @SH_SUFFIX@ +SH_SUFFIX = .so CLIXON_MAJOR = @CLIXON_VERSION_MAJOR@ CLIXON_MINOR = @CLIXON_VERSION_MINOR@ @@ -147,6 +147,7 @@ uninstall: .c.o: $(CC) $(INCLUDES) $(CPPFLAGS) -D__PROGRAM__=\"$(APPL)\" $(CFLAGS) -c $< +# Note LIBDEPS is in lib/src and will always be remade du to a date dependency $(APPL) : $(APPOBJ) $(MYLIB) $(LIBDEPS) $(CC) $(LDFLAGS) $(APPOBJ) -L. $(MYLIB) $(LIBS) -o $@ diff --git a/apps/restconf/Makefile.in b/apps/restconf/Makefile.in index 93d4a8d9..c5565952 100644 --- a/apps/restconf/Makefile.in +++ b/apps/restconf/Makefile.in @@ -62,7 +62,7 @@ wwwdir = @wwwdir@ # one of fcgi or native: with_restconf = @with_restconf@ -SH_SUFFIX = @SH_SUFFIX@ +SH_SUFFIX = .so CLIXON_MAJOR = @CLIXON_VERSION_MAJOR@ CLIXON_MINOR = @CLIXON_VERSION_MINOR@ @@ -185,13 +185,15 @@ uninstall: .c.o: $(CC) $(INCLUDES) -D__PROGRAM__=\"clixon_restconf\" $(CPPFLAGS) $(CFLAGS) -c $< -$(APPL) : $(APPOBJ) $(MYLIBLINK) $(LIBDEPS) +# Note LIBDEPS is in lib/src and will always be remade du to a date dependency +$(APPL) : $(APPOBJ) $(MYLIB) $(LIBDEPS) $(CC) $(LDFLAGS) $(APPOBJ) -L. $(MYLIB) $(LIBS) -o $@ -$(MYLIBDYNAMIC) : $(LIBOBJ) $(LIBDEPS) ifeq ($(HOST_VENDOR),apple) +$(MYLIBDYNAMIC) : $(LIBOBJ) $(LIBDEPS) $(CC) $(LDFLAGS) -shared -undefined dynamic_lookup -o $@ $(LIBOBJ) $(LIBS) else +$(MYLIBDYNAMIC) : $(LIBOBJ) $(LIBDEPS) $(CC) $(LDFLAGS) -shared -Wl,-soname,$(MYLIBSO) -o $@ $(LIBOBJ) $(LIBS) -Wl,-soname=$(MYLIBSO) endif diff --git a/apps/restconf/restconf_methods_get.c b/apps/restconf/restconf_methods_get.c index 4378afcc..89d99bed 100644 --- a/apps/restconf/restconf_methods_get.c +++ b/apps/restconf/restconf_methods_get.c @@ -346,7 +346,7 @@ api_data_collection(clicon_handle h, cxobj *xtop = NULL; cxobj *xbot = NULL; cxobj *xp; - cxobj *xpr; + cxobj *xpr = NULL; yang_stmt *y = NULL; cbuf *cbrpc = NULL; int32_t depth = -1; /* Nr of levels to print, -1 is all, 0 is none */ diff --git a/example/main/Makefile.in b/example/main/Makefile.in index 49e0feeb..7a611303 100644 --- a/example/main/Makefile.in +++ b/example/main/Makefile.in @@ -104,7 +104,7 @@ ifeq ($(LINKAGE),dynamic) $(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $< -lclixon -lclixon_backend else # can include -L in LDFLAGS? - $(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $< -lclixon -L ../../apps/backend/ -lclixon_backend + $(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $< -lclixon -lclixon_backend endif # Secondary NACM backend plugin @@ -114,7 +114,7 @@ $(BE2_PLUGIN): $(BE2_OBJ) ifeq ($(LINKAGE),dynamic) $(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $< -lclixon -lclixon_backend else - $(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $< -lclixon -L ../../apps/backend/ -lclixon_backend + $(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $< -lclixon -lclixon_backend endif # CLI frontend plugin @@ -127,12 +127,6 @@ else $(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -L ../../apps/cli/ -lclixon_cli endif -ifeq ($(LINKAGE),dynamic) - $(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -lclixon_cli -else - $(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -L ../../apps/cli/ -lclixon_cli -endif - # NETCONF frontend plugin NETCONF_SRC = $(APPNAME)_netconf.c NETCONF_OBJ = $(NETCONF_SRC:%.c=%.o) @@ -140,7 +134,7 @@ $(NETCONF_PLUGIN): $(NETCONF_OBJ) ifeq ($(LINKAGE),dynamic) $(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -lclixon_netconf else - $(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -L ../../apps/netconf/ -lclixon_netconf + $(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -lclixon_netconf endif # See configure.ac @@ -151,7 +145,7 @@ $(RESTCONF_PLUGIN): $(RESTCONF_OBJ) ifeq ($(LINKAGE),dynamic) $(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -lclixon_restconf else - $(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -L ../../apps/restconf/ -lclixon_restconf + $(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -lclixon_restconf endif SRC = $(BE_SRC) $(BE2_SRC) $(CLI_SRC) $(NETCONF_SRC) diff --git a/fuzz/cli/README.md b/fuzz/cli/README.md index 6bd6a7b8..c991f71c 100644 --- a/fuzz/cli/README.md +++ b/fuzz/cli/README.md @@ -32,16 +32,18 @@ Below is an example of how to do this for the main example. You can replace the ``` CC=/usr/bin/afl-clang-fast CFLAGS="-O2 -Wall -DCLIXON_STATIC_PLUGINS" LINKAGE=static ./configure make clean - cd example/main # Compile and install application plugins (here main example) + + make + sudo make install + + cd example # Compile and install application plugins (here main example) make clean make sudo make install - cd ../.. - cd lib # Compile and install clixon lib - make - sudo make install cd .. + cd apps/cli # Compile and install clixon_cli with pre-compiled plugins + rm clixon_cli EXTRAS="../../example/main/example_cli.o ../../example/main/test_cli.o" make clixon_cli sudo make install ``` diff --git a/lib/src/Makefile.in b/lib/src/Makefile.in index c4c0b117..ecb17f17 100644 --- a/lib/src/Makefile.in +++ b/lib/src/Makefile.in @@ -57,7 +57,7 @@ CFLAGS = @CFLAGS@ ifeq ($(LINKAGE),dynamic) CFLAGS += -fPIC endif -SH_SUFFIX = @SH_SUFFIX@ +SH_SUFFIX = .so INSTALL = @INSTALL@ INSTALL_LIB = @INSTALL@ INSTALLFLAGS = @INSTALLFLAGS@ @@ -239,6 +239,7 @@ build.c: date +"const char CLIXON_BUILDSTR[$(DATELEN)]=\"%Y.%m.%d %H:%M by `whoami` on `hostname`"\"\; >> build.c; echo "const char CLIXON_VERSION[64]=\"$(CLIXON_VERSION)\""\; >> build.c; +# Note: will always be remade since GENOBS is date dependent $(MYLIBDYNAMIC) : $(GENOBJS) $(OBJS) ifeq ($(HOST_VENDOR),apple) $(CC) $(LDFLAGS) -shared -o $@ $(GENOBJS) $(OBJS) $(LIBS) -undefined dynamic_lookup -o $@