From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-3.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_DNSWL_HI,SPF_HELO_NONE,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 485131F4C1 for ; Mon, 28 Nov 2022 20:25:29 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="fvaCY+6y"; dkim-atps=neutral Received: by mail-wr1-x42e.google.com with SMTP id g12so18800561wrs.10 for ; Mon, 28 Nov 2022 12:25:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=T7u71ffLzOAYVyyKtYcnvO/ZPwKe96g3gxek+jjC0lw=; b=fvaCY+6yuK6M2JNCvWIsZ2qf5Q4GQp5Cn2/UHHkI08zP5BMZGpyo7qabt+YVya482Q 7/U9kA+zGOFMV62ggV3HAUn2phNJJ2bSMPU999Z9jzJXN4XSs4M/cjWdBk+YamCkTE7s Nd3I/iEuE86D50NB+vQlPWiP80ZxjqOnTvSOjbWHxpdWES7SQiqHer4jQTtVmP79fbF4 x0fqx823iWj5HfaJ8ZpJGWB7tjSq/FseUYHQO7/rPiJdJsjTldeEY2x5nmnRnrK4FioK CjIQDpepuhNR+IVpc71I/QBwGnPL3cgkXZdMAWK12/A90AfhaTRUB1lvCQp65RybVxrn iMmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=T7u71ffLzOAYVyyKtYcnvO/ZPwKe96g3gxek+jjC0lw=; b=x9otnVutPLTw89uV8d9soGoPkMc0mFtsEFAj3RY+Yx+bFI75PFoXFafcxxvjmeGgZF jX+3R22cQSbiICsazY+Sc+XrIx56jSnhyRuhpyDW7U2i5YhroqdKv0vz5Z73MkgdT7Nn 6Wx26zzz2pFKJv+kZAQ22dFpeTMfRgDZHxChmkoNAUt1UaVq+F1Dnom4ocAwYENqUMXd y4igBUVsgpBQliiKGFd2LOJRcsUFR8SRnAO0f3i1q/YaBiyh4C8bShObxWk0W0WSaG28 8f6WvjAQJrqi1WCGNnghrD0uUo6YotbMOX4bzCIgkhi/mG+cA/ylkCVF5V82fU7DkOpp VW9Q== X-Gm-Message-State: ANoB5plIfEdBcWw4qoXBc+gCUYY4lVdpMVGKb9UFjD7TYMNNl+Ct6RHP IX6BsytWOdHXmwWdNzkc3kXlhwMye88Fjg== X-Google-Smtp-Source: AA0mqf5/YXWD6KMnGcLS1hvOUnPQTiPc7GrDXdfyicTFvXLiTNM8wgHf095WNd1vrf0DSOhCUHA6Ww== X-Received: by 2002:adf:f949:0:b0:236:704f:29f4 with SMTP id q9-20020adff949000000b00236704f29f4mr33041792wrr.11.1669667127382; Mon, 28 Nov 2022 12:25:27 -0800 (PST) Received: from desktop.home ([2a02:8070:a185:535c:6462:3ba2:c307:eae5]) by smtp.gmail.com with ESMTPSA id l11-20020a1c790b000000b003b4a699ce8esm19312065wme.6.2022.11.28.12.25.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Nov 2022 12:25:26 -0800 (PST) From: mephi42 To: meta@public-inbox.org Cc: mephi42 Subject: [PATCH] nntpd: fix LISTGROUP with range Date: Mon, 28 Nov 2022 21:25:21 +0100 Message-Id: <20221128202521.62476-1-mephi42@gmail.com> X-Mailer: git-send-email 2.37.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: This reverts 0c62cffc2389 ("nntp: listgroup_range_i: remove useless `map' op") and adds a test that demonstrates the breakage: the server returns lines like ARRAY(0x556dace73f08) instead of message numbers. Fixes: 0c62cffc2389 ("nntp: listgroup_range_i: remove useless `map' op") --- lib/PublicInbox/NNTP.pm | 2 +- t/nntpd.t | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm index ceaf05f6..dd33a232 100644 --- a/lib/PublicInbox/NNTP.pm +++ b/lib/PublicInbox/NNTP.pm @@ -188,7 +188,7 @@ sub listgroup_range_i { my ($self, $beg, $end) = @_; my $r = $self->{ibx}->mm(1)->msg_range($beg, $end, 'num'); scalar(@$r) or return; - $self->msg_more(join("\r\n", @$r, '')); + $self->msg_more(join('', map { "$_->[0]\r\n" } @$r)); 1; } diff --git a/t/nntpd.t b/t/nntpd.t index d352c3c1..058bd796 100644 --- a/t/nntpd.t +++ b/t/nntpd.t @@ -93,6 +93,13 @@ close $cfgfh or BAIL_OUT; is_deeply([$n->group($group)], [ qw(0 1 1), $group ], 'GROUP works'); is_deeply($n->listgroup($group), [1], 'listgroup OK'); # TODO: Net::NNTP::listgroup does not support range at the moment + my $s = tcp_connect($sock); + sysread($s, my $buf, 4096); + is($buf, "201 " . hostname . " ready - post via email\r\n", + 'got greeting'); + syswrite($s, "LISTGROUP $group 1-1\r\n"); + $buf = read_til_dot($s); + like($buf, qr/\r\n1\r\n/s, 'LISTGROUP with range works'); { my $expect = [ qw(Subject: From: Date: Message-ID: @@ -120,8 +127,8 @@ close $cfgfh or BAIL_OUT; 'references' => '', ); - my $s = tcp_connect($sock); - sysread($s, my $buf, 4096); + $s = tcp_connect($sock); + sysread($s, $buf, 4096); is($buf, "201 " . hostname . " ready - post via email\r\n", 'got greeting'); -- 2.37.2