From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id D9E2B1FF15C for ; Fri, 14 Nov 2025 15:58:37 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 47E331644D; Fri, 14 Nov 2025 15:59:31 +0100 (CET) From: Dominik Csapak To: pve-devel@lists.proxmox.com Date: Fri, 14 Nov 2025 15:59:16 +0100 Message-ID: <20251114145927.3766668-2-d.csapak@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251114145927.3766668-1-d.csapak@proxmox.com> References: <20251114145927.3766668-1-d.csapak@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.028 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [lwp.pm] Subject: [pve-devel] [PATCH pve-apiclient v4 1/1] try to refresh ticket before an api call X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" when the ticket is an hour old (or older). This can help for long running tasks that reuse the api client throughout the whole task. It will not work though if there is more than 2 hours between api calls, but that should not be the case that often. Signed-off-by: Dominik Csapak --- src/PVE/APIClient/LWP.pm | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/PVE/APIClient/LWP.pm b/src/PVE/APIClient/LWP.pm index 7407dc4..f0c81bc 100755 --- a/src/PVE/APIClient/LWP.pm +++ b/src/PVE/APIClient/LWP.pm @@ -276,7 +276,26 @@ sub call { my $ua = $self->{useragent}; - # fixme: check ticket lifetime? + if ($ticket && $ticket =~ m/^(\S+)::[^:\s]+$/) { + my $plain = $1; + + # only the last 8 characters from the plain part are the timestamp + if ($plain =~ m/([A-Z0-9]{8})$/) { + my $timestamp = $1; + my $ttime = hex($timestamp); + my $age = time() - $ttime; + + if ($age > 3600) { # older than one hour + if (!defined($self->{password})) { + $self->{password} = $ticket; + $self->login(); + $self->{password} = undef; + } else { + $self->login(); + } + } + } + } if (!$ticket && !$apitoken && $self->{username} && $self->{password}) { $self->login(); -- 2.47.3 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel