From abf3ccb11ef8c41d2b77a1d77daeb86396a1d577 Mon Sep 17 00:00:00 2001 From: Fabio Bonelli Date: Fri, 21 Nov 2025 10:50:15 +0100 Subject: [PATCH] feat: add setDisableExternalChecks() and areExternalChecksDisabled() Add ParserConfig::setDisableExternalChecks() and ParserConfig::areExternalChecksDisabled(). ParserConfig::setDisableExternalChecks(true) also implies ParserConfig::setDisableNetwork(true). --- go-src/publiccode-parser-wrapper.go | 10 ++++++---- src/Parser.php | 5 +++-- src/ParserConfig.php | 13 +++++++++++++ 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/go-src/publiccode-parser-wrapper.go b/go-src/publiccode-parser-wrapper.go index 91c1b25..29ecf7b 100644 --- a/go-src/publiccode-parser-wrapper.go +++ b/go-src/publiccode-parser-wrapper.go @@ -7,6 +7,7 @@ package main struct ParserConfig { bool DisableNetwork; + bool DisableExternalChecks; char *Branch; char *BaseURL; }; @@ -34,11 +35,12 @@ import ( ) //export NewParser -func NewParser(disableNetwork C.bool, branch *C.char, baseURL *C.char) C.ParserHandle { +func NewParser(disableNetwork C.bool, disableExternalChecks C.bool, branch *C.char, baseURL *C.char) C.ParserHandle { config := publiccode.ParserConfig{ - DisableNetwork: bool(disableNetwork), - Branch: C.GoString(branch), - BaseURL: C.GoString(baseURL), + DisableNetwork: bool(disableNetwork), + DisableExternalChecks: bool(disableExternalChecks), + Branch: C.GoString(branch), + BaseURL: C.GoString(baseURL), } p, err := publiccode.NewParser(config) diff --git a/src/Parser.php b/src/Parser.php index 01d8157..ca78554 100644 --- a/src/Parser.php +++ b/src/Parser.php @@ -23,6 +23,7 @@ public function __construct(?ParserConfig $config = null) /** @phpstan-ignore-next-line */ $this->handle = $this->ffi->NewParser( $this->config->isNetworkDisabled(), + $this->config->areExternalChecksDisabled(), $this->config->getBranch(), $this->config->getBaseURL(), ); @@ -122,7 +123,7 @@ private function getFFI(): FFI typedef uintptr_t ParserHandle; - ParserHandle NewParser(bool disableNetwork, const char* branch, const char* baseURL); + ParserHandle NewParser(bool disableNetwork, bool disableExternalChecks, const char* branch, const char* baseURL); ParseResult* ParseString(ParserHandle handle, const char* content); ParseResult* ParseFile(ParserHandle handle, const char* uri); void FreeResult(ParseResult* result); @@ -172,7 +173,7 @@ private function findLibrary(): string throw new ParserException( "libpubliccode-parser library not found for platform: {$os}-{$arch}. " . - "Searched for: {$libraryName}", + "Searched for: {$libraryName}", ); } diff --git a/src/ParserConfig.php b/src/ParserConfig.php index 028f2fb..2e8fb21 100644 --- a/src/ParserConfig.php +++ b/src/ParserConfig.php @@ -7,6 +7,7 @@ class ParserConfig { private bool $disableNetwork = false; + private bool $disableExternalChecks = false; private string $branch = ''; private string $baseURL = ''; @@ -22,6 +23,18 @@ public function setDisableNetwork(bool $disableNetwork): self return $this; } + public function areExternalChecksDisabled(): bool + { + return $this->disableExternalChecks; + } + + public function setDisableExternalChecks(bool $disableExternalChecks): self + { + $this->disableExternalChecks = $disableExternalChecks; + + return $this; + } + public function getBranch(): string { return $this->branch;