lib/PublicInbox/LEI.pm | 2 +- lib/PublicInbox/LeiAuth.pm | 24 +++++------------------- lib/PublicInbox/LeiImport.pm | 2 +- lib/PublicInbox/LeiQuery.pm | 4 ++-- diff --git a/lib/PublicInbox/LEI.pm b/lib/PublicInbox/LEI.pm index dd34c66879fd9c4a08f0c9445c9c24d45afd5add..415a425deaf34a89d2ba44d8322e27cfb294fe82 100644 --- a/lib/PublicInbox/LEI.pm +++ b/lib/PublicInbox/LEI.pm @@ -324,7 +324,7 @@ my %CONFIG_KEYS = ( 'leistore.dir' => 'top-level storage location', ); -my @WQ_KEYS = qw(lxs l2m imp mrr cnv auth); # internal workers +my @WQ_KEYS = qw(lxs l2m imp mrr cnv); # internal workers # pronounced "exit": x_it(1 << 8) => exit(1); x_it(13) => SIGPIPE sub x_it ($$) { diff --git a/lib/PublicInbox/LeiAuth.pm b/lib/PublicInbox/LeiAuth.pm index b4777114f58ffa8f1899d9c770fb3c57ab783961..099bdaca2a1fc454dc3770064c4d8ede7b7a38d4 100644 --- a/lib/PublicInbox/LeiAuth.pm +++ b/lib/PublicInbox/LeiAuth.pm @@ -6,27 +6,16 @@ # (eventually for read-only NNTP access) package PublicInbox::LeiAuth; use strict; use v5.10.1; -use parent qw(PublicInbox::IPC); use PublicInbox::PktOp qw(pkt_do); - -sub net_merge { - my ($lei, $net_new) = @_; - if ($lei->{pkt_op_p}) { # from lei_convert worker - pkt_do($lei->{pkt_op_p}, 'net_merge', $net_new); - } else { # single lei-daemon consumer - my $self = $lei->{auth} or return; # client disconnected - my $net = $self->{net}; - %$net = (%$net, %$net_new); - } -} sub do_auth_atfork { # used by IPC WQ workers my ($self, $wq) = @_; return if $wq->{-wq_worker_nr} != 0; my $lei = $wq->{lei}; - my $net = $self->{net}; + my $net = $lei->{net}; my $mics = $net->imap_common_init($lei); - net_merge($lei, $net); + pkt_do($lei->{pkt_op_p}, 'net_merge', $net) or + die "pkt_do net_merge: $!"; $net->{mics_cached} = $mics; } @@ -36,7 +25,7 @@ return if ++$wq->{nr_net_merge_done} != $wq->{-wq_nr_workers}; $wq->net_merge_complete; # defined per wq-class (e.g. LeiImport) } -sub net_merge_all { # called via wq_broadcast +sub net_merge_all { # called in wq worker via wq_broadcast my ($wq, $net_new) = @_; my $net = $wq->{lei}->{net}; %$net = (%$net, %$net_new); @@ -56,9 +45,6 @@ $ops->{net_merge} = [ \&net_merge_continue, $wq ]; $ops->{net_merge_done1} = [ \&net_merge_done1, $wq ]; } -sub new { - my ($cls, $net) = @_; # net may be NetReader or descendant (NetWriter) - bless { net => $net }, $cls; -} +sub new { bless \(my $x), __PACKAGE__ } 1; diff --git a/lib/PublicInbox/LeiImport.pm b/lib/PublicInbox/LeiImport.pm index bc37c6287059237feee33e16e7d072b5b7bd21c0..b85f4d6c457453aba2165f31d6b829dbd1889133 100644 --- a/lib/PublicInbox/LeiImport.pm +++ b/lib/PublicInbox/LeiImport.pm @@ -112,7 +112,7 @@ } $net->{quiet} = $lei->{opt}->{quiet}; $lei->{net} = $net; require PublicInbox::LeiAuth; - $lei->{auth} = PublicInbox::LeiAuth->new($net); + $lei->{auth} = PublicInbox::LeiAuth->new; } import_start($lei); } diff --git a/lib/PublicInbox/LeiQuery.pm b/lib/PublicInbox/LeiQuery.pm index 64c9394c6186def834c976371b759c29b367245d..214267ee76ca87ebad553afc09724dd25ed170f8 100644 --- a/lib/PublicInbox/LeiQuery.pm +++ b/lib/PublicInbox/LeiQuery.pm @@ -13,9 +13,9 @@ } sub _start_query { my ($self) = @_; - if (my $net = $self->{net}) { + if ($self->{net}) { require PublicInbox::LeiAuth; - $self->{auth} = PublicInbox::LeiAuth->new($net); + $self->{auth} = PublicInbox::LeiAuth->new } $self->{lxs}->do_query($self); }