]> granicus.if.org Git - php/commitdiff
more porting
authorSascha Schumann <sas@php.net>
Sun, 27 Jun 1999 21:45:06 +0000 (21:45 +0000)
committerSascha Schumann <sas@php.net>
Sun, 27 Jun 1999 21:45:06 +0000 (21:45 +0000)
ext/snmp/config.h.stub
ext/snmp/config.m4
ext/snmp/snmp.c
ext/standard/base64.c
ext/standard/datetime.c
ext/standard/file.c

index e400f18f018e16af9e4e4c11218b2151419d56c7..2e837eac70486d33d2a18870fcfc62b01437faee 100644 (file)
@@ -1,2 +1,4 @@
 /* Define if you want the SNMP interface */
 #define HAVE_SNMP 0
+
+#undef UCD_SNMP_HACK
index 07473fd9c8ac3a257dc9f357836ee8a0975ed513..c39d77908ee47f4cda692cbc3a2fccbb84f37882 100644 (file)
@@ -23,6 +23,20 @@ AC_ARG_WITH(snmp,
     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
index 7f11bb84137caae2b7099928b50c6dd745117119..13fce26a43e191eab6dc46855d128553ed887ec3 100644 (file)
@@ -175,7 +175,11 @@ void _php3_snmp(INTERNAL_FUNCTION_PARAMETERS, int st) {
         * 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;
index 69bdb9d4fa0be3b9df058c5874ef74fc3891aad6..878b7244fc3ee0d7a64365bd4ee69d29541e24ac 100644 (file)
@@ -92,10 +92,7 @@ unsigned char *_php3_base64_decode(const unsigned char *string, int length, int
        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) {
index 1a0cfeca77e6db1d89dd720669a115292a44cccc..addc80b6349ecaae41c42d6eebc25d67afd4e483 100644 (file)
@@ -79,12 +79,12 @@ PHP_FUNCTION(time)
 
 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 */
@@ -92,14 +92,15 @@ void _php3_mktime(INTERNAL_FUNCTION_PARAMETERS, int gm)
                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 */
@@ -125,15 +126,15 @@ void _php3_mktime(INTERNAL_FUNCTION_PARAMETERS, int gm)
 
        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)
index 7501bd0eea39c1699690daf7d6282cd9304856b4..911324556d6eebd5f3def4e15ce02427fc4024af 100644 (file)
@@ -535,6 +535,9 @@ PHP_FUNCTION(tempnam)
 
        t = tempnam(d,p);
        efree(d);
+       if(!t) {
+               RETURN_FALSE;
+       }
        RETURN_STRING(t,1);
 }
 /* }}} */