0

私は ejabberd モジュールを書いています。それは、いくつかのメッセージをキューに保存することです。実際には非常にうまく機能します。どのドキュメントにも見つからないことが1つだけあります。特定のユーザーからのメッセージを見つけたら、フック処理を停止する必要があります。

つまり、ユーザー A からユーザー B にメッセージが ejabberd に送信され、私のモジュール (user_send_packet フックにフックされている) がこのメッセージを処理し、ユーザー A が指定されたユーザーであることが判明した場合、それを配信してはなりません。私が理解したことから、フック処理を停止することでこれを達成できます。フック処理を停止するにはどうすればよいですか?

4

1 に答える 1

2

A-> Bからメッセージをドロップしたい場合は、fiter_packetフックにサブスクライブし、そのリターンドロップから、許可したくないパケットをドロップすることでそれを行うことができます。

私が理解したことから、フック処理を停止することでこれを達成できます

いいえ、フック処理を停止すると、そのフックに登録されている他のハンドラー(存在する場合)がアクティブ化されなくなりますが、それ以外の場合、パケットは通常どおり続行されます。

于 2009-09-10T02:34:54.627 に答える