X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FImport.pm;h=4c007b610dc3fc58760a91b815b1ab5405f58c1e;hb=12c3eb5b2b0860292a32d5743ea0157996e9a4b9;hp=12df7d598fc71d38088d4aeaebd0ed6d8ed3e37d;hpb=1cc19f3f8ffe37e341e219884c6856210ba6fa52;p=public-inbox.git diff --git a/lib/PublicInbox/Import.pm b/lib/PublicInbox/Import.pm index 12df7d59..4c007b61 100644 --- a/lib/PublicInbox/Import.pm +++ b/lib/PublicInbox/Import.pm @@ -9,9 +9,10 @@ use strict; use warnings; use Fcntl qw(:flock :DEFAULT); use PublicInbox::Spawn qw(spawn); -use PublicInbox::MID qw(mid_mime mid2path); +use PublicInbox::MID qw(mids mid_mime mid2path); use PublicInbox::Address; use PublicInbox::MsgTime qw(msg_timestamp); +use PublicInbox::ContentId qw(content_digest); sub new { my ($class, $git, $name, $email, $ibx) = @_; @@ -308,7 +309,12 @@ sub add { my $path; if ($path_type eq '2/38') { - $path = mid2path(mid_mime($mime)); + my $mids = mids($mime->header_obj); + if (!scalar(@$mids)) { + my $dig = content_digest($mime); + @$mids = (digest2mid($dig)); + } + $path = mid2path($mids->[0]); } else { # v2 layout, one file: $path = 'm'; } @@ -393,6 +399,11 @@ sub atfork_child { } } +sub digest2mid ($) { + my ($dig) = @_; + $dig->clone->hexdigest . '@localhost'; +} + 1; __END__ =pod