<br><br><div><span class="gmail_quote">On 10/31/07, <b class="gmail_sendername">Haydn Solomon</b> <<a href="mailto:haydn.solomon@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">haydn.solomon@gmail.com
</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br><br><div class="gmail_quote"><span>On Oct 28, 2007 5:38 PM, Haydn Solomon <<a href="mailto:haydn.solomon@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">haydn.solomon@gmail.com
</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br><br><div><div><span class="gmail_quote">On 10/28/07, <b class="gmail_sendername">Ethan Galstad</b> <<a href="mailto:nagios@nagios.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">nagios@nagios.org
</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

Whoah - I was about to answer "$LASTSERVICESTATE$" like Andreas as well,<br>because it seems like that macro should have existed for ages.  Alas, it<br>hasn't, so it will be added to CVS shortly - along with
<br>$LASTSERVICESTATEID$, $LASTHOSTSTATE$, and $LASTHOSTSTATEID$.</blockquote></div></div></blockquote></span></div></blockquote><div><br><br>After getting the $LASTSERVICESTATE$ working, I realized that what I really wanted was the $STATETYPE$ macro which is already provided for. In any case, I started adding these macros to 
2.10. I will continue to send patches for the other macros for review as I'm sure they will come in handy. <br><br>Regards<br><br><br><br>--- nagios.h.in.orig    2007-10-31 16:26:
22.000000000 -0400<br>+++ <a href="http://nagios.h.in" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">nagios.h.in</a>    2007-10-31 16:27:03.000000000 -0400<br>@@ -49,7 +49,7 @@<br> <br> #define MACRO_ENV_VAR_PREFIX            "NAGIOS_"
<br> <br>-#define MACRO_X_COUNT                99    /* size of macro_x[] array */
<br>+#define MACRO_X_COUNT                100    /* size of macro_x[] array */<br> <br> #define MACRO_HOSTNAME                0<br> #define MACRO_HOSTALIAS                1<br>@@ -150,6 +150,7 @@<br> #define MACRO_PROCESSSTARTTIME            96
<br> #define MACRO_HOSTCHECKTYPE            97<br> #define MACRO_SERVICECHECKTYPE            98<br>+#define MACRO_LASTSERVICESTATE            99<br><br><br><br><br><br><br><br>--- utils.c.orig    2007-04-30 17:22:32.000000000
 -0400<br>+++ utils.c    2007-10-31 15:55:08.000000000 -0400<br>@@ -496,6 +496,21 @@<br>             strcpy(macro_x[MACRO_SERVICESTATE],"UNKNOWN");<br>             }<br> <br>+    /* get the last service state */
<br>+    if(macro_x[MACRO_LASTSERVICESTATE]!=NULL)<br>+        free(macro_x[MACRO_LASTSERVICESTATE]);<br>+    macro_x[MACRO_LASTSERVICESTATE]=(char *)malloc(MAX_STATE_LENGTH);<br>+    if(macro_x[MACRO_LASTSERVICESTATE]!=NULL){
<br>+        if(svc->last_state==STATE_OK)<br>+            strcpy(macro_x[MACRO_LASTSERVICESTATE],"OK");<br>+        else if(svc->last_state==STATE_WARNING)<br>+            strcpy(macro_x[MACRO_LASTSERVICESTATE],"WARNING");
<br>+        else if(svc->last_state==STATE_CRITICAL)<br>+            strcpy(macro_x[MACRO_LASTSERVICESTATE],"CRITICAL");<br>+        else<br>+            strcpy(macro_x[MACRO_LASTSERVICESTATE],"UNKNOWN");
<br>+            }<br>+<br>     /* get the service state id */<br>     if(macro_x[MACRO_SERVICESTATEID]!=NULL)<br>         free(macro_x[MACRO_SERVICESTATEID]);<br>@@ -1542,6 +1557,21 @@<br>                 }<br>             }
<br> <br>+    /* get the last service state */<br>+    else if(!strcmp(macro,"LASTSERVICESTATE")){<br>+        macro_ondemand=(char *)malloc(MAX_STATE_LENGTH);<br>+        if(macro_ondemand!=NULL){<br>+            if(svc->last_state==STATE_OK)
<br>+                strcpy(macro_ondemand,"OK");<br>+            else if(svc->last_state==STATE_WARNING)<br>+                strcpy(macro_ondemand,"WARNING");<br>+            else if(svc->last_state==STATE_CRITICAL)
<br>+                strcpy(macro_ondemand,"CRITICAL");<br>+            else<br>+                strcpy(macro_ondemand,"UNKNOWN");<br>+                }<br>+            }<br>+<br>     /* get the service state id */
<br>     else if(!strcmp(macro,"SERVICESTATEID")){<br>         macro_ondemand=(char *)malloc(MAX_STATEID_LENGTH);<br>@@ -2309,6 +2339,7 @@<br>     add_macrox_name(MACRO_TIMET,"TIMET");<br>     add_macrox_name(MACRO_LASTHOSTCHECK,"LASTHOSTCHECK");
<br>     add_macrox_name(MACRO_LASTSERVICECHECK,"LASTSERVICECHECK");<br>+    add_macrox_name(MACRO_LASTSERVICESTATE,"LASTSERVICESTATE");<br>     add_macrox_name(MACRO_LASTHOSTSTATECHANGE,"LASTHOSTSTATECHANGE");
<br>     add_macrox_name(MACRO_LASTSERVICESTATECHANGE,"LASTSERVICESTATECHANGE");<br>     add_macrox_name(MACRO_HOSTOUTPUT,"HOSTOUTPUT");<br><br><br><br><br><br><br><br>
<br></div><br></div><br>