On Mon, 2006-03-13 at 09:56 +0100, H. McManus wrote:
> I'm trying to get linkUpDownNotifications to work without much success.

OK - I've now managed to find the time to have a look at this,
and put together a patch that seems to address the problem.
It's still a little rough around the edges (and there's still
the question of -S vs -s behaviour), but it seems to do the trick.

The relevant code changes have been applied to the CVS code,
and I'll append the patch for you to have a play with.
Let me know how you get on.

Dave

PS:  If you have any further questions about the DisMan stuff,
     it's probably worth asking them on the -coders list.
     I'm about to unsubscribe from the -users list for a while,
     due to pressure of work, so won't see anything raised there.



--- mteTriggerConf.c.cln	2006-03-13 22:38:44.000000000 +0000
+++ mteTriggerConf.c	2006-03-13 22:45:48.000000000 +0000
@@ -558,7 +558,10 @@
              * ... and the specified event...
              */
             memset(entry->mteTExEvOwner,  0,     MTE_STR1_LEN+1);
-            memcpy(entry->mteTExEvOwner,  "snmpd.conf",      10);
+            if ( ename[0] == '_' )
+                memcpy(entry->mteTExEvOwner,  "_snmpd",       6);
+            else
+                memcpy(entry->mteTExEvOwner,  "snmpd.conf",  10);
             memcpy(entry->mteTExEvent,    ename, MTE_STR1_LEN+1);
         } else {
             /*
@@ -588,7 +591,10 @@
              * ... and the specified event...
              */
             memset(entry->mteTBoolEvOwner,  0,     MTE_STR1_LEN+1);
-            memcpy(entry->mteTBoolEvOwner,  "snmpd.conf",      10);
+            if ( ename[0] == '_' )
+                memcpy(entry->mteTBoolEvOwner,  "_snmpd",       6);
+            else
+                memcpy(entry->mteTBoolEvOwner,  "snmpd.conf",  10);
             memcpy(entry->mteTBoolEvent,    ename, MTE_STR1_LEN+1);
         } else {
             /*
@@ -621,10 +627,16 @@
                  *  (using the same event for all triggers)
                  */
                 memset(entry->mteTThRiseOwner,  0,     MTE_STR1_LEN+1);
-                memcpy(entry->mteTThRiseOwner,  "snmpd.conf",      10);
+                if ( ename[0] == '_' )
+                    memcpy(entry->mteTThRiseOwner,  "_snmpd",       6);
+                else
+                    memcpy(entry->mteTThRiseOwner,  "snmpd.conf",  10);
                 memcpy(entry->mteTThRiseEvent,  ename, MTE_STR1_LEN+1);
                 memset(entry->mteTThFallOwner,  0,     MTE_STR1_LEN+1);
-                memcpy(entry->mteTThFallOwner,  "snmpd.conf",      10);
+                if ( ename[0] == '_' )
+                    memcpy(entry->mteTThFallOwner,  "_snmpd",       6);
+                else
+                    memcpy(entry->mteTThFallOwner,  "snmpd.conf",  10);
                 memcpy(entry->mteTThFallEvent,  ename, MTE_STR1_LEN+1);
             } else {
                 /*
@@ -663,10 +675,16 @@
              */
             if ( ename[0] ) {
                 memset(entry->mteTThDRiseOwner,  0,     MTE_STR1_LEN+1);
-                memcpy(entry->mteTThDRiseOwner,  "snmpd.conf",      10);
+                if ( ename[0] == '_' )
+                    memcpy(entry->mteTThDRiseOwner,  "_snmpd",       6);
+                else
+                    memcpy(entry->mteTThDRiseOwner,  "snmpd.conf",  10);
                 memcpy(entry->mteTThDRiseEvent,  ename, MTE_STR1_LEN+1);
                 memset(entry->mteTThDFallOwner,  0,     MTE_STR1_LEN+1);
-                memcpy(entry->mteTThDFallOwner,  "snmpd.conf",      10);
+                if ( ename[0] == '_' )
+                    memcpy(entry->mteTThDFallOwner,  "_snmpd",       6);
+                else
+                    memcpy(entry->mteTThDFallOwner,  "snmpd.conf",  10);
                 memcpy(entry->mteTThDFallEvent,  ename, MTE_STR1_LEN+1);
             } else {
                 memset(entry->mteTThDRiseOwner,  0,     MTE_STR1_LEN+1);

Reply via email to