From 9540ac05d41addd18a0d4381b2d0812457d85b8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9E=D0=BB=D0=B5=D0=B3=20=D0=91=D0=BE=D1=80=D0=BE=D0=B4?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Wed, 6 May 2026 15:10:19 +0200 Subject: [PATCH] working commit --- Makefile | 75 ++++--- Makefile.am | 17 +- Makefile.in | 55 +++-- helmetcli.cpp | 23 +++ helmetd | Bin 0 -> 615136 bytes helmetd.cpp => helmetsrv.cpp | 3 - interface.cpp | 387 +++++++++++++++++++++++++++++++++++ interface.hpp | 32 +++ sockhand.cpp | 115 ++++++----- sockhand.hpp | 5 +- tcpclient.cpp | 96 --------- tcpclient.hpp | 20 -- uxclient.cpp | 200 ++++++++++++++++++ uxclient.hpp | 24 +++ uxcontrol.pb.cc | 17 +- uxcontrol.pb.h | 6 +- uxcontrol.proto | 2 +- 17 files changed, 849 insertions(+), 228 deletions(-) create mode 100644 helmetcli.cpp create mode 100755 helmetd rename helmetd.cpp => helmetsrv.cpp (99%) create mode 100644 interface.cpp create mode 100644 interface.hpp delete mode 100644 tcpclient.cpp delete mode 100644 tcpclient.hpp create mode 100644 uxclient.cpp create mode 100644 uxclient.hpp diff --git a/Makefile b/Makefile index 780a971..89350a1 100644 --- a/Makefile +++ b/Makefile @@ -88,7 +88,7 @@ POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -sbin_PROGRAMS = helmetd$(EXEEXT) +sbin_PROGRAMS = helmetsrv$(EXEEXT) helmetcli$(EXEEXT) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac @@ -104,11 +104,16 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(sbindir)" PROGRAMS = $(sbin_PROGRAMS) -am__objects_1 = uxlogger.$(OBJEXT) tservice.$(OBJEXT) \ - sockhand.$(OBJEXT) msgheader.$(OBJEXT) -am_helmetd_OBJECTS = helmetd.$(OBJEXT) $(am__objects_1) -helmetd_OBJECTS = $(am_helmetd_OBJECTS) -helmetd_LDADD = $(LDADD) +am__objects_1 = uxlogger.$(OBJEXT) msgheader.$(OBJEXT) \ + interface.$(OBJEXT) uxcontrol.pb.$(OBJEXT) +am_helmetcli_OBJECTS = helmetcli.$(OBJEXT) uxclient.$(OBJEXT) \ + $(am__objects_1) +helmetcli_OBJECTS = $(am_helmetcli_OBJECTS) +helmetcli_LDADD = $(LDADD) +am_helmetsrv_OBJECTS = helmetsrv.$(OBJEXT) tservice.$(OBJEXT) \ + sockhand.$(OBJEXT) $(am__objects_1) +helmetsrv_OBJECTS = $(am_helmetsrv_OBJECTS) +helmetsrv_LDADD = $(LDADD) AM_V_P = $(am__v_P_$(V)) am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) am__v_P_0 = false @@ -149,8 +154,8 @@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = $(helmetd_SOURCES) -DIST_SOURCES = $(helmetd_SOURCES) +SOURCES = $(helmetcli_SOURCES) $(helmetsrv_SOURCES) +DIST_SOURCES = $(helmetcli_SOURCES) $(helmetsrv_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -198,13 +203,13 @@ am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ distcleancheck_listfiles = \ find . \( -type f -a \! \ \( -name .nfs* -o -name .smb* -o -name .__afs* \) \) -print -ACLOCAL = ${SHELL} '/home/ziggi/projects/stmsg/missing' aclocal-1.17 +ACLOCAL = ${SHELL} '/home/ziggi/Projects/stvpn/missing' aclocal-1.17 AMTAR = $${TAR-tar} AM_DEFAULT_VERBOSITY = 1 ASTYLE = /bin/astyle -AUTOCONF = ${SHELL} '/home/ziggi/projects/stmsg/missing' autoconf -AUTOHEADER = ${SHELL} '/home/ziggi/projects/stmsg/missing' autoheader -AUTOMAKE = ${SHELL} '/home/ziggi/projects/stmsg/missing' automake-1.17 +AUTOCONF = ${SHELL} '/home/ziggi/Projects/stvpn/missing' autoconf +AUTOHEADER = ${SHELL} '/home/ziggi/Projects/stvpn/missing' autoheader +AUTOMAKE = ${SHELL} '/home/ziggi/Projects/stvpn/missing' automake-1.17 AWK = mawk CC = gcc CCDEPMODE = depmode=none @@ -232,7 +237,7 @@ LDFLAGS = -pthread LIBOBJS = LIBS = -Wl,--as-need -lprotobuf LTLIBOBJS = -MAKEINFO = ${SHELL} '/home/ziggi/projects/stmsg/missing' makeinfo +MAKEINFO = ${SHELL} '/home/ziggi/Projects/stvpn/missing' makeinfo MKDIR_P = /bin/mkdir -p OBJEXT = o PACKAGE = helmet @@ -249,10 +254,10 @@ SET_MAKE = SHELL = /bin/bash STRIP = VERSION = 0.0.1 -abs_builddir = /home/ziggi/projects/stmsg -abs_srcdir = /home/ziggi/projects/stmsg -abs_top_builddir = /home/ziggi/projects/stmsg -abs_top_srcdir = /home/ziggi/projects/stmsg +abs_builddir = /home/ziggi/Projects/stvpn +abs_srcdir = /home/ziggi/Projects/stvpn +abs_top_builddir = /home/ziggi/Projects/stvpn +abs_top_srcdir = /home/ziggi/Projects/stvpn ac_ct_CC = gcc ac_ct_CXX = g++ am__include = include @@ -274,7 +279,7 @@ host_alias = htmldir = ${docdir} includedir = ${prefix}/include infodir = ${datarootdir}/info -install_sh = ${SHELL} /home/ziggi/projects/stmsg/install-sh +install_sh = ${SHELL} /home/ziggi/Projects/stvpn/install-sh libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec localedir = ${datarootdir}/locale @@ -296,19 +301,27 @@ top_build_prefix = top_builddir = . top_srcdir = . AUTOMAKE_OPTIONS = foreign no-dependencies no-installinfo subdir-objects -helmetd_SOURCES = helmetd.cpp $(helmet_SOURCES) -helmet_SOURCES = \ - uxlogger.cpp uxlogger.hpp \ +helmetsrv_SOURCES = helmetsrv.cpp \ tservice.cpp tservice.hpp \ sockhand.cpp dockhand.hpp \ - msgheader.cpp msgheader.hpp + $(helmet_SOURCES) + +helmetcli_SOURCES = helmetcli.cpp \ + uxclient.cpp uxclient.hpp \ + $(helmet_SOURCES) + +helmet_SOURCES = \ + uxlogger.cpp uxlogger.hpp \ + msgheader.cpp msgheader.hpp \ + interface.cpp interface.hpp \ + uxcontrol.pb.cc uxcontrol.pb.h ASTYLE_OPTS = --indent=spaces=8 --style=java all: defines.hpp $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: -.SUFFIXES: .cpp .o .obj +.SUFFIXES: .cc .cpp .o .obj am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @@ -400,9 +413,13 @@ uninstall-sbinPROGRAMS: clean-sbinPROGRAMS: -$(am__rm_f) $(sbin_PROGRAMS) -helmetd$(EXEEXT): $(helmetd_OBJECTS) $(helmetd_DEPENDENCIES) $(EXTRA_helmetd_DEPENDENCIES) - @rm -f helmetd$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(helmetd_OBJECTS) $(helmetd_LDADD) $(LIBS) +helmetcli$(EXEEXT): $(helmetcli_OBJECTS) $(helmetcli_DEPENDENCIES) $(EXTRA_helmetcli_DEPENDENCIES) + @rm -f helmetcli$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(helmetcli_OBJECTS) $(helmetcli_LDADD) $(LIBS) + +helmetsrv$(EXEEXT): $(helmetsrv_OBJECTS) $(helmetsrv_DEPENDENCIES) $(EXTRA_helmetsrv_DEPENDENCIES) + @rm -f helmetsrv$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(helmetsrv_OBJECTS) $(helmetsrv_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -410,6 +427,12 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +.cc.o: + $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ $< + +.cc.obj: + $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + .cpp.o: $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ $< diff --git a/Makefile.am b/Makefile.am index dc0ca7b..7855877 100644 --- a/Makefile.am +++ b/Makefile.am @@ -5,15 +5,22 @@ CXXFLAGS = -std=c++23 -Wall -I. -pthread -D_GNU_SOURCE=1 -MMD -MP LDFLAGS = -pthread LIBS = -Wl,--as-need -lprotobuf -sbin_PROGRAMS = helmetd +sbin_PROGRAMS = helmetsrv helmetcli -helmetd_SOURCES = helmetd.cpp $(helmet_SOURCES) +helmetsrv_SOURCES = helmetsrv.cpp \ + tservice.cpp tservice.hpp \ + sockhand.cpp dockhand.hpp \ + $(helmet_SOURCES) + +helmetcli_SOURCES = helmetcli.cpp \ + uxclient.cpp uxclient.hpp \ + $(helmet_SOURCES) helmet_SOURCES = \ uxlogger.cpp uxlogger.hpp \ - tservice.cpp tservice.hpp \ - sockhand.cpp dockhand.hpp \ - msgheader.cpp msgheader.hpp + msgheader.cpp msgheader.hpp \ + interface.cpp interface.hpp \ + uxcontrol.pb.cc uxcontrol.pb.h ASTYLE_OPTS = --indent=spaces=8 --style=java format: diff --git a/Makefile.in b/Makefile.in index e83e849..e8cb8dd 100644 --- a/Makefile.in +++ b/Makefile.in @@ -88,7 +88,7 @@ POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -sbin_PROGRAMS = helmetd$(EXEEXT) +sbin_PROGRAMS = helmetsrv$(EXEEXT) helmetcli$(EXEEXT) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac @@ -104,11 +104,16 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(sbindir)" PROGRAMS = $(sbin_PROGRAMS) -am__objects_1 = uxlogger.$(OBJEXT) tservice.$(OBJEXT) \ - sockhand.$(OBJEXT) msgheader.$(OBJEXT) -am_helmetd_OBJECTS = helmetd.$(OBJEXT) $(am__objects_1) -helmetd_OBJECTS = $(am_helmetd_OBJECTS) -helmetd_LDADD = $(LDADD) +am__objects_1 = uxlogger.$(OBJEXT) msgheader.$(OBJEXT) \ + interface.$(OBJEXT) uxcontrol.pb.$(OBJEXT) +am_helmetcli_OBJECTS = helmetcli.$(OBJEXT) uxclient.$(OBJEXT) \ + $(am__objects_1) +helmetcli_OBJECTS = $(am_helmetcli_OBJECTS) +helmetcli_LDADD = $(LDADD) +am_helmetsrv_OBJECTS = helmetsrv.$(OBJEXT) tservice.$(OBJEXT) \ + sockhand.$(OBJEXT) $(am__objects_1) +helmetsrv_OBJECTS = $(am_helmetsrv_OBJECTS) +helmetsrv_LDADD = $(LDADD) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -149,8 +154,8 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = $(helmetd_SOURCES) -DIST_SOURCES = $(helmetd_SOURCES) +SOURCES = $(helmetcli_SOURCES) $(helmetsrv_SOURCES) +DIST_SOURCES = $(helmetcli_SOURCES) $(helmetsrv_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -296,19 +301,27 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign no-dependencies no-installinfo subdir-objects -helmetd_SOURCES = helmetd.cpp $(helmet_SOURCES) -helmet_SOURCES = \ - uxlogger.cpp uxlogger.hpp \ +helmetsrv_SOURCES = helmetsrv.cpp \ tservice.cpp tservice.hpp \ sockhand.cpp dockhand.hpp \ - msgheader.cpp msgheader.hpp + $(helmet_SOURCES) + +helmetcli_SOURCES = helmetcli.cpp \ + uxclient.cpp uxclient.hpp \ + $(helmet_SOURCES) + +helmet_SOURCES = \ + uxlogger.cpp uxlogger.hpp \ + msgheader.cpp msgheader.hpp \ + interface.cpp interface.hpp \ + uxcontrol.pb.cc uxcontrol.pb.h ASTYLE_OPTS = --indent=spaces=8 --style=java all: defines.hpp $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: -.SUFFIXES: .cpp .o .obj +.SUFFIXES: .cc .cpp .o .obj am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @@ -400,9 +413,13 @@ uninstall-sbinPROGRAMS: clean-sbinPROGRAMS: -$(am__rm_f) $(sbin_PROGRAMS) -helmetd$(EXEEXT): $(helmetd_OBJECTS) $(helmetd_DEPENDENCIES) $(EXTRA_helmetd_DEPENDENCIES) - @rm -f helmetd$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(helmetd_OBJECTS) $(helmetd_LDADD) $(LIBS) +helmetcli$(EXEEXT): $(helmetcli_OBJECTS) $(helmetcli_DEPENDENCIES) $(EXTRA_helmetcli_DEPENDENCIES) + @rm -f helmetcli$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(helmetcli_OBJECTS) $(helmetcli_LDADD) $(LIBS) + +helmetsrv$(EXEEXT): $(helmetsrv_OBJECTS) $(helmetsrv_DEPENDENCIES) $(EXTRA_helmetsrv_DEPENDENCIES) + @rm -f helmetsrv$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(helmetsrv_OBJECTS) $(helmetsrv_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -410,6 +427,12 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +.cc.o: + $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ $< + +.cc.obj: + $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + .cpp.o: $(AM_V_CXX)$(CXXCOMPILE) -c -o $@ $< diff --git a/helmetcli.cpp b/helmetcli.cpp new file mode 100644 index 0000000..ded3d82 --- /dev/null +++ b/helmetcli.cpp @@ -0,0 +1,23 @@ + +#include +#include +#include + +#include +#include + +int main(int argc, char** argv) { + UxClient client; + auto connectRes = client.Connect("127.0.0.1", 1025); + if (!connectRes) { + uxlogger.Log(connectRes.error()); + return 1; + } + auto runRes = client.Run(); + if (!runRes) { + uxlogger.Log(runRes.error()); + return 1; + } + +} + diff --git a/helmetd b/helmetd new file mode 100755 index 0000000000000000000000000000000000000000..b8078e189b8c60e2a6803eea0163f140507872dc GIT binary patch literal 615136 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
SLdJ%ai(t*>i%uB1<~0vfIm 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

-2eTI8H5=7SkhRNEHi_#WZ(D3 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 q0xD|z^}D#fwe3<<{(kV5jMz`3yZT #include - - - int main(int argc, char** argv) { TCPService service(1025); auto bindRes = service.Bind(); diff --git a/interface.cpp b/interface.cpp new file mode 100644 index 0000000..2431bd8 --- /dev/null +++ b/interface.cpp @@ -0,0 +1,387 @@ + +extern "C" { +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +} + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +std::expected Interface::Create(const std::string name) { + if ((tunfd = open("/dev/net/tun", O_RDWR | O_CLOEXEC)) < 0) { + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Create interface error: " + error); + } + struct ifreq ifr; + memset(&ifr, 0, sizeof(ifr)); + ifr.ifr_flags = IFF_TUN | IFF_NO_PI; + strncpy(ifr.ifr_name, name.c_str(), IFNAMSIZ - 1); + if (ioctl(tunfd, TUNSETIFF, (void*)(&ifr)) < 0) { + close(tunfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Create interface error: " + error); + } + ifname = ifr.ifr_name; +#if 0 + if (ioctl(tunfd, TUNSETPERSIST, 0) < 0) { + close(tunfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Create interface error: " + error); + } +#endif + + //struct ifreq ifr; + memset(&ifr, 0, sizeof(ifr)); + int sockfd = 0; + if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { + close(tunfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Get MTU error: " + error); + } + strncpy(ifr.ifr_name, ifname.c_str(), IFNAMSIZ - 1); + if (ioctl(sockfd, SIOCGIFMTU, &ifr) < 0) { + close(tunfd); + close(sockfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Get MTU error: " + error); + } + close(sockfd); + mtu = ifr.ifr_mtu; + return {}; +} + +std::expected Interface::SetMTU(int ifmtu) { + int sockfd = 0; + if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Set MTU error: " + error); + } + struct ifreq ifr; + memset(&ifr, 0, sizeof(ifr)); + strncpy(ifr.ifr_name, ifname.c_str(), IFNAMSIZ - 1); + ifr.ifr_mtu = ifmtu; + if (ioctl(sockfd, SIOCSIFMTU, &ifr) < 0) { + close(sockfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Set MTU error: " + error); + } + close(sockfd); + return {}; +} + +std::expected Interface::GetMTU(void) { + struct ifreq ifr; + memset(&ifr, 0, sizeof(ifr)); + int sockfd = 0; + if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Get MTU error: " + error); + } + strncpy(ifr.ifr_name, ifname.c_str(), IFNAMSIZ - 1); + if (ioctl(sockfd, SIOCGIFMTU, &ifr) < 0) { + close(sockfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Get MTU error: " + error); + } + close(sockfd); + return ifr.ifr_mtu; +} + +std::expected Interface::GetIP4Address(void) { + struct ifreq ifr; + memset(&ifr, 0, sizeof(ifr)); + int sockfd = 0; + if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Get MTU error: " + error); + } + ifr.ifr_addr.sa_family = AF_INET; + strncpy(ifr.ifr_name, ifname.c_str(), IFNAMSIZ - 1); + + if (ioctl(sockfd, SIOCGIFADDR, &ifr) < 0) { + close(sockfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Get MTU error: " + error); + } + close(sockfd); + + auto sinaddr = ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr; + std::string addr = inet_ntoa(sinaddr); + return addr; +} + +std::expected Interface::SetIP4Address(std::string ipaddr) { + struct ifreq ifr; + memset(&ifr, 0, sizeof(ifr)); + int sockfd = 0; + if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Set address error: " + error); + } + ifr.ifr_addr.sa_family = AF_INET; + strncpy(ifr.ifr_name, ifname.c_str(), IFNAMSIZ - 1); + + struct sockaddr_in* addr = (struct sockaddr_in *)&ifr.ifr_addr; + addr->sin_family = AF_INET; + if (inet_pton(AF_INET, ipaddr.c_str(), &addr->sin_addr) <= 0) { + close(sockfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Set address error: " + error); + } + if (ioctl(sockfd, SIOCSIFADDR, &ifr) < 0) { + close(sockfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Set address error: " + error); + } + close(sockfd); + return {}; +} + +std::expected Interface::SetIP4Netmask(int prefix) { + if (prefix < 0 || prefix > 32) { + return std::unexpected("Invalid prefix"); + } + uint32_t mask = (prefix == 0) ? 0 : (~0U << (32 - prefix)); + + struct in_addr maskaddr; + maskaddr.s_addr = htonl(mask); + char buffer[INET_ADDRSTRLEN]; + if (inet_ntop(AF_INET, &maskaddr, buffer, sizeof(buffer)) == NULL) { + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Set1 netmask error: " + error); + } + auto netmask = std::string(buffer); + + struct ifreq ifr; + memset(&ifr, 0, sizeof(ifr)); + int sockfd = 0; + if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Set2 netmask error: " + error); + } + ifr.ifr_addr.sa_family = AF_INET; + strncpy(ifr.ifr_name, ifname.c_str(), IFNAMSIZ - 1); + + struct sockaddr_in* addr = (struct sockaddr_in *)&ifr.ifr_addr; + addr->sin_family = AF_INET; + if (inet_pton(AF_INET, netmask.c_str(), &addr->sin_addr) < 0) { + close(sockfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Set3 netmask error: " + error); + } + if (ioctl(sockfd, SIOCSIFNETMASK, &ifr) < 0) { + close(sockfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Set4 netmask error: " + error); + } + close(sockfd); + return {}; +} + +std::expected Interface::Up(void) { + int sockfd = 0; + if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Up interface error: " + error); + } + + struct ifreq ifr; + memset(&ifr, 0, sizeof(ifr)); + strncpy(ifr.ifr_name, ifname.c_str(), IFNAMSIZ - 1); + if (ioctl(sockfd, SIOCGIFFLAGS, &ifr) < 0) { + close(sockfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Up interface error: " + error); + } + ifr.ifr_flags |= (IFF_UP | IFF_RUNNING); + if (ioctl(sockfd, SIOCSIFFLAGS, &ifr) < 0) { + close(sockfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Up interface error: " + error); + } + close(sockfd); + return {}; +} + +std::expected Interface::Down(void) { + int sockfd = 0; + if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Up interface error: " + error); + } + struct ifreq ifr; + memset(&ifr, 0, sizeof(ifr)); + strncpy(ifr.ifr_name, ifname.c_str(), IFNAMSIZ - 1); + if (ioctl(sockfd, SIOCGIFFLAGS, &ifr) < 0) { + close(sockfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Up interface error: " + error); + } + ifr.ifr_flags &= ~IFF_UP; + if (ioctl(sockfd, SIOCSIFFLAGS, &ifr) < 0) { + close(sockfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Up interface error: " + error); + } + close(sockfd); + return {}; +} + +std::expected Interface::Read() { + char buffer[mtu]; + int rsize = 0; + if ((rsize = read(tunfd, buffer, sizeof(buffer))) < 0) { + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Read interface error: " + error); + } + std::string rdata; + rdata.append(buffer, rsize); + return rdata; +} + +std::string Interface::Name() { + return ifname; +} + +int Interface::MTU() { + return mtu; +} + +Interface::~Interface() { + close(tunfd); +} + + +std::expected Interface::UpN(void) { + int netlinkfd = 0; + if ((netlinkfd = socket(AF_NETLINK, SOCK_RAW | SOCK_CLOEXEC, NETLINK_ROUTE)) < 0) { + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Create interface error: " + error); + } + + struct { + struct nlmsghdr header; + struct ifinfomsg content; + } request; + + memset(&request, 0, sizeof request); + request.header.nlmsg_len = NLMSG_LENGTH(sizeof request.content); + request.header.nlmsg_flags = NLM_F_REQUEST; + request.header.nlmsg_type = RTM_NEWLINK; + request.content.ifi_index = if_nametoindex(ifname.c_str()); + request.content.ifi_flags = IFF_UP; + request.content.ifi_change = 1; + + if (send(netlinkfd, &request, request.header.nlmsg_len, 0) < 0) { + close(netlinkfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Up interface error: " + error); + } + close(netlinkfd); + return {}; +} + +std::expected Interface::SetIP4AddrMask(const std::string address, const int prefix) { + int netlinkfd = 0; + if ((netlinkfd = socket(AF_NETLINK, SOCK_RAW | SOCK_CLOEXEC, NETLINK_ROUTE)) < 0) { + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Create interface error: " + error); + } + + int rc = 0; + struct sockaddr_nl sockaddr; + memset(&sockaddr, 0, sizeof sockaddr); + sockaddr.nl_family = AF_NETLINK; + if ((rc = bind(netlinkfd, (struct sockaddr*) &sockaddr, sizeof sockaddr))< 0) { + close(netlinkfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Set interface address error: " + error); + } + struct { + struct nlmsghdr header; + struct ifaddrmsg content; + char attributes_buf[64]; + } request; + + struct rtattr *request_attr; + size_t attributes_buf_avail = sizeof request.attributes_buf; + + memset(&request, 0, sizeof request); + request.header.nlmsg_len = NLMSG_LENGTH(sizeof request.content); + request.header.nlmsg_flags = NLM_F_REQUEST | NLM_F_EXCL | NLM_F_CREATE; + request.header.nlmsg_type = RTM_NEWADDR; + request.content.ifa_index = if_nametoindex(ifname.c_str()); + request.content.ifa_family = AF_INET; + request.content.ifa_prefixlen = prefix; + + /* request.attributes[IFA_LOCAL] = address */ + request_attr = IFA_RTA(&request.content); + request_attr->rta_type = IFA_LOCAL; + request_attr->rta_len = RTA_LENGTH(sizeof (struct in_addr)); + request.header.nlmsg_len += request_attr->rta_len; + inet_pton(AF_INET, address.c_str(), RTA_DATA(request_attr)); + + /* request.attributes[IFA_ADDRESS] = address */ + request_attr = RTA_NEXT(request_attr, attributes_buf_avail); + request_attr->rta_type = IFA_ADDRESS; + request_attr->rta_len = RTA_LENGTH(sizeof (struct in_addr)); + request.header.nlmsg_len += request_attr->rta_len; + inet_pton(AF_INET, address.c_str(), RTA_DATA(request_attr)); + + if (send(netlinkfd, &request, request.header.nlmsg_len, 0) < 0) { + close(netlinkfd); + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Set interface address error: " + error); + } + close(netlinkfd); + return {}; +} diff --git a/interface.hpp b/interface.hpp new file mode 100644 index 0000000..57c5935 --- /dev/null +++ b/interface.hpp @@ -0,0 +1,32 @@ + +#ifndef INTERFACE_HPP +#define INTERFACE_HPP + +class Interface { +private: + int tunfd; + std::string ifname; + int mtu; +public: + std::expected Create(const std::string name); + std::string Name(void); + //int TunDescr(void); + + int MTU(); + std::expected SetMTU(int mtu); + std::expected GetMTU(void); + std::expected SetIP4Address(std::string ipaddr); + std::expected SetIP4Netmask(int netmask); + std::expected GetIP4Address(void); + + std::expected Up(void); + std::expected Down(void); + std::expected UpN(void); + std::expected SetIP4AddrMask(const std::string address, const int prefix); + + std::expected Read(void); + + ~Interface(); +}; + +#endif diff --git a/sockhand.cpp b/sockhand.cpp index 6aa46b3..4560ee8 100644 --- a/sockhand.cpp +++ b/sockhand.cpp @@ -1,4 +1,8 @@ +extern "C" { +#include +} + #include #include #include @@ -6,52 +10,43 @@ #include #include #include +#include #include #include #include -//#include + +#include using namespace std::chrono_literals; -void SocketHandler::RecvMessages(void) { - while (true) { - uxlogger.Log("Handle socket"); - int rsize = 0; - std::string rawHeader(msgHeaderSize, 0); - { - if ((rsize = read(sock, rawHeader.data(), rawHeader.size())) < 0) { - int errnoCopy = errno; - std::string error = std::strerror(errnoCopy); - uxlogger.Log(std::format("Read header error: {}", error)); - break; - } - } - if (rsize < msgHeaderSize) { - uxlogger.Log(std::format("Read only {} from {} bytes", rsize, msgHeaderSize)); - break; - } - MessageHeader header; - auto decodeRes = header.Decode(rawHeader); - if (!decodeRes) { - uxlogger.Log(std::format("Decode header error: {}", decodeRes.error())); - } - std::string rawMessage(header.PacketSize(), 0); - { - if ((rsize = read(sock, rawMessage.data(), rawMessage.size())) < 0) { - int errnoCopy = errno; - std::string error = std::strerror(errnoCopy); - uxlogger.Log(std::format("Read message error: {}", error)); - break; - } - } +void SocketHandler::Handle(int newsock) { + sock = newsock; + + auto createRes = interface.Create(std::format("uxsrv{}", sock)); + if (!createRes) { + uxlogger.Log(createRes.error()); + return; } - done.release(); - uxlogger.Log("RecvMessages done"); + auto upRes = interface.Up(); + if (!createRes) { + uxlogger.Log(createRes.error()); + return; + } + + std::thread sendThr(&SocketHandler::SendMessages, this); + sendThr.detach(); + + std::thread recvThr(&SocketHandler::RecvMessages, this); + recvThr.detach(); + + done.acquire(); + uxlogger.Log("Handler done"); } + void SocketHandler::SendMessages(void) { while (true) { MessageHeader header(0); @@ -68,20 +63,48 @@ void SocketHandler::SendMessages(void) { std::this_thread::sleep_for(std::chrono::seconds(1)); } done.release(); - uxlogger.Log("SendMessages done"); + uxlogger.Log("Send messages done"); } -void SocketHandler::Handle(int newsock) { - sock = newsock; +void SocketHandler::RecvMessages(void) { + while (true) { + int rsize = 0; + std::string rawHeader(msgHeaderSize, 0); + if ((rsize = recv(sock, rawHeader.data(), rawHeader.size(), MSG_WAITALL)) < 0) { + int errnoCopy = errno; + std::string error = std::strerror(errnoCopy); + uxlogger.Log(std::format("Read header error: {}", error)); + break; + } + if (rsize < msgHeaderSize) { + uxlogger.Log(std::format("Read only {} from {} bytes", rsize, msgHeaderSize)); + break; + } + uxlogger.Log(std::format("Receive header rsize {}", rsize)); - std::thread sendThr(&SocketHandler::SendMessages, this); - sendThr.detach(); + MessageHeader header; + auto decodeRes = header.Decode(rawHeader); + if (!decodeRes) { + uxlogger.Log(std::format("Decode header error: {}", decodeRes.error())); + break; + } + auto pSize = header.PacketSize(); + uxlogger.Log(std::format("Message size {}", pSize)); - std::thread recvThr(&SocketHandler::RecvMessages, this); - recvThr.detach(); - - done.acquire(); - uxlogger.Log("Handler done"); + if (pSize > 0) { + std::string rawMessage(pSize, 0); + if ((rsize = recv(sock, rawMessage.data(), rawMessage.size(), MSG_WAITALL)) < 0) { + int errnoCopy = errno; + std::string error = std::strerror(errnoCopy); + uxlogger.Log(std::format("Read message error: {}", error)); + break; + } + uxlogger.Log(std::format("Receive message rsize {}", rsize)); + uxcontrol::Message msg; + msg.ParseFromString(rawMessage); + uxlogger.Log(std::format("Receive message, kind {}", msg.meta().kind())); + } + } + done.release(); + uxlogger.Log("Recv messages done"); } - - diff --git a/sockhand.hpp b/sockhand.hpp index 212b374..63557c5 100644 --- a/sockhand.hpp +++ b/sockhand.hpp @@ -7,11 +7,14 @@ #include #include +#include + class SocketHandler { private: int sock; - std::mutex sockMtx; + std::mutex intMtx; std::binary_semaphore done{0}; + Interface interface; public: void Handle(int newsock); void RecvMessages(void); diff --git a/tcpclient.cpp b/tcpclient.cpp deleted file mode 100644 index 2ba781a..0000000 --- a/tcpclient.cpp +++ /dev/null @@ -1,96 +0,0 @@ -extern "C" { -#include -#include -#include -#include -#include -#include -#include -#include -} - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - - -#include - -TCPClient::TCPClient() { - sock = 0; - family = 0; -} - -std::expected TCPClient::Connect(const std::string naddress, const int port) { - - struct sockaddr_in sa; - if (inet_pton(AF_INET, naddress.c_str(), &(sa.sin_addr)) == 1) { - family = AF_INET; - } else if (inet_pton(AF_INET6, naddress.c_str(), &(sa.sin_addr)) == 1) { - family = AF_INET6; - } else { - int errnocopy = errno; - std::string error = std::strerror(errnocopy); - return std::unexpected("Incorrect address " + naddress); - } - - sock = socket(family, SOCK_STREAM, 0); - if (sock < 0) { - return std::unexpected("Error opening socket"); - } - struct sockaddr_in serv_addr; - memset(&serv_addr, 0, sizeof(serv_addr)); - - serv_addr.sin_family = AF_INET; - serv_addr.sin_port = htons(port); - const char* addr = naddress.data(); - if (inet_pton(AF_INET, addr, &serv_addr.sin_addr) <= 0) { - return std::unexpected("Invalid server IP address"); - } - - struct timeval timeout; - timeout.tv_sec = 5; - timeout.tv_usec = 0; - - if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof timeout) < 0) { - return std::unexpected("Set timeout error"); - } - if (setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof timeout) < 0) { - return std::unexpected("Set timeout error"); - } - if (connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) { - return std::unexpected("Connecting error"); - } - return {}; -} - -std::expected TCPClient::Write(std::string payload) { - int n = 0; - if ((n = write(sock, payload.data(), payload.size())) < 0) { - return std::unexpected("Write error"); - } - return n; -} - -std::expected TCPClient::Read(std::string& res, int size) { - char buffer[size + 1]; - memset(&buffer, 0, size + 1); - int rsize = 0; - if ((rsize = read(sock, &buffer, size)) < 0) { - return std::unexpected("Read error"); - } - res.append(buffer, rsize); - return rsize; -} - -TCPClient::~TCPClient() { - close(sock); -} - diff --git a/tcpclient.hpp b/tcpclient.hpp deleted file mode 100644 index 8b2db1d..0000000 --- a/tcpclient.hpp +++ /dev/null @@ -1,20 +0,0 @@ - -#include -#include -#include -#include -#include - -#include - -class TCPClient : public NetClient { -private: - int sock; - int family; -public: - TCPClient(void); - std::expected Connect(std::string address, const int port); - std::expected Write(std::string payload) override; - std::expected Read(std::string& buffer, int size) override; - ~TCPClient(void); -}; diff --git a/uxclient.cpp b/uxclient.cpp new file mode 100644 index 0000000..954fd39 --- /dev/null +++ b/uxclient.cpp @@ -0,0 +1,200 @@ +extern "C" { +#include +#include +#include +#include +#include +#include +#include +} + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +using namespace std::chrono_literals; + +UxClient::UxClient() { + sock = 0; + family = 0; +} + +std::expected UxClient::Connect(const std::string naddress, const int port) { + + struct sockaddr_in sa; + if (inet_pton(AF_INET, naddress.c_str(), &(sa.sin_addr)) == 1) { + family = AF_INET; + } else if (inet_pton(AF_INET6, naddress.c_str(), &(sa.sin_addr)) == 1) { + family = AF_INET6; + } else { + int errnocopy = errno; + std::string error = std::strerror(errnocopy); + return std::unexpected("Incorrect address " + naddress); + } + + sock = socket(family, SOCK_STREAM, 0); + if (sock < 0) { + return std::unexpected("Error opening socket"); + } + struct sockaddr_in serv_addr; + memset(&serv_addr, 0, sizeof(serv_addr)); + + serv_addr.sin_family = AF_INET; + serv_addr.sin_port = htons(port); + const char* addr = naddress.data(); + if (inet_pton(AF_INET, addr, &serv_addr.sin_addr) <= 0) { + return std::unexpected("Invalid server IP address"); + } + + struct timeval timeout; + timeout.tv_sec = 5; + timeout.tv_usec = 0; + + if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof timeout) < 0) { + int errnoCopy = errno; + std::string error = std::strerror(errnoCopy); + return std::unexpected(std::format("Set timeout error: {}", error)); + } + if (setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof timeout) < 0) { + int errnoCopy = errno; + std::string error = std::strerror(errnoCopy); + return std::unexpected(std::format("Set send timeout error: {}", error)); + } + if (connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) { + int errnoCopy = errno; + std::string error = std::strerror(errnoCopy); + return std::unexpected(std::format("Connect error: {}", error)); + + } + return {}; +} + +void UxClient::RecvMessages(void) { + while (true) { + int rsize = 0; + std::string rawHeader(msgHeaderSize, 0); + if ((rsize = recv(sock, rawHeader.data(), rawHeader.size(), MSG_WAITALL)) < 0) { + int errnoCopy = errno; + std::string error = std::strerror(errnoCopy); + uxlogger.Log(std::format("Read header error: {}", error)); + break; + } + if (rsize < msgHeaderSize) { + uxlogger.Log(std::format("Read only {} from {} bytes", rsize, msgHeaderSize)); + break; + } + MessageHeader header; + auto decodeRes = header.Decode(rawHeader); + if (!decodeRes) { + uxlogger.Log(std::format("Decode header error: {}", decodeRes.error())); + } + auto pSize = header.PacketSize(); + if (pSize > 0) { + std::string rawMessage(pSize, 0); + if ((rsize = recv(sock, rawMessage.data(), rawMessage.size(), MSG_WAITALL)) < 0) { + int errnoCopy = errno; + std::string error = std::strerror(errnoCopy); + uxlogger.Log(std::format("Read message error: {}", error)); + break; + } + } + uxlogger.Log(std::format("Receive message with size {}", pSize)); + } + done.release(); + return; +} + +void UxClient::SendMessages(void) { + while (true) { + + auto readRes = interface.Read(); + if (!readRes) { + uxlogger.Log(std::format("Read packet error: {}", readRes.error())); + } + auto packet = readRes.value(); + uxlogger.Log(std::format("Read packet size {}", packet.size())); + + int wsize = 0; + MessageHeader header(packet.size()); + auto rawHeader = header.Encode(); + if ((wsize = write(sock, rawHeader.data(), rawHeader.size())) < 0) { + int errnoCopy = errno; + std::string error = std::strerror(errnoCopy); + uxlogger.Log(std::format("Write header error: {}", error)); + break; + } + uxlogger.Log(std::format("Write header wsize: {}", wsize)); + + uxcontrol::InternetPacket intPacket; + auto meta = intPacket.mutable_meta(); + meta->set_kind("internetPacket"); + intPacket.set_payload(packet); + + std::string rawMessage; + intPacket.SerializeToString(&rawMessage); + + if ((wsize = write(sock, rawMessage.data(), rawMessage.size())) < 0) { + int errnoCopy = errno; + std::string error = std::strerror(errnoCopy); + uxlogger.Log(std::format("Write message error: {}", error)); + break; + } + uxlogger.Log("Send message"); + + //std::this_thread::sleep_for(std::chrono::seconds(1)); + } + done.release(); + return; +} + + +std::expected UxClient::Run(void) { + + auto createRes = interface.Create("uxcli0"); + if (!createRes) { + return std::unexpected(createRes.error()); + } + auto setAddrRes = interface.SetIP4Address("10.1.1.2"); + if (!setAddrRes) { + return std::unexpected(setAddrRes.error()); + } + auto setMaskRes = interface.SetIP4Netmask(24); + if (!setMaskRes) { + return std::unexpected(setMaskRes.error()); + } + auto setMTURes = interface.SetMTU(1280); + if (!setMTURes) { + return std::unexpected(setMTURes.error()); + } + auto upRes = interface.Up(); + if (!createRes) { + return std::unexpected(createRes.error()); + } + std::thread sendThr(&UxClient::SendMessages, this); + sendThr.detach(); + + std::thread recvThr(&UxClient::RecvMessages, this); + recvThr.detach(); + + done.acquire(); + uxlogger.Log("Client done"); + return {}; +} + +UxClient::~UxClient() { + if (sock != 0) { + close(sock); + } +} + + diff --git a/uxclient.hpp b/uxclient.hpp new file mode 100644 index 0000000..290e736 --- /dev/null +++ b/uxclient.hpp @@ -0,0 +1,24 @@ + +#include +#include +#include +#include +#include +#include + +#include + +class UxClient { +private: + int family; + int sock; + std::binary_semaphore done{0}; + Interface interface; +public: + UxClient(void); + std::expected Connect(std::string address, const int port); + void SendMessages(void); + void RecvMessages(void); + std::expected Run(void); + ~UxClient(void); +}; diff --git a/uxcontrol.pb.cc b/uxcontrol.pb.cc index 364982b..25d99ea 100644 --- a/uxcontrol.pb.cc +++ b/uxcontrol.pb.cc @@ -269,7 +269,7 @@ const char descriptor_table_protodef_uxcontrol_2eproto[] PROTOBUF_SECTION_VARIAB "\014\n\004kind\030\001 \001(\t\"+\n\007Message\022 \n\004meta\030\001 \001(\0132\022" ".uxcontrol.MsgMeta\"C\n\016InternetPacket\022 \n\004" "meta\030\001 \001(\0132\022.uxcontrol.MsgMeta\022\017\n\007payloa" - "d\030\002 \001(\t\"=\n\010HelloMsg\022 \n\004meta\030\001 \001(\0132\022.uxco" + "d\030\002 \001(\014\"=\n\010HelloMsg\022 \n\004meta\030\001 \001(\0132\022.uxco" "ntrol.MsgMeta\022\017\n\007message\030\002 \001(\t\"\027\n\007ReqMet" "a\022\014\n\004kind\030\001 \001(\t\")\n\007ResMeta\022\r\n\005error\030\001 \001(" "\010\022\017\n\007message\030\002 \001(\t\"+\n\007Request\022 \n\004meta\030\001 " @@ -795,13 +795,12 @@ const char* InternetPacket::_InternalParse(const char* ptr, ::_pbi::ParseContext } else goto handle_unusual; continue; - // string payload = 2; + // bytes payload = 2; case 2: if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { auto str = _internal_mutable_payload(); ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); CHK_(ptr); - CHK_(::_pbi::VerifyUTF8(str, "uxcontrol.InternetPacket.payload")); } else goto handle_unusual; continue; @@ -841,13 +840,9 @@ uint8_t* InternetPacket::_InternalSerialize( _Internal::meta(this).GetCachedSize(), target, stream); } - // string payload = 2; + // bytes payload = 2; if (!this->_internal_payload().empty()) { - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( - this->_internal_payload().data(), static_cast(this->_internal_payload().length()), - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, - "uxcontrol.InternetPacket.payload"); - target = stream->WriteStringMaybeAliased( + target = stream->WriteBytesMaybeAliased( 2, this->_internal_payload(), target); } @@ -867,10 +862,10 @@ size_t InternetPacket::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - // string payload = 2; + // bytes payload = 2; if (!this->_internal_payload().empty()) { total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize( this->_internal_payload()); } diff --git a/uxcontrol.pb.h b/uxcontrol.pb.h index de593e4..8a78980 100644 --- a/uxcontrol.pb.h +++ b/uxcontrol.pb.h @@ -526,7 +526,7 @@ class InternetPacket final : kPayloadFieldNumber = 2, kMetaFieldNumber = 1, }; - // string payload = 2; + // bytes payload = 2; void clear_payload(); const std::string& payload() const; template @@ -1972,7 +1972,7 @@ inline void InternetPacket::set_allocated_meta(::uxcontrol::MsgMeta* meta) { // @@protoc_insertion_point(field_set_allocated:uxcontrol.InternetPacket.meta) } -// string payload = 2; +// bytes payload = 2; inline void InternetPacket::clear_payload() { _impl_.payload_.ClearToEmpty(); } @@ -1984,7 +1984,7 @@ template inline PROTOBUF_ALWAYS_INLINE void InternetPacket::set_payload(ArgT0&& arg0, ArgT... args) { - _impl_.payload_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + _impl_.payload_.SetBytes(static_cast(arg0), args..., GetArenaForAllocation()); // @@protoc_insertion_point(field_set:uxcontrol.InternetPacket.payload) } inline std::string* InternetPacket::mutable_payload() { diff --git a/uxcontrol.proto b/uxcontrol.proto index 60c9a13..6abb9d4 100644 --- a/uxcontrol.proto +++ b/uxcontrol.proto @@ -15,7 +15,7 @@ message Message { message InternetPacket { MsgMeta meta = 1; - string payload = 2; + bytes payload = 2; } message HelloMsg {