Subject: feature request: use external perl module via config

From: Jeremy Kister <[email-masked]>
Date: Fri, 29 Jul 2005 15:38:39 -0400

It'd be nice to be able to something like:

Service Module {
	use Mail::VRFY;
	Mail::VRFY::CheckAddress([email-masked]');
	eqvalue: 0
}

argus could internally

alarm unless(Mail::VRFY::CheckAddress([email-masked]') eq 0);

i'd suggest that argusd load the module in it's own memory; not fork of
a process each time.

-- 

Jeremy Kister
http://jeremy.kister.net/
Got DARP?  http://argus.tcp4me.com./darp.html

---

From: Jeff Weisberg <[email-masked]>
Date: Fri, 29 Jul 2005 16:23:37 -0400 (EDT)

| It'd be nice to be able to something like:
|
| Service Module {
|	  use Mail::VRFY;
|	  Mail::VRFY::CheckAddress([email-masked]');
|	  eqvalue: 0
| }
|
| argus could internally
|
| alarm unless(Mail::VRFY::CheckAddress([email-masked]') eq 0);
|
| i'd suggest that argusd load the module in it's own memory; not fork of
| a process each time.

if you look in your data directory, you probably have
a directory called 'perl'. in there, create a file (or
several files):

    emacs $datadir/perl/My_Module.pm

then in your config file:

    load_modules: My_Module.pm
or
    load_modules: Mine_1.pm  Mine_2.pm  Mine_3.pm

this will be loaded into argus, and you can define any code you'd
like, such as new services, notification methods, you can even replace
anything in argus with something better.

you will need an understanding of the internals of argus in order to
do anything useful. to create new built-in services, start by reading
Example.pm and Self.pm ((which are the shortest) and then everything
else). And if you are going to do any sort of network i/o, you'll need
to understand argus's i/o layer to prevent your code from blocking
other services.