diff --git a/.drone.jsonnet b/.drone.jsonnet index 203746cca..e2890382a 100644 --- a/.drone.jsonnet +++ b/.drone.jsonnet @@ -336,7 +336,7 @@ local docs_pipeline(name, image, extra_cmds=[], allow_fail=false) = { 'echo "Building on ${DRONE_STAGE_MACHINE}"', apt_get_quiet + ' update', apt_get_quiet + ' install -y eatmydata', - 'eatmydata ' + apt_get_quiet + ' install --no-install-recommends -y git clang-format-11 jsonnet', + 'eatmydata ' + apt_get_quiet + ' install --no-install-recommends -y git clang-format-14 jsonnet', './contrib/ci/drone-format-verify.sh', ], }], diff --git a/contrib/ci/drone-format-verify.sh b/contrib/ci/drone-format-verify.sh index 387340018..197b2e2a9 100755 --- a/contrib/ci/drone-format-verify.sh +++ b/contrib/ci/drone-format-verify.sh @@ -1,6 +1,9 @@ #!/usr/bin/env bash test "x$IGNORE" != "x" && exit 0 + +. $(dirname $0)/../format-version.sh + repo=$(readlink -e $(dirname $0)/../../) -clang-format-11 -i $(find $repo/jni $repo/daemon $repo/llarp $repo/include $repo/pybind | grep -E '\.[hc](pp)?$') +$CLANG_FORMAT -i $(find $repo/jni $repo/daemon $repo/llarp $repo/include $repo/pybind | grep -E '\.[hc](pp)?$') jsonnetfmt -i $repo/.drone.jsonnet git --no-pager diff --exit-code --color || (echo -ne '\n\n\e[31;1mLint check failed; please run ./contrib/format.sh\e[0m\n\n' ; exit 1) diff --git a/contrib/format-version.sh b/contrib/format-version.sh new file mode 100644 index 000000000..d8fe6e855 --- /dev/null +++ b/contrib/format-version.sh @@ -0,0 +1,19 @@ + +CLANG_FORMAT_DESIRED_VERSION=14 + +CLANG_FORMAT=$(command -v clang-format-$CLANG_FORMAT_DESIRED_VERSION 2>/dev/null) +if [ $? -ne 0 ]; then + CLANG_FORMAT=$(command -v clang-format-mp-$CLANG_FORMAT_DESIRED_VERSION 2>/dev/null) +fi +if [ $? -ne 0 ]; then + CLANG_FORMAT=$(command -v clang-format 2>/dev/null) + if [ $? -ne 0 ]; then + echo "Please install clang-format version $CLANG_FORMAT_DESIRED_VERSION and re-run this script." + exit 1 + fi + version=$(clang-format --version) + if [[ ! $version == *"clang-format version $CLANG_FORMAT_DESIRED_VERSION"* ]]; then + echo "Please install clang-format version $CLANG_FORMAT_DESIRED_VERSION and re-run this script." + exit 1 + fi +fi diff --git a/contrib/format.sh b/contrib/format.sh index a51fbaa9a..d757554e0 100755 --- a/contrib/format.sh +++ b/contrib/format.sh @@ -1,31 +1,15 @@ #!/usr/bin/env bash -CLANG_FORMAT_DESIRED_VERSION=11 - -binary=$(command -v clang-format-$CLANG_FORMAT_DESIRED_VERSION 2>/dev/null) -if [ $? -ne 0 ]; then - binary=$(command -v clang-format-mp-$CLANG_FORMAT_DESIRED_VERSION 2>/dev/null) -fi -if [ $? -ne 0 ]; then - binary=$(command -v clang-format 2>/dev/null) - if [ $? -ne 0 ]; then - echo "Please install clang-format version $CLANG_FORMAT_DESIRED_VERSION and re-run this script." - exit 1 - fi - version=$(clang-format --version) - if [[ ! $version == *"clang-format version $CLANG_FORMAT_DESIRED_VERSION"* ]]; then - echo "Please install clang-format version $CLANG_FORMAT_DESIRED_VERSION and re-run this script." - exit 1 - fi -fi +. $(dirname $0)/format-version.sh cd "$(dirname $0)/../" + if [ "$1" = "verify" ] ; then - if [ $($binary --output-replacements-xml $(find jni daemon llarp include pybind | grep -E '\.([hc](pp)?|m(m)?)$' | grep -v '#') | grep '' | wc -l) -ne 0 ] ; then + if [ $($CLANG_FORMAT --output-replacements-xml $(find jni daemon llarp include pybind | grep -E '\.([hc](pp)?|m(m)?)$' | grep -v '#') | grep '' | wc -l) -ne 0 ] ; then exit 2 fi else - $binary -i $(find jni daemon llarp include pybind | grep -E '\.([hc](pp)?|m(m)?)$' | grep -v '#') &> /dev/null + $CLANG_FORMAT -i $(find jni daemon llarp include pybind | grep -E '\.([hc](pp)?|m(m)?)$' | grep -v '#') &> /dev/null fi swift_format=$(command -v swiftformat 2>/dev/null) diff --git a/daemon/lokinet.cpp b/daemon/lokinet.cpp index 70c9648f2..af71310a5 100644 --- a/daemon/lokinet.cpp +++ b/daemon/lokinet.cpp @@ -329,9 +329,8 @@ class WindowsServiceStopped LONG GenerateDump(EXCEPTION_POINTERS* pExceptionPointers) { - const auto flags = (MINIDUMP_TYPE)( - MiniDumpWithFullMemory | MiniDumpWithFullMemoryInfo | MiniDumpWithHandleData - | MiniDumpWithUnloadedModules | MiniDumpWithThreadInfo); + const auto flags = + (MINIDUMP_TYPE)(MiniDumpWithFullMemory | MiniDumpWithFullMemoryInfo | MiniDumpWithHandleData | MiniDumpWithUnloadedModules | MiniDumpWithThreadInfo); std::stringstream ss; ss << "C:\\ProgramData\\lokinet\\crash-" << llarp::time_now_ms().count() << ".dmp"; diff --git a/llarp/apple/route_manager.hpp b/llarp/apple/route_manager.hpp index b69904276..69403c04d 100644 --- a/llarp/apple/route_manager.hpp +++ b/llarp/apple/route_manager.hpp @@ -15,10 +15,12 @@ namespace llarp::apple /// These are called for poking route holes, but we don't have to do that at all on macos /// because the appex isn't subject to its own rules. - void AddRoute(net::ipaddr_t /*ip*/, net::ipaddr_t /*gateway*/) override + void + AddRoute(net::ipaddr_t /*ip*/, net::ipaddr_t /*gateway*/) override {} - void DelRoute(net::ipaddr_t /*ip*/, net::ipaddr_t /*gateway*/) override + void + DelRoute(net::ipaddr_t /*ip*/, net::ipaddr_t /*gateway*/) override {} void diff --git a/llarp/dns/message.cpp b/llarp/dns/message.cpp index f4d70763f..48d84f703 100644 --- a/llarp/dns/message.cpp +++ b/llarp/dns/message.cpp @@ -160,7 +160,8 @@ namespace llarp return OwnedBuffer::copy_used(buf); } - void Message::AddServFail(RR_TTL_t) + void + Message::AddServFail(RR_TTL_t) { if (questions.size()) { @@ -386,7 +387,8 @@ namespace llarp std::copy_n(buf.base, buf.sz, rec.rData.data()); } - void Message::AddNXReply(RR_TTL_t) + void + Message::AddNXReply(RR_TTL_t) { if (questions.size()) { diff --git a/llarp/handlers/exit.cpp b/llarp/handlers/exit.cpp index 11c9d35c2..64e002e3a 100644 --- a/llarp/handlers/exit.cpp +++ b/llarp/handlers/exit.cpp @@ -613,7 +613,8 @@ namespace llarp }); } - std::optional ExitEndpoint::GetStatFor(AddressVariant_t) const + std::optional + ExitEndpoint::GetStatFor(AddressVariant_t) const { /// TODO: implement me return std::nullopt; diff --git a/llarp/handlers/null.hpp b/llarp/handlers/null.hpp index cd97fa82d..bfa0525e8 100644 --- a/llarp/handlers/null.hpp +++ b/llarp/handlers/null.hpp @@ -101,13 +101,14 @@ namespace llarp::handlers void SendPacketToRemote(const llarp_buffer_t&, service::ProtocolType) override{}; - huint128_t ObtainIPForAddr(std::variant) override + huint128_t + ObtainIPForAddr(std::variant) override { return {0}; } - std::optional> ObtainAddrForIP( - huint128_t) const override + std::optional> + ObtainAddrForIP(huint128_t) const override { return std::nullopt; } diff --git a/llarp/iwp/session.cpp b/llarp/iwp/session.cpp index 382e75c64..b2109c479 100644 --- a/llarp/iwp/session.cpp +++ b/llarp/iwp/session.cpp @@ -924,13 +924,15 @@ namespace llarp } } - void Session::HandleCLOS(Packet_t) + void + Session::HandleCLOS(Packet_t) { LogInfo("remote closed by ", m_RemoteAddr); Close(); } - void Session::HandlePING(Packet_t) + void + Session::HandlePING(Packet_t) { m_LastRX = m_Parent->Now(); } diff --git a/llarp/link/session.hpp b/llarp/link/session.hpp index fc8df2414..0c54756fa 100644 --- a/llarp/link/session.hpp +++ b/llarp/link/session.hpp @@ -68,7 +68,8 @@ namespace llarp /// recv packet on low layer /// not used by utp - virtual bool Recv_LL(Packet_t) + virtual bool + Recv_LL(Packet_t) { return true; } diff --git a/llarp/net/posix.cpp b/llarp/net/posix.cpp index b04398c0c..6bc764a0b 100644 --- a/llarp/net/posix.cpp +++ b/llarp/net/posix.cpp @@ -93,7 +93,8 @@ namespace llarp::net return IPRange::FindPrivateRange(currentRanges); } - std::optional GetInterfaceIndex(ipaddr_t) const override + std::optional + GetInterfaceIndex(ipaddr_t) const override { // todo: implement me return std::nullopt; diff --git a/llarp/path/path_context.cpp b/llarp/path/path_context.cpp index f856ec3e8..7bb5223b0 100644 --- a/llarp/path/path_context.cpp +++ b/llarp/path/path_context.cpp @@ -412,7 +412,8 @@ namespace llarp return nullptr; } - void PathContext::RemovePathSet(PathSet_ptr) + void + PathContext::RemovePathSet(PathSet_ptr) {} } // namespace path } // namespace llarp diff --git a/llarp/path/pathbuilder.cpp b/llarp/path/pathbuilder.cpp index eaefcf40c..478060005 100644 --- a/llarp/path/pathbuilder.cpp +++ b/llarp/path/pathbuilder.cpp @@ -335,7 +335,8 @@ namespace llarp Build(*maybe, roles); } - bool Builder::UrgentBuild(llarp_time_t) const + bool + Builder::UrgentBuild(llarp_time_t) const { return buildIntervalLimit > MIN_PATH_BUILD_INTERVAL * 4; } diff --git a/llarp/path/pathset.cpp b/llarp/path/pathset.cpp index c3ba852d6..0474544d2 100644 --- a/llarp/path/pathset.cpp +++ b/llarp/path/pathset.cpp @@ -73,7 +73,8 @@ namespace llarp } } - void PathSet::Tick(llarp_time_t) + void + PathSet::Tick(llarp_time_t) { std::unordered_set endpoints; for (auto& item : m_Paths) diff --git a/llarp/path/pathset.hpp b/llarp/path/pathset.hpp index 734b5b26b..3e431bf41 100644 --- a/llarp/path/pathset.hpp +++ b/llarp/path/pathset.hpp @@ -210,19 +210,22 @@ namespace llarp BlacklistSNode(const RouterID) = 0; /// override me in subtype - virtual bool HandleGotIntroMessage(std::shared_ptr) + virtual bool + HandleGotIntroMessage(std::shared_ptr) { return false; } /// override me in subtype - virtual bool HandleGotRouterMessage(std::shared_ptr) + virtual bool + HandleGotRouterMessage(std::shared_ptr) { return false; } /// override me in subtype - virtual bool HandleGotNameMessage(std::shared_ptr) + virtual bool + HandleGotNameMessage(std::shared_ptr) { return false; } diff --git a/llarp/peerstats/peer_db.cpp b/llarp/peerstats/peer_db.cpp index 8226dafc8..d3b93b75b 100644 --- a/llarp/peerstats/peer_db.cpp +++ b/llarp/peerstats/peer_db.cpp @@ -308,7 +308,8 @@ namespace llarp throw std::logic_error{"Peer stats backend not enabled!"}; } - void PeerDb::loadDatabase(std::optional) + void + PeerDb::loadDatabase(std::optional) {} void @@ -349,7 +350,8 @@ namespace llarp PeerDb::configure(const RouterConfig&) {} - bool PeerDb::shouldFlush(llarp_time_t) + bool + PeerDb::shouldFlush(llarp_time_t) { return false; } diff --git a/llarp/service/endpoint.cpp b/llarp/service/endpoint.cpp index 1395dadd1..03455d118 100644 --- a/llarp/service/endpoint.cpp +++ b/llarp/service/endpoint.cpp @@ -320,7 +320,8 @@ namespace llarp return m_state->ExtractStatus(obj); } - void Endpoint::Tick(llarp_time_t) + void + Endpoint::Tick(llarp_time_t) { const auto now = llarp::time_now_ms(); path::Builder::Tick(now); @@ -1165,7 +1166,8 @@ namespace llarp return m_Identity.pub.Addr(); } - std::optional Endpoint::GetStatFor(AddressVariant_t) const + std::optional + Endpoint::GetStatFor(AddressVariant_t) const { // TODO: implement me return std::nullopt; diff --git a/llarp/service/lookup.hpp b/llarp/service/lookup.hpp index 1507f68dc..9f20cc127 100644 --- a/llarp/service/lookup.hpp +++ b/llarp/service/lookup.hpp @@ -35,7 +35,8 @@ namespace llarp } /// handle lookup result for introsets - virtual bool HandleNameResponse(std::optional
) + virtual bool + HandleNameResponse(std::optional
) { return false; } @@ -76,7 +77,8 @@ namespace llarp RouterID endpoint; /// return true if this lookup is for a remote address - virtual bool IsFor(EndpointBase::AddressVariant_t) const + virtual bool + IsFor(EndpointBase::AddressVariant_t) const { return false; } diff --git a/llarp/win32/windivert.cpp b/llarp/win32/windivert.cpp index b359e1927..7dc181e91 100644 --- a/llarp/win32/windivert.cpp +++ b/llarp/win32/windivert.cpp @@ -125,7 +125,8 @@ namespace llarp::win32 return -1; } - virtual bool WritePacket(net::IPPacket) override + virtual bool + WritePacket(net::IPPacket) override { return false; } diff --git a/pybind/llarp/handlers/pyhandler.hpp b/pybind/llarp/handlers/pyhandler.hpp index 97fdc9572..3f712dcc6 100644 --- a/pybind/llarp/handlers/pyhandler.hpp +++ b/pybind/llarp/handlers/pyhandler.hpp @@ -66,13 +66,14 @@ namespace llarp return false; } - llarp::huint128_t ObtainIPForAddr(std::variant) override + llarp::huint128_t + ObtainIPForAddr(std::variant) override { return {0}; } - std::optional> ObtainAddrForIP( - huint128_t) const override + std::optional> + ObtainAddrForIP(huint128_t) const override { return std::nullopt; }