ぼんやりと考えている人

ひろしまなおき (廣島直己)
名前: ひろしまなおき (廣島直己)
住処: シリコンバレー
職業: しがないプログラマ
家族: 愛妻一人、息子一人、娘一人
道具: ハーレー二台、ギター三本
電紙: n at h7a.org

Twitter

« September 2023 »
S M T W T F S
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

以前にぼんやりと考えたこと

最近のコメント

  • ひろしま (ひらがなせいかつ …): じゅくじくんは なくした ほうが いい ですね。ぼくは…
  • たんぽぽ (ひらがなせいかつ …): きゅうに ぜんぶの ことばを ひらがなだけに する…
  • とね まさひこ… (ひらがなせいかつ …): ぼくは ものかき だが, かんじが きらいなので,…
  • とりえ (ひらがなせいかつ …): このさいとは みているだけで なんとなく ほんわか…
  • ひろしま (思い通りの日本語…): こうどな ほんを よめなければ、こうどな たんごを 学…
  • nt4 (思い通りの日本語…): ひらがなせいかつに初めて接し、興味を覚えました。そ…
  • ひろしま (ひらがなせいかつ …): やはり、がいこくに くらしていたり、がいこくとの か…
  • ぷりうりうぷ… (ひらがなせいかつ …): こんにちは。すうぇーでんに すんでいます。いとうさ…
  • Joi Ito (ひらがなせいかつ …): もと べいにち たいしの Edwin O. Reischauer さん…
  • yonay (理屈じゃないとい…): なんか、著者の主張を誤解しているような気がするよ。…

  • Powered by Pivot - 1.40.5: 'Dreadwind'
  • SPAM Poison
  • XMLフィード(RSS 1.0)
  • Atomフィード

19 October '2003 - 00:39 | 雑記 yample

何年も前に procmailrc をなくして以来、あれをまた書くのは面倒くさすぎるってことで、その手のもは長らく使ってなかった。メーラでルールを書いたって、たかが知れてるしね。 が、今日見つけた yample というのは、一見したところ設定ファイルは procmailrc よりもだいぶ簡単に見えるし、なんとなく試してみることにした。おれ、新しもの好きだし。

で、さっそく必要なモジュールをインストールして、設定ファイルを書いて実験してみると、動作はいいんだけれど、ひとつ気に入らないことを見つけてしまった。気づかなければよかったのに。

というのも、なんと、Maildir/new にコピーされたファイル名のうち、gethostname() になるべきところが hostname -s になっていたのだ。おいおい、ちゃんと仕様書を読めっての。

まぁ、NFS とか使わないし、いいっちゃいいんだけれど、気持ち悪いのでさっそく直すことにした。って、直すんじゃなくて、使うのをやめればいいんだけれど。べつに必要ないのだし。

とりあえずコードを見てみると、それは Mail::Audit ってやつがやってるらしいことが分かったので、そいつを見てみる。あったあった。ふーむ。hostname からドメイン部分をワザと消してやがる。まったく。さくっとハック。

そういえば、ファイル名の配送識別子が常に _1 だったので、かち合ってないなら _1 はなくてもいいじゃんか、ってことで、そいつもついでにハック。

てな感じでつらつらコードを読んでたら、もうひとつ発見。なんか、何も考えずに使いたかったのに… ま、perl のコードなんて長らく読んでないし書いてないし、たまにはいっか。

で、発見したのは、なんと、tmp にファイルを作って、new に移動するときに、また一からユニークなファイル名を生成していることだった。うーむ。Maildir の意味分かってんのかなぁ。分かってないんだろうなぁ。というわけで、これもハック。

<%= pre '

--- Audit.pm.orig Sun Mar 3 09:11:20 2002

+++ Audit.pm Sat Oct 18 00:34:36 2003

@@ -14,7 +14,7 @@

use File::Basename;

use Mail::Internet;

use Mail::Audit::MailInternet;

-use Sys::Hostname; (my $HOSTNAME = hostname) =~ s/\..*//;

+use Sys::Hostname; (my $HOSTNAME = hostname);

use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $ASSUME_MSGPREFIX);

# @ISA will depend on whether the message is MIME; if it is, we\'ll be MIME::Entity. if not, we\'ll be Mail::Internet.

use Fcntl \':flock\';

@@ -481,11 +481,12 @@

_log(3, "will write to @_");



# since mutt won\'t add a lines tag to maildir messages, we\'ll add it here

- unless (length $self->get("Lines")) {

- my $num_lines = @{$self->body};

- $self->head->add("Lines", $num_lines);

- _log(4,"Adding Lines: $num_lines header");

- }

+# unless (length $self->get("Lines")) {

+# my $num_lines = @{$self->body};

+# $self->head->add("Lines", $num_lines);

+# _log(4,"Adding Lines: $num_lines header");

+# }

+ # since i do not see the point, i comment out the above lines



if ($maildir_time != time) { $maildir_time = time; $maildir_counter = 0 } else { $maildir_counter++ }



@@ -502,8 +503,9 @@



$file =~ s/\/$//;

my $msg_file;

- do { $msg_file = join ".", ($maildir_time, $$ . "_$maildir_counter", $HOSTNAME); $maildir_counter++; }

- while ( -e "$file/tmp/$msg_file" );

+ $msg_file = join ".", ($maildir_time, $$, $HOSTNAME);

+ while ( -e "$file/tmp/$msg_file" )

+ { $msg_file = join ".", ($maildir_time, $$ . "_$maildir_counter", $HOSTNAME); $maildir_counter++; }

# todo: consider sleeping. mengwong 20020116



$tmp_path = "$file/tmp/$msg_file";

@@ -530,14 +532,10 @@

foreach my $file (my @maildirs = @_) {

$file =~ s/\/$//;



- my $msg_file;

- do { $msg_file = join ".", ($maildir_time=time, $$ . "_$maildir_counter", $HOSTNAME); $maildir_counter++; }

- while ( -e "$file/new/$msg_file" );

-

# auto-create the maildir.

if (my $mkdir_error = mkdir_p(map { "$file/$_" } qw(tmp new cur))) { _log(0, $mkdir_error); next; }



- my $new_path = "$file/new/$msg_file";

+ (my $new_path = $tmp_path) =~ s/tmp/new/;

_log(3,"maildir: hardlinking to $new_path");



if (link $tmp_path, $new_path) { $success_count++; }

'%>

ふむ。これで満足。

って、肝心の rules の方は、まだ一行しか書いてなかった。なんだそれ。

Trackback link:

トラックバック用URLを生成するには、JavaScriptを有効にしてください。



  
情報を記憶する

Emoticons /

酢ハムがいったいどんなハムなのかはともかく…
 

 

通知:
非公開:

注意: 使用できるタグは <b> と <i> のみです。URLやメールアドレスはそのまま記述すればリンクになります。