Hi all,
I've seen that there is a conflict situation in Apache::Status module 
(v 2.02, mod_perl 1.26) in handling plug-in items.
In effect when I install an Apache::Status menu item plug-in, there isn't 
control over pre-installed items.
For example I can add following item in my module:

# prepare menu item for Apache::Status
Apache::Status->menu_item(
   'inc' => 'Overriding Apache::Status menu item',
   sub {
      my($r, $q) = @_;
      my(@s) = "<HR>My dump...</HR>";
      return \@s;
   }
) if ( $INC{'Apache.pm'} && Apache->module('Apache::Status') );  

In this way, I will override the %status hash entry corresponding to 
'Loaded Modules'.
Any chances to patch this by checking existent items before typeglobbing?

This is a _very simple_ proposal patch:

---CUT HERE---
--- Status.pm   Fri Mar  8 13:11:05 2002
+++ Status.pm-patched   Fri Mar  8 13:10:55 2002
@@ -45,6 +45,12 @@
 
 sub menu_item {
     my($self, $key, $val, $sub) = @_;
+
+    if ( defined $status{$key} ) {
+        print STDERR "Apache::Status:    key '$key' already defined! Plug-in 
+installation skipped\n";
+        return;
+    }
+
     $status{$key} = $val;
     no strict;
     *{"status_${key}"} = $sub 
---CUT HERE---

Bye,

        Enrico


=========================================================
Enrico Sorcinelli - Gruppo E-Comm - Italia On Line S.p.a.
E-Mail: [EMAIL PROTECTED] - [EMAIL PROTECTED]
=========================================================

Reply via email to