working commit

This commit is contained in:
2026-04-27 11:53:11 +02:00
parent 43d1cfc2b4
commit ac88dbd051
14 changed files with 281 additions and 148 deletions
+47 -39
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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);
}; };
+47
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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);
}; };
+5 -5
View File
@@ -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() {}
+3 -3
View File
@@ -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();