From eb7919c1d8b4ad5c77e0d120136c4f54e1e157e6 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Sat, 16 Mar 2024 23:10:47 +0100 Subject: global-functions: generate user agent string in function... ... and add the caller and my shortened url. --- global-functions.rsc | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'global-functions.rsc') diff --git a/global-functions.rsc b/global-functions.rsc index c616724..8df70f1 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -16,12 +16,6 @@ # global variables not to be changed by user :global GlobalFunctionsReady false; -:global FetchUserAgent; -{ - :local Resource [ /system/resource/get ]; - :set FetchUserAgent ("User-Agent: Mikrotik/" . $Resource->"version" . \ - " " . $Resource->"architecture-name" . " Fetch"); -} :global Identity [ /system/identity/get name ]; # global functions @@ -38,6 +32,7 @@ :global DownloadPackage; :global EitherOr; :global EscapeForRegEx; +:global FetchUserAgent; :global FormatLine; :global FormatMultiLines; :global GetMacVendor; @@ -137,11 +132,11 @@ :set CertificateDownload do={ :local CommonName [ :tostr $1 ]; - :global FetchUserAgent; :global ScriptUpdatesBaseUrl; :global ScriptUpdatesUrlSuffix; :global CertificateNameByCN; + :global FetchUserAgent; :global LogPrint; :global UrlEncode; :global WaitForFile; @@ -151,7 +146,7 @@ :do { :local LocalFileName ($CommonName . ".pem"); :local UrlFileName ([ $UrlEncode $CommonName ] . ".pem"); - /tool/fetch check-certificate=yes-without-crl http-header-field=({ $FetchUserAgent }) \ + /tool/fetch check-certificate=yes-without-crl http-header-field=({ [ $FetchUserAgent $0 ] }) \ ($ScriptUpdatesBaseUrl . "certs/" . $UrlFileName . $ScriptUpdatesUrlSuffix) \ dst-path=$LocalFileName as-value; $WaitForFile $LocalFileName; @@ -396,6 +391,16 @@ :return $Return; } +# generate user agent string for fetch +:global FetchUserAgent do={ + :local Caller [ :tostr $1 ]; + + :local Resource [ /system/resource/get ]; + + :return ("User-Agent: Mikrotik/" . $Resource->"version" . " " . \ + $Resource->"architecture-name" . " " . $Caller . "/Fetch (https://rsc.eworm.de/)"); +} + # format a line for output :set FormatLine do={ :local Key [ :tostr $1 ]; @@ -975,7 +980,6 @@ :local NewComment [ :tostr $2 ]; :global ExpectedConfigVersion; - :global FetchUserAgent; :global Identity; :global IDonate; :global NoNewsAndChangesNotification; @@ -984,6 +988,7 @@ :global CertificateAvailable; :global EitherOr; + :global FetchUserAgent; :global Grep; :global IfThenElse; :global LogPrint; @@ -1029,7 +1034,7 @@ :local Url ($BaseUrl . $ScriptVal->"name" . ".rsc" . $UrlSuffix); $LogPrint debug $0 ("Fetching script '" . $ScriptVal->"name" . "' from url: " . $Url); :local Result [ /tool/fetch check-certificate=yes-without-crl \ - http-header-field=({ $FetchUserAgent }) $Url output=user as-value ]; + http-header-field=({ [ $FetchUserAgent $0 ] }) $Url output=user as-value ]; :if ($Result->"status" = "finished") do={ :set SourceNew ($Result->"data"); } @@ -1112,7 +1117,7 @@ :local Url ($ScriptUpdatesBaseUrl . "news-and-changes.rsc" . $ScriptUpdatesUrlSuffix); $LogPrint debug $0 ("Fetching news, changes and migration: " . $Url); :local Result [ /tool/fetch check-certificate=yes-without-crl \ - http-header-field=({ $FetchUserAgent }) $Url output=user as-value ]; + http-header-field=({ [ $FetchUserAgent $0 ] }) $Url output=user as-value ]; :if ($Result->"status" = "finished") do={ :set ChangeLogCode ($Result->"data"); } -- cgit v1.2.3-54-g00ecf