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);