- my $addr = lc($recipient);
- my $inbox = $self->{-by_addr}->{$addr};
- return $inbox if $inbox;
-
- my $pfx;
-
- foreach my $k (keys %$self) {
- $k =~ m!\A(publicinbox\.[^/]+)\.address\z! or next;
- my $v = $self->{$k};
- if (ref($v) eq "ARRAY") {
- foreach my $alias (@$v) {
- (lc($alias) eq $addr) or next;
- $pfx = $1;
- last;
- }
- } else {
- (lc($v) eq $addr) or next;
- $pfx = $1;
- last;
- }
- }
- defined $pfx or return;
- _fill($self, $pfx);
+ _lookup_fill($self, '-by_addr', lc($recipient));
+}
+
+sub lookup_list_id {
+ my ($self, $list_id) = @_;
+ _lookup_fill($self, '-by_list_id', lc($list_id));