[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:19426] kernel 2.4.21 とsocket



角と申します。

#Plamo に直接は関係ないんですが、ちょっとつまずいたのでご報告です。

2.4.21 が出てからようやく暇が取れたのでカーネルを上げてみたんですが、
自作の perl スクリプトの一部が動かなくなり、はて?と調べていると、どう
やら recv なんかの戻り値が変わったようなんですね。

今まで IO::Socket::UNIX で使う recv() の戻り値は、socket(2) にある

RETURN VALUES
       A -1 is returned if an error occurs, otherwise the return value
       is a descriptor referencing the socket.

だと思いこんでエラー判定だけに使っていたんですが、
よくよく man perlfunc してみると

Returns the address of the sender if SOCKET's protocol supports this;
returns an empty string otherwise.  If there's an error, returns the
undefined value.  This call is actually implemented in terms of
recvfrom(2) system call.

なんて書いてある。あれれ?と思って 2.4.20 に戻して IO::Socket::UNIX の 
recv() が返す値を調べてみるとわけ分からない文字列が返っていました。
2.4.21 からは正しく(?)empty string が返ってくるようになってます。

#ちゃんと返るべき値が返っているのか調べなきゃデス。
#また暇ができたらもう少し追っかけてみます。

-----
Yasutaka SUMI <sum@mwb.biglobe.ne.jp>
http://pgp.nic.ad.jp:11371/pks/lookup?op=get&search=0x8842F549
Key fingerprint = 5F6D 79E1 E52D 2B38 B9B5  13F5 F8E9 F3E1 8842 F549

Follow-Ups
[plamo:19427] Re: kernel 2.4.21 とsocket, Yasutaka SUMI

[検索ページ] [メール一覧]
Plamo ML 公開システム