working commit
This commit is contained in:
@@ -91,7 +91,7 @@ POST_UNINSTALL = :
|
|||||||
sbin_PROGRAMS = helmetd$(EXEEXT)
|
sbin_PROGRAMS = helmetd$(EXEEXT)
|
||||||
noinst_PROGRAMS = tcpclient_test$(EXEEXT) udpclient_test$(EXEEXT) \
|
noinst_PROGRAMS = tcpclient_test$(EXEEXT) udpclient_test$(EXEEXT) \
|
||||||
service_test$(EXEEXT) tunclient_test$(EXEEXT) \
|
service_test$(EXEEXT) tunclient_test$(EXEEXT) \
|
||||||
rpcclient_test$(EXEEXT) fakeconnect_test$(EXEEXT)
|
rpcclient_test$(EXEEXT) testconnect_test$(EXEEXT)
|
||||||
subdir = .
|
subdir = .
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||||
@@ -107,34 +107,36 @@ CONFIG_CLEAN_FILES =
|
|||||||
CONFIG_CLEAN_VPATH_FILES =
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
am__installdirs = "$(DESTDIR)$(sbindir)"
|
am__installdirs = "$(DESTDIR)$(sbindir)"
|
||||||
PROGRAMS = $(noinst_PROGRAMS) $(sbin_PROGRAMS)
|
PROGRAMS = $(noinst_PROGRAMS) $(sbin_PROGRAMS)
|
||||||
am_fakeconnect_test_OBJECTS = fakeconnect_test.$(OBJEXT) \
|
am_helmetd_OBJECTS = helmetd.$(OBJEXT) interface.$(OBJEXT) \
|
||||||
rpcclient.$(OBJEXT) rpcheader.$(OBJEXT) netclient.$(OBJEXT) \
|
iprouter.$(OBJEXT) netclient.$(OBJEXT) resolver.$(OBJEXT) \
|
||||||
nethandler.$(OBJEXT) fakeconnect.$(OBJEXT) \
|
rpcclient.$(OBJEXT) rpcheader.$(OBJEXT) service.$(OBJEXT) \
|
||||||
|
tcpclient.$(OBJEXT) tunclient.$(OBJEXT) udpclient.$(OBJEXT) \
|
||||||
control.pb.$(OBJEXT) logger.$(OBJEXT)
|
control.pb.$(OBJEXT) logger.$(OBJEXT)
|
||||||
fakeconnect_test_OBJECTS = $(am_fakeconnect_test_OBJECTS)
|
|
||||||
fakeconnect_test_LDADD = $(LDADD)
|
|
||||||
am_helmetd_OBJECTS = helmetd.$(OBJEXT) tunclient.$(OBJEXT) \
|
|
||||||
service.$(OBJEXT) interface.$(OBJEXT) udpclient.$(OBJEXT) \
|
|
||||||
resolver.$(OBJEXT) iprouter.$(OBJEXT) netclient.$(OBJEXT) \
|
|
||||||
tcpclient.$(OBJEXT) rpcclient.$(OBJEXT) control.pb.$(OBJEXT)
|
|
||||||
helmetd_OBJECTS = $(am_helmetd_OBJECTS)
|
helmetd_OBJECTS = $(am_helmetd_OBJECTS)
|
||||||
helmetd_LDADD = $(LDADD)
|
helmetd_LDADD = $(LDADD)
|
||||||
am_rpcclient_test_OBJECTS = rpcclient_test.$(OBJEXT) \
|
am_rpcclient_test_OBJECTS = rpcclient_test.$(OBJEXT) \
|
||||||
rpcclient.$(OBJEXT) rpcheader.$(OBJEXT) netclient.$(OBJEXT) \
|
rpcclient.$(OBJEXT) rpcheader.$(OBJEXT) netclient.$(OBJEXT) \
|
||||||
nethandler.$(OBJEXT) fakeconnect.$(OBJEXT) \
|
nethandler.$(OBJEXT) testconnect.$(OBJEXT) tcpclient.$(OBJEXT) \
|
||||||
control.pb.$(OBJEXT)
|
control.pb.$(OBJEXT)
|
||||||
rpcclient_test_OBJECTS = $(am_rpcclient_test_OBJECTS)
|
rpcclient_test_OBJECTS = $(am_rpcclient_test_OBJECTS)
|
||||||
rpcclient_test_LDADD = $(LDADD)
|
rpcclient_test_LDADD = $(LDADD)
|
||||||
am_service_test_OBJECTS = service_test.$(OBJEXT) tunclient.$(OBJEXT) \
|
am_service_test_OBJECTS = service_test.$(OBJEXT) tunclient.$(OBJEXT) \
|
||||||
service.$(OBJEXT) interface.$(OBJEXT)
|
service.$(OBJEXT) interface.$(OBJEXT) rpcheader.$(OBJEXT) \
|
||||||
|
logger.$(OBJEXT) control.pb.$(OBJEXT)
|
||||||
service_test_OBJECTS = $(am_service_test_OBJECTS)
|
service_test_OBJECTS = $(am_service_test_OBJECTS)
|
||||||
service_test_LDADD = $(LDADD)
|
service_test_LDADD = $(LDADD)
|
||||||
am_tcpclient_test_OBJECTS = resolver.$(OBJEXT) netclient.$(OBJEXT) \
|
am_tcpclient_test_OBJECTS = resolver.$(OBJEXT) netclient.$(OBJEXT) \
|
||||||
tcpclient.$(OBJEXT) tcpclient_test.$(OBJEXT)
|
tcpclient.$(OBJEXT) tcpclient_test.$(OBJEXT)
|
||||||
tcpclient_test_OBJECTS = $(am_tcpclient_test_OBJECTS)
|
tcpclient_test_OBJECTS = $(am_tcpclient_test_OBJECTS)
|
||||||
tcpclient_test_LDADD = $(LDADD)
|
tcpclient_test_LDADD = $(LDADD)
|
||||||
|
am_testconnect_test_OBJECTS = testconnect_test.$(OBJEXT) \
|
||||||
|
rpcclient.$(OBJEXT) rpcheader.$(OBJEXT) netclient.$(OBJEXT) \
|
||||||
|
nethandler.$(OBJEXT) testconnect.$(OBJEXT) \
|
||||||
|
control.pb.$(OBJEXT) logger.$(OBJEXT)
|
||||||
|
testconnect_test_OBJECTS = $(am_testconnect_test_OBJECTS)
|
||||||
|
testconnect_test_LDADD = $(LDADD)
|
||||||
am_tunclient_test_OBJECTS = tunclient_test.$(OBJEXT) \
|
am_tunclient_test_OBJECTS = tunclient_test.$(OBJEXT) \
|
||||||
tunclient.$(OBJEXT) service.$(OBJEXT) interface.$(OBJEXT)
|
tunclient.$(OBJEXT) interface.$(OBJEXT)
|
||||||
tunclient_test_OBJECTS = $(am_tunclient_test_OBJECTS)
|
tunclient_test_OBJECTS = $(am_tunclient_test_OBJECTS)
|
||||||
tunclient_test_LDADD = $(LDADD)
|
tunclient_test_LDADD = $(LDADD)
|
||||||
am_udpclient_test_OBJECTS = resolver.$(OBJEXT) udpclient.$(OBJEXT) \
|
am_udpclient_test_OBJECTS = resolver.$(OBJEXT) udpclient.$(OBJEXT) \
|
||||||
@@ -181,13 +183,13 @@ AM_V_CCLD = $(am__v_CCLD_$(V))
|
|||||||
am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
|
am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
|
||||||
am__v_CCLD_0 = @echo " CCLD " $@;
|
am__v_CCLD_0 = @echo " CCLD " $@;
|
||||||
am__v_CCLD_1 =
|
am__v_CCLD_1 =
|
||||||
SOURCES = $(fakeconnect_test_SOURCES) $(helmetd_SOURCES) \
|
SOURCES = $(helmetd_SOURCES) $(rpcclient_test_SOURCES) \
|
||||||
$(rpcclient_test_SOURCES) $(service_test_SOURCES) \
|
$(service_test_SOURCES) $(tcpclient_test_SOURCES) \
|
||||||
$(tcpclient_test_SOURCES) $(tunclient_test_SOURCES) \
|
$(testconnect_test_SOURCES) $(tunclient_test_SOURCES) \
|
||||||
$(udpclient_test_SOURCES)
|
$(udpclient_test_SOURCES)
|
||||||
DIST_SOURCES = $(fakeconnect_test_SOURCES) $(helmetd_SOURCES) \
|
DIST_SOURCES = $(helmetd_SOURCES) $(rpcclient_test_SOURCES) \
|
||||||
$(rpcclient_test_SOURCES) $(service_test_SOURCES) \
|
$(service_test_SOURCES) $(tcpclient_test_SOURCES) \
|
||||||
$(tcpclient_test_SOURCES) $(tunclient_test_SOURCES) \
|
$(testconnect_test_SOURCES) $(tunclient_test_SOURCES) \
|
||||||
$(udpclient_test_SOURCES)
|
$(udpclient_test_SOURCES)
|
||||||
am__can_run_installinfo = \
|
am__can_run_installinfo = \
|
||||||
case $$AM_UPDATE_INFO_DIR in \
|
case $$AM_UPDATE_INFO_DIR in \
|
||||||
@@ -252,7 +254,7 @@ CSCOPE = cscope
|
|||||||
CTAGS = ctags
|
CTAGS = ctags
|
||||||
CXX = g++
|
CXX = g++
|
||||||
CXXDEPMODE = depmode=none
|
CXXDEPMODE = depmode=none
|
||||||
CXXFLAGS = -g -std=c++23 -Wall -I. -pthread -D_GNU_SOURCE=1
|
CXXFLAGS = -std=c++23 -Wall -I. -pthread -D_GNU_SOURCE=1
|
||||||
CYGPATH_W = echo
|
CYGPATH_W = echo
|
||||||
DEFS = -DHAVE_CONFIG_H
|
DEFS = -DHAVE_CONFIG_H
|
||||||
DEPDIR = .deps
|
DEPDIR = .deps
|
||||||
@@ -335,26 +337,30 @@ top_builddir = .
|
|||||||
top_srcdir = .
|
top_srcdir = .
|
||||||
AUTOMAKE_OPTIONS = foreign no-dependencies no-installinfo subdir-objects
|
AUTOMAKE_OPTIONS = foreign no-dependencies no-installinfo subdir-objects
|
||||||
helmetd_SOURCES = helmetd.cpp \
|
helmetd_SOURCES = helmetd.cpp \
|
||||||
tunclient.cpp tunclient.hpp \
|
|
||||||
service.cpp service.hpp \
|
|
||||||
interface.cpp interface.hpp \
|
interface.cpp interface.hpp \
|
||||||
udpclient.cpp udpclient.hpp \
|
|
||||||
resolver.cpp resolver.hpp \
|
|
||||||
iprouter.cpp iprouter.hpp \
|
iprouter.cpp iprouter.hpp \
|
||||||
netclient.cpp netclient.hpp \
|
netclient.cpp netclient.hpp \
|
||||||
tcpclient.cpp tcpclient.hpp \
|
resolver.cpp resolver.hpp \
|
||||||
rpcclient.cpp rpcclient.hpp \
|
rpcclient.cpp rpcclient.hpp \
|
||||||
control.pb.cc control.pb.h
|
rpcheader.cpp rpcheader.hpp \
|
||||||
|
service.cpp service.hpp \
|
||||||
|
tcpclient.cpp tcpclient.hpp \
|
||||||
|
tunclient.cpp tunclient.hpp \
|
||||||
|
udpclient.cpp udpclient.hpp \
|
||||||
|
control.pb.cc control.pb.h \
|
||||||
|
logger.cpp logger.hpp
|
||||||
|
|
||||||
tunclient_test_SOURCES = tunclient_test.cpp \
|
tunclient_test_SOURCES = tunclient_test.cpp \
|
||||||
tunclient.cpp tunclient.hpp \
|
tunclient.cpp tunclient.hpp \
|
||||||
service.cpp service.hpp \
|
|
||||||
interface.cpp interface.hpp
|
interface.cpp interface.hpp
|
||||||
|
|
||||||
service_test_SOURCES = service_test.cpp \
|
service_test_SOURCES = service_test.cpp \
|
||||||
tunclient.cpp tunclient.hpp \
|
tunclient.cpp tunclient.hpp \
|
||||||
service.cpp service.hpp \
|
service.cpp service.hpp \
|
||||||
interface.cpp interface.hpp
|
interface.cpp interface.hpp \
|
||||||
|
rpcheader.cpp rpcheader.hpp \
|
||||||
|
logger.cpp logger.hpp \
|
||||||
|
control.pb.cc control.pb.h
|
||||||
|
|
||||||
udpclient_test_SOURCES = \
|
udpclient_test_SOURCES = \
|
||||||
resolver.cpp resolver.hpp \
|
resolver.cpp resolver.hpp \
|
||||||
@@ -372,15 +378,16 @@ rpcclient_test_SOURCES = rpcclient_test.cpp \
|
|||||||
rpcheader.cpp rpcheader.hpp \
|
rpcheader.cpp rpcheader.hpp \
|
||||||
netclient.cpp netclient.hpp \
|
netclient.cpp netclient.hpp \
|
||||||
nethandler.cpp nethandler.hpp \
|
nethandler.cpp nethandler.hpp \
|
||||||
fakeconnect.cpp fakeconnect.hpp \
|
testconnect.cpp testconnect.hpp \
|
||||||
|
tcpclient.cpp tcpclient.hpp \
|
||||||
control.pb.cc control.pb.h
|
control.pb.cc control.pb.h
|
||||||
|
|
||||||
fakeconnect_test_SOURCES = fakeconnect_test.cpp \
|
testconnect_test_SOURCES = testconnect_test.cpp \
|
||||||
rpcclient.cpp rpcclient.hpp \
|
rpcclient.cpp rpcclient.hpp \
|
||||||
rpcheader.cpp rpcheader.hpp \
|
rpcheader.cpp rpcheader.hpp \
|
||||||
netclient.cpp netclient.hpp \
|
netclient.cpp netclient.hpp \
|
||||||
nethandler.cpp nethandler.hpp \
|
nethandler.cpp nethandler.hpp \
|
||||||
fakeconnect.cpp fakeconnect.hpp \
|
testconnect.cpp testconnect.hpp \
|
||||||
control.pb.cc control.pb.h \
|
control.pb.cc control.pb.h \
|
||||||
logger.cpp logger.hpp
|
logger.cpp logger.hpp
|
||||||
|
|
||||||
@@ -484,10 +491,6 @@ uninstall-sbinPROGRAMS:
|
|||||||
clean-sbinPROGRAMS:
|
clean-sbinPROGRAMS:
|
||||||
-$(am__rm_f) $(sbin_PROGRAMS)
|
-$(am__rm_f) $(sbin_PROGRAMS)
|
||||||
|
|
||||||
fakeconnect_test$(EXEEXT): $(fakeconnect_test_OBJECTS) $(fakeconnect_test_DEPENDENCIES) $(EXTRA_fakeconnect_test_DEPENDENCIES)
|
|
||||||
@rm -f fakeconnect_test$(EXEEXT)
|
|
||||||
$(AM_V_CXXLD)$(CXXLINK) $(fakeconnect_test_OBJECTS) $(fakeconnect_test_LDADD) $(LIBS)
|
|
||||||
|
|
||||||
helmetd$(EXEEXT): $(helmetd_OBJECTS) $(helmetd_DEPENDENCIES) $(EXTRA_helmetd_DEPENDENCIES)
|
helmetd$(EXEEXT): $(helmetd_OBJECTS) $(helmetd_DEPENDENCIES) $(EXTRA_helmetd_DEPENDENCIES)
|
||||||
@rm -f helmetd$(EXEEXT)
|
@rm -f helmetd$(EXEEXT)
|
||||||
$(AM_V_CXXLD)$(CXXLINK) $(helmetd_OBJECTS) $(helmetd_LDADD) $(LIBS)
|
$(AM_V_CXXLD)$(CXXLINK) $(helmetd_OBJECTS) $(helmetd_LDADD) $(LIBS)
|
||||||
@@ -504,6 +507,10 @@ tcpclient_test$(EXEEXT): $(tcpclient_test_OBJECTS) $(tcpclient_test_DEPENDENCIES
|
|||||||
@rm -f tcpclient_test$(EXEEXT)
|
@rm -f tcpclient_test$(EXEEXT)
|
||||||
$(AM_V_CXXLD)$(CXXLINK) $(tcpclient_test_OBJECTS) $(tcpclient_test_LDADD) $(LIBS)
|
$(AM_V_CXXLD)$(CXXLINK) $(tcpclient_test_OBJECTS) $(tcpclient_test_LDADD) $(LIBS)
|
||||||
|
|
||||||
|
testconnect_test$(EXEEXT): $(testconnect_test_OBJECTS) $(testconnect_test_DEPENDENCIES) $(EXTRA_testconnect_test_DEPENDENCIES)
|
||||||
|
@rm -f testconnect_test$(EXEEXT)
|
||||||
|
$(AM_V_CXXLD)$(CXXLINK) $(testconnect_test_OBJECTS) $(testconnect_test_LDADD) $(LIBS)
|
||||||
|
|
||||||
tunclient_test$(EXEEXT): $(tunclient_test_OBJECTS) $(tunclient_test_DEPENDENCIES) $(EXTRA_tunclient_test_DEPENDENCIES)
|
tunclient_test$(EXEEXT): $(tunclient_test_OBJECTS) $(tunclient_test_DEPENDENCIES) $(EXTRA_tunclient_test_DEPENDENCIES)
|
||||||
@rm -f tunclient_test$(EXEEXT)
|
@rm -f tunclient_test$(EXEEXT)
|
||||||
$(AM_V_CXXLD)$(CXXLINK) $(tunclient_test_OBJECTS) $(tunclient_test_LDADD) $(LIBS)
|
$(AM_V_CXXLD)$(CXXLINK) $(tunclient_test_OBJECTS) $(tunclient_test_LDADD) $(LIBS)
|
||||||
@@ -890,11 +897,12 @@ uninstall-am: uninstall-sbinPROGRAMS
|
|||||||
.PRECIOUS: Makefile
|
.PRECIOUS: Makefile
|
||||||
|
|
||||||
|
|
||||||
test: fakeconnect_test
|
#test: testconnect_test
|
||||||
./fakeconnect_test
|
# ./testconnect_test
|
||||||
|
#test: rpcclient_test
|
||||||
|
# ./rpcclient_test
|
||||||
|
|
||||||
run: helmetd
|
test: service_test rpcclient_test
|
||||||
./helmetd
|
|
||||||
|
|
||||||
proto:
|
proto:
|
||||||
$(PROTOC) --cpp_out=. control.proto
|
$(PROTOC) --cpp_out=. control.proto
|
||||||
|
|||||||
+23
-19
@@ -1,24 +1,25 @@
|
|||||||
|
|
||||||
AUTOMAKE_OPTIONS = foreign no-dependencies no-installinfo subdir-objects
|
AUTOMAKE_OPTIONS = foreign no-dependencies no-installinfo subdir-objects
|
||||||
|
|
||||||
CXXFLAGS = -g -std=c++23 -Wall -I. -pthread -D_GNU_SOURCE=1
|
CXXFLAGS = -std=c++23 -Wall -I. -pthread -D_GNU_SOURCE=1
|
||||||
LDFLAGS = -pthread
|
LDFLAGS = -pthread
|
||||||
LIBS = -Wl,--as-need -lprotobuf
|
LIBS = -Wl,--as-need -lprotobuf
|
||||||
|
|
||||||
sbin_PROGRAMS = helmetd
|
sbin_PROGRAMS = helmetd
|
||||||
|
|
||||||
helmetd_SOURCES = helmetd.cpp \
|
helmetd_SOURCES = helmetd.cpp \
|
||||||
tunclient.cpp tunclient.hpp \
|
|
||||||
service.cpp service.hpp \
|
|
||||||
interface.cpp interface.hpp \
|
interface.cpp interface.hpp \
|
||||||
udpclient.cpp udpclient.hpp \
|
|
||||||
resolver.cpp resolver.hpp \
|
|
||||||
iprouter.cpp iprouter.hpp \
|
iprouter.cpp iprouter.hpp \
|
||||||
netclient.cpp netclient.hpp \
|
netclient.cpp netclient.hpp \
|
||||||
tcpclient.cpp tcpclient.hpp \
|
resolver.cpp resolver.hpp \
|
||||||
rpcclient.cpp rpcclient.hpp \
|
rpcclient.cpp rpcclient.hpp \
|
||||||
control.pb.cc control.pb.h
|
rpcheader.cpp rpcheader.hpp \
|
||||||
|
service.cpp service.hpp \
|
||||||
|
tcpclient.cpp tcpclient.hpp \
|
||||||
|
tunclient.cpp tunclient.hpp \
|
||||||
|
udpclient.cpp udpclient.hpp \
|
||||||
|
control.pb.cc control.pb.h \
|
||||||
|
logger.cpp logger.hpp
|
||||||
|
|
||||||
noinst_PROGRAMS = \
|
noinst_PROGRAMS = \
|
||||||
tcpclient_test \
|
tcpclient_test \
|
||||||
@@ -26,18 +27,19 @@ noinst_PROGRAMS = \
|
|||||||
service_test \
|
service_test \
|
||||||
tunclient_test \
|
tunclient_test \
|
||||||
rpcclient_test \
|
rpcclient_test \
|
||||||
fakeconnect_test
|
testconnect_test
|
||||||
|
|
||||||
tunclient_test_SOURCES = tunclient_test.cpp \
|
tunclient_test_SOURCES = tunclient_test.cpp \
|
||||||
tunclient.cpp tunclient.hpp \
|
tunclient.cpp tunclient.hpp \
|
||||||
service.cpp service.hpp \
|
|
||||||
interface.cpp interface.hpp
|
interface.cpp interface.hpp
|
||||||
|
|
||||||
service_test_SOURCES = service_test.cpp \
|
service_test_SOURCES = service_test.cpp \
|
||||||
tunclient.cpp tunclient.hpp \
|
tunclient.cpp tunclient.hpp \
|
||||||
service.cpp service.hpp \
|
service.cpp service.hpp \
|
||||||
interface.cpp interface.hpp
|
interface.cpp interface.hpp \
|
||||||
|
rpcheader.cpp rpcheader.hpp \
|
||||||
|
logger.cpp logger.hpp \
|
||||||
|
control.pb.cc control.pb.h
|
||||||
|
|
||||||
udpclient_test_SOURCES = \
|
udpclient_test_SOURCES = \
|
||||||
resolver.cpp resolver.hpp \
|
resolver.cpp resolver.hpp \
|
||||||
@@ -55,24 +57,26 @@ rpcclient_test_SOURCES = rpcclient_test.cpp \
|
|||||||
rpcheader.cpp rpcheader.hpp \
|
rpcheader.cpp rpcheader.hpp \
|
||||||
netclient.cpp netclient.hpp \
|
netclient.cpp netclient.hpp \
|
||||||
nethandler.cpp nethandler.hpp \
|
nethandler.cpp nethandler.hpp \
|
||||||
fakeconnect.cpp fakeconnect.hpp \
|
testconnect.cpp testconnect.hpp \
|
||||||
|
tcpclient.cpp tcpclient.hpp \
|
||||||
control.pb.cc control.pb.h
|
control.pb.cc control.pb.h
|
||||||
|
|
||||||
fakeconnect_test_SOURCES = fakeconnect_test.cpp \
|
testconnect_test_SOURCES = testconnect_test.cpp \
|
||||||
rpcclient.cpp rpcclient.hpp \
|
rpcclient.cpp rpcclient.hpp \
|
||||||
rpcheader.cpp rpcheader.hpp \
|
rpcheader.cpp rpcheader.hpp \
|
||||||
netclient.cpp netclient.hpp \
|
netclient.cpp netclient.hpp \
|
||||||
nethandler.cpp nethandler.hpp \
|
nethandler.cpp nethandler.hpp \
|
||||||
fakeconnect.cpp fakeconnect.hpp \
|
testconnect.cpp testconnect.hpp \
|
||||||
control.pb.cc control.pb.h \
|
control.pb.cc control.pb.h \
|
||||||
logger.cpp logger.hpp
|
logger.cpp logger.hpp
|
||||||
|
|
||||||
|
|
||||||
test: fakeconnect_test
|
#test: testconnect_test
|
||||||
./fakeconnect_test
|
# ./testconnect_test
|
||||||
|
#test: rpcclient_test
|
||||||
|
# ./rpcclient_test
|
||||||
|
|
||||||
run: helmetd
|
test: service_test rpcclient_test
|
||||||
./helmetd
|
|
||||||
|
|
||||||
proto:
|
proto:
|
||||||
$(PROTOC) --cpp_out=. control.proto
|
$(PROTOC) --cpp_out=. control.proto
|
||||||
|
|||||||
+47
-39
@@ -91,7 +91,7 @@ POST_UNINSTALL = :
|
|||||||
sbin_PROGRAMS = helmetd$(EXEEXT)
|
sbin_PROGRAMS = helmetd$(EXEEXT)
|
||||||
noinst_PROGRAMS = tcpclient_test$(EXEEXT) udpclient_test$(EXEEXT) \
|
noinst_PROGRAMS = tcpclient_test$(EXEEXT) udpclient_test$(EXEEXT) \
|
||||||
service_test$(EXEEXT) tunclient_test$(EXEEXT) \
|
service_test$(EXEEXT) tunclient_test$(EXEEXT) \
|
||||||
rpcclient_test$(EXEEXT) fakeconnect_test$(EXEEXT)
|
rpcclient_test$(EXEEXT) testconnect_test$(EXEEXT)
|
||||||
subdir = .
|
subdir = .
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||||
@@ -107,34 +107,36 @@ CONFIG_CLEAN_FILES =
|
|||||||
CONFIG_CLEAN_VPATH_FILES =
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
am__installdirs = "$(DESTDIR)$(sbindir)"
|
am__installdirs = "$(DESTDIR)$(sbindir)"
|
||||||
PROGRAMS = $(noinst_PROGRAMS) $(sbin_PROGRAMS)
|
PROGRAMS = $(noinst_PROGRAMS) $(sbin_PROGRAMS)
|
||||||
am_fakeconnect_test_OBJECTS = fakeconnect_test.$(OBJEXT) \
|
am_helmetd_OBJECTS = helmetd.$(OBJEXT) interface.$(OBJEXT) \
|
||||||
rpcclient.$(OBJEXT) rpcheader.$(OBJEXT) netclient.$(OBJEXT) \
|
iprouter.$(OBJEXT) netclient.$(OBJEXT) resolver.$(OBJEXT) \
|
||||||
nethandler.$(OBJEXT) fakeconnect.$(OBJEXT) \
|
rpcclient.$(OBJEXT) rpcheader.$(OBJEXT) service.$(OBJEXT) \
|
||||||
|
tcpclient.$(OBJEXT) tunclient.$(OBJEXT) udpclient.$(OBJEXT) \
|
||||||
control.pb.$(OBJEXT) logger.$(OBJEXT)
|
control.pb.$(OBJEXT) logger.$(OBJEXT)
|
||||||
fakeconnect_test_OBJECTS = $(am_fakeconnect_test_OBJECTS)
|
|
||||||
fakeconnect_test_LDADD = $(LDADD)
|
|
||||||
am_helmetd_OBJECTS = helmetd.$(OBJEXT) tunclient.$(OBJEXT) \
|
|
||||||
service.$(OBJEXT) interface.$(OBJEXT) udpclient.$(OBJEXT) \
|
|
||||||
resolver.$(OBJEXT) iprouter.$(OBJEXT) netclient.$(OBJEXT) \
|
|
||||||
tcpclient.$(OBJEXT) rpcclient.$(OBJEXT) control.pb.$(OBJEXT)
|
|
||||||
helmetd_OBJECTS = $(am_helmetd_OBJECTS)
|
helmetd_OBJECTS = $(am_helmetd_OBJECTS)
|
||||||
helmetd_LDADD = $(LDADD)
|
helmetd_LDADD = $(LDADD)
|
||||||
am_rpcclient_test_OBJECTS = rpcclient_test.$(OBJEXT) \
|
am_rpcclient_test_OBJECTS = rpcclient_test.$(OBJEXT) \
|
||||||
rpcclient.$(OBJEXT) rpcheader.$(OBJEXT) netclient.$(OBJEXT) \
|
rpcclient.$(OBJEXT) rpcheader.$(OBJEXT) netclient.$(OBJEXT) \
|
||||||
nethandler.$(OBJEXT) fakeconnect.$(OBJEXT) \
|
nethandler.$(OBJEXT) testconnect.$(OBJEXT) tcpclient.$(OBJEXT) \
|
||||||
control.pb.$(OBJEXT)
|
control.pb.$(OBJEXT)
|
||||||
rpcclient_test_OBJECTS = $(am_rpcclient_test_OBJECTS)
|
rpcclient_test_OBJECTS = $(am_rpcclient_test_OBJECTS)
|
||||||
rpcclient_test_LDADD = $(LDADD)
|
rpcclient_test_LDADD = $(LDADD)
|
||||||
am_service_test_OBJECTS = service_test.$(OBJEXT) tunclient.$(OBJEXT) \
|
am_service_test_OBJECTS = service_test.$(OBJEXT) tunclient.$(OBJEXT) \
|
||||||
service.$(OBJEXT) interface.$(OBJEXT)
|
service.$(OBJEXT) interface.$(OBJEXT) rpcheader.$(OBJEXT) \
|
||||||
|
logger.$(OBJEXT) control.pb.$(OBJEXT)
|
||||||
service_test_OBJECTS = $(am_service_test_OBJECTS)
|
service_test_OBJECTS = $(am_service_test_OBJECTS)
|
||||||
service_test_LDADD = $(LDADD)
|
service_test_LDADD = $(LDADD)
|
||||||
am_tcpclient_test_OBJECTS = resolver.$(OBJEXT) netclient.$(OBJEXT) \
|
am_tcpclient_test_OBJECTS = resolver.$(OBJEXT) netclient.$(OBJEXT) \
|
||||||
tcpclient.$(OBJEXT) tcpclient_test.$(OBJEXT)
|
tcpclient.$(OBJEXT) tcpclient_test.$(OBJEXT)
|
||||||
tcpclient_test_OBJECTS = $(am_tcpclient_test_OBJECTS)
|
tcpclient_test_OBJECTS = $(am_tcpclient_test_OBJECTS)
|
||||||
tcpclient_test_LDADD = $(LDADD)
|
tcpclient_test_LDADD = $(LDADD)
|
||||||
|
am_testconnect_test_OBJECTS = testconnect_test.$(OBJEXT) \
|
||||||
|
rpcclient.$(OBJEXT) rpcheader.$(OBJEXT) netclient.$(OBJEXT) \
|
||||||
|
nethandler.$(OBJEXT) testconnect.$(OBJEXT) \
|
||||||
|
control.pb.$(OBJEXT) logger.$(OBJEXT)
|
||||||
|
testconnect_test_OBJECTS = $(am_testconnect_test_OBJECTS)
|
||||||
|
testconnect_test_LDADD = $(LDADD)
|
||||||
am_tunclient_test_OBJECTS = tunclient_test.$(OBJEXT) \
|
am_tunclient_test_OBJECTS = tunclient_test.$(OBJEXT) \
|
||||||
tunclient.$(OBJEXT) service.$(OBJEXT) interface.$(OBJEXT)
|
tunclient.$(OBJEXT) interface.$(OBJEXT)
|
||||||
tunclient_test_OBJECTS = $(am_tunclient_test_OBJECTS)
|
tunclient_test_OBJECTS = $(am_tunclient_test_OBJECTS)
|
||||||
tunclient_test_LDADD = $(LDADD)
|
tunclient_test_LDADD = $(LDADD)
|
||||||
am_udpclient_test_OBJECTS = resolver.$(OBJEXT) udpclient.$(OBJEXT) \
|
am_udpclient_test_OBJECTS = resolver.$(OBJEXT) udpclient.$(OBJEXT) \
|
||||||
@@ -181,13 +183,13 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@)
|
|||||||
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
|
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
|
||||||
am__v_CCLD_0 = @echo " CCLD " $@;
|
am__v_CCLD_0 = @echo " CCLD " $@;
|
||||||
am__v_CCLD_1 =
|
am__v_CCLD_1 =
|
||||||
SOURCES = $(fakeconnect_test_SOURCES) $(helmetd_SOURCES) \
|
SOURCES = $(helmetd_SOURCES) $(rpcclient_test_SOURCES) \
|
||||||
$(rpcclient_test_SOURCES) $(service_test_SOURCES) \
|
$(service_test_SOURCES) $(tcpclient_test_SOURCES) \
|
||||||
$(tcpclient_test_SOURCES) $(tunclient_test_SOURCES) \
|
$(testconnect_test_SOURCES) $(tunclient_test_SOURCES) \
|
||||||
$(udpclient_test_SOURCES)
|
$(udpclient_test_SOURCES)
|
||||||
DIST_SOURCES = $(fakeconnect_test_SOURCES) $(helmetd_SOURCES) \
|
DIST_SOURCES = $(helmetd_SOURCES) $(rpcclient_test_SOURCES) \
|
||||||
$(rpcclient_test_SOURCES) $(service_test_SOURCES) \
|
$(service_test_SOURCES) $(tcpclient_test_SOURCES) \
|
||||||
$(tcpclient_test_SOURCES) $(tunclient_test_SOURCES) \
|
$(testconnect_test_SOURCES) $(tunclient_test_SOURCES) \
|
||||||
$(udpclient_test_SOURCES)
|
$(udpclient_test_SOURCES)
|
||||||
am__can_run_installinfo = \
|
am__can_run_installinfo = \
|
||||||
case $$AM_UPDATE_INFO_DIR in \
|
case $$AM_UPDATE_INFO_DIR in \
|
||||||
@@ -252,7 +254,7 @@ CSCOPE = @CSCOPE@
|
|||||||
CTAGS = @CTAGS@
|
CTAGS = @CTAGS@
|
||||||
CXX = @CXX@
|
CXX = @CXX@
|
||||||
CXXDEPMODE = @CXXDEPMODE@
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
CXXFLAGS = -g -std=c++23 -Wall -I. -pthread -D_GNU_SOURCE=1
|
CXXFLAGS = -std=c++23 -Wall -I. -pthread -D_GNU_SOURCE=1
|
||||||
CYGPATH_W = @CYGPATH_W@
|
CYGPATH_W = @CYGPATH_W@
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
DEPDIR = @DEPDIR@
|
DEPDIR = @DEPDIR@
|
||||||
@@ -335,26 +337,30 @@ top_builddir = @top_builddir@
|
|||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
AUTOMAKE_OPTIONS = foreign no-dependencies no-installinfo subdir-objects
|
AUTOMAKE_OPTIONS = foreign no-dependencies no-installinfo subdir-objects
|
||||||
helmetd_SOURCES = helmetd.cpp \
|
helmetd_SOURCES = helmetd.cpp \
|
||||||
tunclient.cpp tunclient.hpp \
|
|
||||||
service.cpp service.hpp \
|
|
||||||
interface.cpp interface.hpp \
|
interface.cpp interface.hpp \
|
||||||
udpclient.cpp udpclient.hpp \
|
|
||||||
resolver.cpp resolver.hpp \
|
|
||||||
iprouter.cpp iprouter.hpp \
|
iprouter.cpp iprouter.hpp \
|
||||||
netclient.cpp netclient.hpp \
|
netclient.cpp netclient.hpp \
|
||||||
tcpclient.cpp tcpclient.hpp \
|
resolver.cpp resolver.hpp \
|
||||||
rpcclient.cpp rpcclient.hpp \
|
rpcclient.cpp rpcclient.hpp \
|
||||||
control.pb.cc control.pb.h
|
rpcheader.cpp rpcheader.hpp \
|
||||||
|
service.cpp service.hpp \
|
||||||
|
tcpclient.cpp tcpclient.hpp \
|
||||||
|
tunclient.cpp tunclient.hpp \
|
||||||
|
udpclient.cpp udpclient.hpp \
|
||||||
|
control.pb.cc control.pb.h \
|
||||||
|
logger.cpp logger.hpp
|
||||||
|
|
||||||
tunclient_test_SOURCES = tunclient_test.cpp \
|
tunclient_test_SOURCES = tunclient_test.cpp \
|
||||||
tunclient.cpp tunclient.hpp \
|
tunclient.cpp tunclient.hpp \
|
||||||
service.cpp service.hpp \
|
|
||||||
interface.cpp interface.hpp
|
interface.cpp interface.hpp
|
||||||
|
|
||||||
service_test_SOURCES = service_test.cpp \
|
service_test_SOURCES = service_test.cpp \
|
||||||
tunclient.cpp tunclient.hpp \
|
tunclient.cpp tunclient.hpp \
|
||||||
service.cpp service.hpp \
|
service.cpp service.hpp \
|
||||||
interface.cpp interface.hpp
|
interface.cpp interface.hpp \
|
||||||
|
rpcheader.cpp rpcheader.hpp \
|
||||||
|
logger.cpp logger.hpp \
|
||||||
|
control.pb.cc control.pb.h
|
||||||
|
|
||||||
udpclient_test_SOURCES = \
|
udpclient_test_SOURCES = \
|
||||||
resolver.cpp resolver.hpp \
|
resolver.cpp resolver.hpp \
|
||||||
@@ -372,15 +378,16 @@ rpcclient_test_SOURCES = rpcclient_test.cpp \
|
|||||||
rpcheader.cpp rpcheader.hpp \
|
rpcheader.cpp rpcheader.hpp \
|
||||||
netclient.cpp netclient.hpp \
|
netclient.cpp netclient.hpp \
|
||||||
nethandler.cpp nethandler.hpp \
|
nethandler.cpp nethandler.hpp \
|
||||||
fakeconnect.cpp fakeconnect.hpp \
|
testconnect.cpp testconnect.hpp \
|
||||||
|
tcpclient.cpp tcpclient.hpp \
|
||||||
control.pb.cc control.pb.h
|
control.pb.cc control.pb.h
|
||||||
|
|
||||||
fakeconnect_test_SOURCES = fakeconnect_test.cpp \
|
testconnect_test_SOURCES = testconnect_test.cpp \
|
||||||
rpcclient.cpp rpcclient.hpp \
|
rpcclient.cpp rpcclient.hpp \
|
||||||
rpcheader.cpp rpcheader.hpp \
|
rpcheader.cpp rpcheader.hpp \
|
||||||
netclient.cpp netclient.hpp \
|
netclient.cpp netclient.hpp \
|
||||||
nethandler.cpp nethandler.hpp \
|
nethandler.cpp nethandler.hpp \
|
||||||
fakeconnect.cpp fakeconnect.hpp \
|
testconnect.cpp testconnect.hpp \
|
||||||
control.pb.cc control.pb.h \
|
control.pb.cc control.pb.h \
|
||||||
logger.cpp logger.hpp
|
logger.cpp logger.hpp
|
||||||
|
|
||||||
@@ -484,10 +491,6 @@ uninstall-sbinPROGRAMS:
|
|||||||
clean-sbinPROGRAMS:
|
clean-sbinPROGRAMS:
|
||||||
-$(am__rm_f) $(sbin_PROGRAMS)
|
-$(am__rm_f) $(sbin_PROGRAMS)
|
||||||
|
|
||||||
fakeconnect_test$(EXEEXT): $(fakeconnect_test_OBJECTS) $(fakeconnect_test_DEPENDENCIES) $(EXTRA_fakeconnect_test_DEPENDENCIES)
|
|
||||||
@rm -f fakeconnect_test$(EXEEXT)
|
|
||||||
$(AM_V_CXXLD)$(CXXLINK) $(fakeconnect_test_OBJECTS) $(fakeconnect_test_LDADD) $(LIBS)
|
|
||||||
|
|
||||||
helmetd$(EXEEXT): $(helmetd_OBJECTS) $(helmetd_DEPENDENCIES) $(EXTRA_helmetd_DEPENDENCIES)
|
helmetd$(EXEEXT): $(helmetd_OBJECTS) $(helmetd_DEPENDENCIES) $(EXTRA_helmetd_DEPENDENCIES)
|
||||||
@rm -f helmetd$(EXEEXT)
|
@rm -f helmetd$(EXEEXT)
|
||||||
$(AM_V_CXXLD)$(CXXLINK) $(helmetd_OBJECTS) $(helmetd_LDADD) $(LIBS)
|
$(AM_V_CXXLD)$(CXXLINK) $(helmetd_OBJECTS) $(helmetd_LDADD) $(LIBS)
|
||||||
@@ -504,6 +507,10 @@ tcpclient_test$(EXEEXT): $(tcpclient_test_OBJECTS) $(tcpclient_test_DEPENDENCIES
|
|||||||
@rm -f tcpclient_test$(EXEEXT)
|
@rm -f tcpclient_test$(EXEEXT)
|
||||||
$(AM_V_CXXLD)$(CXXLINK) $(tcpclient_test_OBJECTS) $(tcpclient_test_LDADD) $(LIBS)
|
$(AM_V_CXXLD)$(CXXLINK) $(tcpclient_test_OBJECTS) $(tcpclient_test_LDADD) $(LIBS)
|
||||||
|
|
||||||
|
testconnect_test$(EXEEXT): $(testconnect_test_OBJECTS) $(testconnect_test_DEPENDENCIES) $(EXTRA_testconnect_test_DEPENDENCIES)
|
||||||
|
@rm -f testconnect_test$(EXEEXT)
|
||||||
|
$(AM_V_CXXLD)$(CXXLINK) $(testconnect_test_OBJECTS) $(testconnect_test_LDADD) $(LIBS)
|
||||||
|
|
||||||
tunclient_test$(EXEEXT): $(tunclient_test_OBJECTS) $(tunclient_test_DEPENDENCIES) $(EXTRA_tunclient_test_DEPENDENCIES)
|
tunclient_test$(EXEEXT): $(tunclient_test_OBJECTS) $(tunclient_test_DEPENDENCIES) $(EXTRA_tunclient_test_DEPENDENCIES)
|
||||||
@rm -f tunclient_test$(EXEEXT)
|
@rm -f tunclient_test$(EXEEXT)
|
||||||
$(AM_V_CXXLD)$(CXXLINK) $(tunclient_test_OBJECTS) $(tunclient_test_LDADD) $(LIBS)
|
$(AM_V_CXXLD)$(CXXLINK) $(tunclient_test_OBJECTS) $(tunclient_test_LDADD) $(LIBS)
|
||||||
@@ -890,11 +897,12 @@ uninstall-am: uninstall-sbinPROGRAMS
|
|||||||
.PRECIOUS: Makefile
|
.PRECIOUS: Makefile
|
||||||
|
|
||||||
|
|
||||||
test: fakeconnect_test
|
#test: testconnect_test
|
||||||
./fakeconnect_test
|
# ./testconnect_test
|
||||||
|
#test: rpcclient_test
|
||||||
|
# ./rpcclient_test
|
||||||
|
|
||||||
run: helmetd
|
test: service_test rpcclient_test
|
||||||
./helmetd
|
|
||||||
|
|
||||||
proto:
|
proto:
|
||||||
$(PROTOC) --cpp_out=. control.proto
|
$(PROTOC) --cpp_out=. control.proto
|
||||||
|
|||||||
+16
-18
@@ -12,35 +12,33 @@
|
|||||||
|
|
||||||
#include <rpcclient.hpp>
|
#include <rpcclient.hpp>
|
||||||
#include <rpcheader.hpp>
|
#include <rpcheader.hpp>
|
||||||
|
#include <netclient.hpp>
|
||||||
|
|
||||||
|
RPCClient::RPCClient(NetClient& iconnector) {
|
||||||
void Router(std::string& req, std::string& res) {
|
connector = &iconnector;
|
||||||
|
|
||||||
std::string rawResult;
|
|
||||||
control::HelloResult helloRes;
|
|
||||||
helloRes.Clear();
|
|
||||||
helloRes.set_message("foobare");
|
|
||||||
helloRes.SerializeToString(&rawResult);
|
|
||||||
res.append(rawResult);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::expected<void, std::string> RPCClient::Transaction(const pbMessage& pbReq, pbMessage& pbRes) {
|
std::expected<void, std::string> RPCClient::DoTransaction(const pbMessage& pbReq, pbMessage& pbRes) {
|
||||||
|
|
||||||
std::string rawRequest;
|
std::string rawRequest;
|
||||||
pbReq.SerializeToString(&rawRequest);
|
pbReq.SerializeToString(&rawRequest);
|
||||||
|
|
||||||
//RPCHeader header(rawRequest.size());
|
RPCHeader reqHeader(rawRequest.size());
|
||||||
//auto rawHeader = header.Encode();
|
auto rawReqHeader = reqHeader.Encode();
|
||||||
|
|
||||||
std::string reqPacket;
|
std::string reqPacket;
|
||||||
//request.append(rawHeader);
|
reqPacket.append(rawReqHeader);
|
||||||
reqPacket.append(rawRequest);
|
reqPacket.append(rawRequest);
|
||||||
|
|
||||||
std::string resPacket;
|
connector->Write(reqPacket);
|
||||||
Router(reqPacket, resPacket);
|
|
||||||
|
|
||||||
pbRes.ParseFromString(resPacket);
|
const int headerSize = 8;
|
||||||
|
std::string rawResHeader;
|
||||||
|
connector->Read(rawResHeader, headerSize);
|
||||||
|
RPCHeader resHeader;
|
||||||
|
resHeader.Decode(rawResHeader);
|
||||||
|
|
||||||
|
std::string rawResponse;
|
||||||
|
connector->Read(rawResponse, resHeader.PacketSize());
|
||||||
|
pbRes.ParseFromString(rawResponse);
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-1
@@ -9,10 +9,15 @@
|
|||||||
|
|
||||||
#include <google/protobuf/message.h>
|
#include <google/protobuf/message.h>
|
||||||
|
|
||||||
|
#include <netclient.hpp>
|
||||||
|
|
||||||
using pbMessage = google::protobuf::Message;
|
using pbMessage = google::protobuf::Message;
|
||||||
using pbMessagePtr = std::unique_ptr<pbMessage>;
|
using pbMessagePtr = std::unique_ptr<pbMessage>;
|
||||||
|
|
||||||
class RPCClient {
|
class RPCClient {
|
||||||
|
private:
|
||||||
|
NetClient* connector;
|
||||||
public:
|
public:
|
||||||
std::expected<void, std::string> Transaction(const pbMessage& req, pbMessage& res);
|
RPCClient(NetClient& iconnector);
|
||||||
|
std::expected<void, std::string> DoTransaction(const pbMessage& req, pbMessage& res);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
|
||||||
|
#include <expected>
|
||||||
|
#include <string>
|
||||||
|
#include <cstring>
|
||||||
|
#include <iostream>
|
||||||
|
#include <format>
|
||||||
|
|
||||||
|
#include <control.pb.h>
|
||||||
|
|
||||||
|
#include <rpcclient.hpp>
|
||||||
|
#include <nethandler.hpp>
|
||||||
|
#include <testconnect.hpp>
|
||||||
|
|
||||||
|
class TestHandler : public NetHandler {
|
||||||
|
public:
|
||||||
|
std::expected<void, std::string> Handle(std::string& req, std::string& res) override;
|
||||||
|
};
|
||||||
|
|
||||||
|
std::expected<void, std::string> TestHandler::Handle(std::string& rawReq, std::string& rawRes) {
|
||||||
|
control::HelloRequest pbReq;
|
||||||
|
pbReq.ParseFromString(rawReq);
|
||||||
|
std::cout << std::format("rpcName: {}\n", pbReq.meta().rpcname());
|
||||||
|
std::cout << std::format("req message: {}\n", pbReq.message());
|
||||||
|
|
||||||
|
control::HelloResult pbRes;
|
||||||
|
pbRes.set_message("Johnny!");
|
||||||
|
auto resMeta = pbRes.mutable_meta();
|
||||||
|
resMeta->set_error(false);
|
||||||
|
pbRes.SerializeToString(&rawRes);
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
|
TestHandler handler;
|
||||||
|
TestConnector connector(handler);
|
||||||
|
RPCClient rpcCli(connector);
|
||||||
|
|
||||||
|
control::HelloRequest pbReq;
|
||||||
|
auto reqMeta = pbReq.mutable_meta();
|
||||||
|
reqMeta->set_rpcname("getHello");
|
||||||
|
pbReq.set_message("What's your name?");
|
||||||
|
|
||||||
|
control::HelloResult pbRes;
|
||||||
|
auto trRes = rpcCli.DoTransaction(pbReq, pbRes);
|
||||||
|
|
||||||
|
std::cout << std::format("res message: {}\n", pbRes.message());
|
||||||
|
}
|
||||||
+12
-6
@@ -6,18 +6,24 @@
|
|||||||
#include <format>
|
#include <format>
|
||||||
|
|
||||||
#include <control.pb.h>
|
#include <control.pb.h>
|
||||||
|
|
||||||
#include <rpcclient.hpp>
|
#include <rpcclient.hpp>
|
||||||
|
#include <nethandler.hpp>
|
||||||
|
#include <testconnect.hpp>
|
||||||
|
#include <tcpclient.hpp>
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
RPCClient rpcCli;
|
TCPClient connector;
|
||||||
|
connector.Connect("127.0.0.1", 1025);
|
||||||
|
RPCClient rpcCli(connector);
|
||||||
|
|
||||||
control::HelloRequest pbReq;
|
control::HelloRequest pbReq;
|
||||||
pbReq.set_id(10);
|
auto reqMeta = pbReq.mutable_meta();
|
||||||
pbReq.set_name("barefoo");
|
reqMeta->set_rpcname("getHello");
|
||||||
|
pbReq.set_message("What's your name?");
|
||||||
|
|
||||||
control::HelloResult pbRes;
|
control::HelloResult pbRes;
|
||||||
pbRes.Clear();
|
auto trRes = rpcCli.DoTransaction(pbReq, pbRes);
|
||||||
auto trRes = rpcCli.Transaction(pbReq, pbRes);
|
|
||||||
|
|
||||||
std::cout << std::format("res name: {}\n", pbRes.name());
|
std::cout << std::format("res message: {}\n", pbRes.message());
|
||||||
}
|
}
|
||||||
|
|||||||
+63
-6
@@ -13,14 +13,71 @@ extern "C" {
|
|||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
#include <service.hpp>
|
#include <service.hpp>
|
||||||
|
#include <logger.hpp>
|
||||||
|
#include <rpcheader.hpp>
|
||||||
|
|
||||||
|
#include <control.pb.h>
|
||||||
|
|
||||||
using namespace std::chrono_literals;
|
using namespace std::chrono_literals;
|
||||||
|
|
||||||
void Handler::Handle(int sock) {
|
void SocketHandler::Handle(int sock) {
|
||||||
std::cout << std::format("Handler {} start", sock) << std::endl;
|
std::cout << std::format("Handler {} start", sock) << std::endl;
|
||||||
std::chrono::milliseconds timesleep(1s);
|
|
||||||
std::this_thread::sleep_for(timesleep);
|
const int headerSize = 8;
|
||||||
std::cout << std::format("Handler {} done", sock) << std::endl;
|
std::string rawResHeader;
|
||||||
|
|
||||||
|
char buffer[headerSize];
|
||||||
|
memset(&buffer, 0, headerSize);
|
||||||
|
int rsize = 0;
|
||||||
|
|
||||||
|
if ((rsize = read(sock, &buffer, headerSize)) < 0) {
|
||||||
|
logger.Log("Error read");
|
||||||
|
close(sock);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
logger.Log(std::format("rpc rsize {}", rsize));
|
||||||
|
|
||||||
|
RPCHeader inRPCHeader;
|
||||||
|
std::string i(buffer, headerSize);
|
||||||
|
inRPCHeader.Decode(i);
|
||||||
|
int rcpPacketSize = inRPCHeader.PacketSize();
|
||||||
|
logger.Log(std::format("rpc packet size {}", rcpPacketSize));
|
||||||
|
|
||||||
|
char buffer2[rcpPacketSize];
|
||||||
|
|
||||||
|
if ((rsize = read(sock, &buffer2, rcpPacketSize)) < 0) {
|
||||||
|
logger.Log("Error read");
|
||||||
|
close(sock);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
logger.Log(std::format("rpc packet rsize {}", rsize));
|
||||||
|
|
||||||
|
std::string rawReq(buffer2, rcpPacketSize);
|
||||||
|
|
||||||
|
control::HelloRequest pbReq;
|
||||||
|
pbReq.ParseFromString(rawReq);
|
||||||
|
logger.Log(std::format("rpcName: {}", pbReq.meta().rpcname()));
|
||||||
|
logger.Log(std::format("req message: {}\n", pbReq.message()));
|
||||||
|
|
||||||
|
control::HelloResult pbRes;
|
||||||
|
pbRes.set_message("Johnny!");
|
||||||
|
auto resMeta = pbRes.mutable_meta();
|
||||||
|
resMeta->set_error(false);
|
||||||
|
std::string rawRes;
|
||||||
|
pbRes.SerializeToString(&rawRes);
|
||||||
|
|
||||||
|
RPCHeader outRPCHeader(rawRes.size());
|
||||||
|
auto rawPacket = outRPCHeader.Encode();
|
||||||
|
rawPacket.append(rawRes);
|
||||||
|
|
||||||
|
int wsize = 0;
|
||||||
|
if ((wsize = write(sock, rawPacket.data(), rawPacket.size())) < 0) {
|
||||||
|
logger.Log("Error write");
|
||||||
|
close(sock);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.Log(std::format("Handler {} done", sock));
|
||||||
close(sock);
|
close(sock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,7 +119,7 @@ std::expected<void, std::string> Service::Bind(void) {
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
std::expected<void, std::string> Service::Listen(Handler *handler) {
|
std::expected<void, std::string> Service::Listen(SocketHandler *handler) {
|
||||||
struct sockaddr_in address;
|
struct sockaddr_in address;
|
||||||
int addrlen = sizeof(address);
|
int addrlen = sizeof(address);
|
||||||
int newsock = 0;
|
int newsock = 0;
|
||||||
@@ -72,7 +129,7 @@ std::expected<void, std::string> Service::Listen(Handler *handler) {
|
|||||||
std::string error = std::strerror(errnocopy);
|
std::string error = std::strerror(errnocopy);
|
||||||
return std::unexpected("Accept error: " + error);
|
return std::unexpected("Accept error: " + error);
|
||||||
}
|
}
|
||||||
std::jthread t(&Handler::Handle, handler, newsock);
|
std::jthread t(&SocketHandler::Handle, handler, newsock);
|
||||||
t.detach();
|
t.detach();
|
||||||
}
|
}
|
||||||
return {};
|
return {};
|
||||||
|
|||||||
+2
-2
@@ -5,7 +5,7 @@
|
|||||||
#include <expected>
|
#include <expected>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
class Handler {
|
class SocketHandler {
|
||||||
public:
|
public:
|
||||||
void Handle(int sock);
|
void Handle(int sock);
|
||||||
};
|
};
|
||||||
@@ -17,7 +17,7 @@ private:
|
|||||||
public:
|
public:
|
||||||
explicit Service(int port);
|
explicit Service(int port);
|
||||||
std::expected<void, std::string> Bind(void);
|
std::expected<void, std::string> Bind(void);
|
||||||
std::expected<void, std::string> Listen(Handler *handler);
|
std::expected<void, std::string> Listen(SocketHandler *handler);
|
||||||
~Service();
|
~Service();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -14,7 +14,7 @@ int main(int argc, char** argv) {
|
|||||||
std::cerr << bindres.error() << std::endl;
|
std::cerr << bindres.error() << std::endl;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
Handler handler;
|
SocketHandler handler;
|
||||||
auto listres = svc.Listen(&handler);
|
auto listres = svc.Listen(&handler);
|
||||||
if (!listres) {
|
if (!listres) {
|
||||||
std::cerr << listres.error() << std::endl;
|
std::cerr << listres.error() << std::endl;
|
||||||
|
|||||||
+4
-4
@@ -5,16 +5,16 @@
|
|||||||
#include <span>
|
#include <span>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
//#include <netclient.hpp>
|
#include <netclient.hpp>
|
||||||
|
|
||||||
class TCPClient {
|
class TCPClient : public NetClient {
|
||||||
private:
|
private:
|
||||||
int sock;
|
int sock;
|
||||||
int family;
|
int family;
|
||||||
public:
|
public:
|
||||||
TCPClient(void);
|
TCPClient(void);
|
||||||
std::expected<void, std::string> Connect(std::string address, const int port);
|
std::expected<void, std::string> Connect(std::string address, const int port);
|
||||||
std::expected<int, std::string> Write(std::string payload);
|
std::expected<int, std::string> Write(std::string payload) override;
|
||||||
std::expected<int, std::string> Read(std::string& buffer, int size);
|
std::expected<int, std::string> Read(std::string& buffer, int size) override;
|
||||||
~TCPClient(void);
|
~TCPClient(void);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,16 +8,16 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include <fakeconnect.hpp>
|
#include <testconnect.hpp>
|
||||||
#include <nethandler.hpp>
|
#include <nethandler.hpp>
|
||||||
#include <rpcheader.hpp>
|
#include <rpcheader.hpp>
|
||||||
|
|
||||||
|
|
||||||
FakeConnector::FakeConnector(NetHandler& hand) {
|
TestConnector::TestConnector(NetHandler& hand) {
|
||||||
handler = &hand;
|
handler = &hand;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::expected<int, std::string> FakeConnector::Write(std::string reqNetPacket) {
|
std::expected<int, std::string> TestConnector::Write(std::string reqNetPacket) {
|
||||||
std::stringstream ss(reqNetPacket);
|
std::stringstream ss(reqNetPacket);
|
||||||
// Read binary header
|
// Read binary header
|
||||||
std::string reqRawHeader;
|
std::string reqRawHeader;
|
||||||
@@ -46,11 +46,11 @@ std::expected<int, std::string> FakeConnector::Write(std::string reqNetPacket) {
|
|||||||
return reqNetPacket.size();
|
return reqNetPacket.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::expected<int, std::string> FakeConnector::Read(std::string& resData, int size) {
|
std::expected<int, std::string> TestConnector::Read(std::string& resData, int size) {
|
||||||
resData.resize(size);
|
resData.resize(size);
|
||||||
auto r = backss.readsome(resData.data(), size);
|
auto r = backss.readsome(resData.data(), size);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
FakeConnector::~FakeConnector() {}
|
TestConnector::~TestConnector() {}
|
||||||
|
|
||||||
@@ -13,15 +13,15 @@
|
|||||||
#include <netclient.hpp>
|
#include <netclient.hpp>
|
||||||
#include <nethandler.hpp>
|
#include <nethandler.hpp>
|
||||||
|
|
||||||
class FakeConnector : public NetClient {
|
class TestConnector : public NetClient {
|
||||||
private:
|
private:
|
||||||
NetHandler* handler;
|
NetHandler* handler;
|
||||||
std::stringstream backss;
|
std::stringstream backss;
|
||||||
public:
|
public:
|
||||||
FakeConnector(NetHandler& hand);
|
TestConnector(NetHandler& hand);
|
||||||
std::expected<int, std::string> Write(std::string payload) override;
|
std::expected<int, std::string> Write(std::string payload) override;
|
||||||
std::expected<int, std::string> Read(std::string& buffer, int size) override;
|
std::expected<int, std::string> Read(std::string& buffer, int size) override;
|
||||||
~FakeConnector(void);
|
~TestConnector(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -8,18 +8,18 @@
|
|||||||
|
|
||||||
#include <netclient.hpp>
|
#include <netclient.hpp>
|
||||||
#include <nethandler.hpp>
|
#include <nethandler.hpp>
|
||||||
#include <fakeconnect.hpp>
|
#include <testconnect.hpp>
|
||||||
#include <rpcheader.hpp>
|
#include <rpcheader.hpp>
|
||||||
#include <logger.hpp>
|
#include <logger.hpp>
|
||||||
|
|
||||||
#include <control.pb.h>
|
#include <control.pb.h>
|
||||||
|
|
||||||
class FakeHandler : public NetHandler {
|
class TestHandler : public NetHandler {
|
||||||
public:
|
public:
|
||||||
std::expected<void, std::string> Handle(std::string& req, std::string& res) override;
|
std::expected<void, std::string> Handle(std::string& req, std::string& res) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
std::expected<void, std::string> FakeHandler::Handle(std::string& rawReq, std::string& rawRes) {
|
std::expected<void, std::string> TestHandler::Handle(std::string& rawReq, std::string& rawRes) {
|
||||||
control::HelloRequest pbReq;
|
control::HelloRequest pbReq;
|
||||||
pbReq.ParseFromString(rawReq);
|
pbReq.ParseFromString(rawReq);
|
||||||
std::cout << std::format("rpcName: {}\n", pbReq.meta().rpcname());
|
std::cout << std::format("rpcName: {}\n", pbReq.meta().rpcname());
|
||||||
@@ -35,8 +35,8 @@ std::expected<void, std::string> FakeHandler::Handle(std::string& rawReq, std::
|
|||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
|
|
||||||
FakeHandler handler;
|
TestHandler handler;
|
||||||
FakeConnector conn(handler);
|
TestConnector conn(handler);
|
||||||
|
|
||||||
control::HelloRequest pbReq;
|
control::HelloRequest pbReq;
|
||||||
auto reqMeta = pbReq.mutable_meta();
|
auto reqMeta = pbReq.mutable_meta();
|
||||||
Reference in New Issue
Block a user