PHP_EXTENSION(snmp)
AC_ADD_LIBRARY_WITH_PATH(snmp, $SNMP_LIBDIR)
AC_ADD_INCLUDE($SNMP_INCDIR)
+ AC_CHECK_LIB(kstat, kstat_read, [AC_ADD_LIBRARY(kstat)])
+ else
+ AC_MSG_RESULT(no)
+ fi
+],[
+ AC_MSG_RESULT(no)
+])
+
+AC_MSG_CHECKING(whether to enable UCD SNMP hack)
+AC_ARG_ENABLE(ucd-snmp-hack,
+[ --enable-ucd-snmp-hack Enable UCD SNMP hack],[
+ if test "$enableval" = "yes" ; then
+ AC_DEFINE(UCD_SNMP_HACK, 1)
+ AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
* in (at least) ucd-snmp 3.6.1 which frees
* memory it did not allocate
*/
+#ifdef UCD_SNMP_HACK
session.community = (u_char *) strdup(a2->value.str.val);
+#else
+ session.community = (u_char *) a2->value.str.val;
+#endif
session.community_len = a2->value.str.len;
session.retries = retries;
session.timeout = timeout;
while ((ch = *current++) != '\0') {
if (ch == base64_pad) break;
ch = (int)strchr(base64_table, ch);
- if (ch == 0) {
- efree(result);
- return NULL;
- }
+ if (ch == 0) continue;
ch -= (int)base64_table;
switch(i % 4) {
void _php3_mktime(INTERNAL_FUNCTION_PARAMETERS, int gm)
{
- pval *arguments[6];
+ pval *arguments[7];
struct tm ta, *tn;
time_t t;
int i, gmadjust=0,arg_count = ARG_COUNT(ht);
- if (arg_count > 6 || getParametersArray(ht, arg_count, arguments) == FAILURE) {
+ if (arg_count > 7 || getParametersArray(ht, arg_count, arguments) == FAILURE) {
WRONG_PARAM_COUNT;
}
/* convert supplied arguments to longs */
convert_to_long(arguments[i]);
}
t=time(NULL);
-#if HAVE_TZSET
+#ifdef HAVE_TZSET
tzset();
#endif
tn = localtime(&t);
memcpy(&ta,tn,sizeof(struct tm));
- ta.tm_isdst = -1;
+ ta.tm_isdst = arg_count > 6 ? arguments[6]->value.lval : gm ? 0 : -1;
switch(arg_count) {
+ case 7:
case 6:
ta.tm_year = arguments[5]->value.lval - ((arguments[5]->value.lval > 1000) ? 1900 : 0);
/* fall-through */
if (gm) {
#if HAVE_TM_GMTOFF
- gmadjust=(tn->tm_gmtoff)/3600;
+ gmadjust=tn->tm_gmtoff;
#else
- gmadjust=timezone/3600;
+ gmadjust=timezone;
#endif
+ ta.tm_hour += gmadjust / 3600;
+ ta.tm_min += gmadjust % 3600;
}
- ta.tm_hour+=gmadjust;
- return_value->value.lval = mktime(&ta);
- return_value->type = IS_LONG;
+ RETURN_LONG(mktime(&ta));
}
PHP_FUNCTION(mktime)