40 lines
979 B
C++
40 lines
979 B
C++
|
|
extern "C" {
|
|
#include <arpa/inet.h>
|
|
}
|
|
|
|
#include <expected>
|
|
#include <string>
|
|
#include <vector>
|
|
#include <span>
|
|
#include <iostream>
|
|
#include <thread>
|
|
#include <chrono>
|
|
#include <cstring>
|
|
|
|
#include <tunnel.hpp>
|
|
#include <service.hpp>
|
|
#include <server.hpp>
|
|
|
|
|
|
std::expected<void, std::string> Server::Create(const std::string name, const std::string addr, const int prefix) {
|
|
auto createres = iface.Create(name);
|
|
if (!createres) {
|
|
return std::unexpected(createres.error());
|
|
}
|
|
auto setaddrres = iface.SetIP4Address(addr);
|
|
if (!setaddrres) {
|
|
return std::unexpected(setaddrres.error());
|
|
}
|
|
auto setprefixres = iface.SetIP4Netmask(24);
|
|
if (!setprefixres) {
|
|
return std::unexpected(setprefixres.error());
|
|
}
|
|
auto setmtures = iface.SetMTU(1240);
|
|
if (!setmtures) {
|
|
return std::unexpected(setmtures.error());
|
|
}
|
|
return {};
|
|
}
|
|
|