support cachecrls=yes
[strongswan.git] / src / libstrongswan / library.c
index cd40b64..9f96d11 100644 (file)
@@ -43,6 +43,7 @@ ENUM(status_names, SUCCESS, DESTROY_ME,
        "VERIFY_ERROR",
        "INVALID_STATE",
        "DESTROY_ME",
        "VERIFY_ERROR",
        "INVALID_STATE",
        "DESTROY_ME",
+       "NEED_MORE",
 );
 
 /**
 );
 
 /**
@@ -59,6 +60,18 @@ void *clalloc(void * pointer, size_t size)
 }
 
 /**
 }
 
 /**
+ * Described in header.
+ */
+void memxor(u_int8_t dest[], u_int8_t src[], size_t n)
+{
+       size_t i;
+       for (i = 0; i < n; i++)
+       {
+               dest[i] ^= src[i];
+       }
+}
+
+/**
  * We use a single mutex for all refcount variables. This
  * is not optimal for performance, but the critical section
  * is not that long...
  * We use a single mutex for all refcount variables. This
  * is not optimal for performance, but the critical section
  * is not that long...
@@ -105,7 +118,7 @@ static int print_time(FILE *stream, const struct printf_info *info,
                "Jan", "Feb", "Mar", "Apr", "May", "Jun",
                "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
        };
                "Jan", "Feb", "Mar", "Apr", "May", "Jun",
                "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
        };
-       time_t time = *((time_t*)(args[0]));
+       time_t *time = *((time_t**)(args[0]));
        bool utc = TRUE;
        struct tm t;
        
        bool utc = TRUE;
        struct tm t;
        
@@ -120,11 +133,11 @@ static int print_time(FILE *stream, const struct printf_info *info,
        }
        if (utc)
        {
        }
        if (utc)
        {
-               gmtime_r(&time, &t);
+               gmtime_r(time, &t);
        }
        else
        {
        }
        else
        {
-               localtime_r(&time, &t);
+               localtime_r(time, &t);
        }
        return fprintf(stream, "%s %02d %02d:%02d:%02d%s%04d",
                                   months[t.tm_mon], t.tm_mday, t.tm_hour, t.tm_min,
        }
        return fprintf(stream, "%s %02d %02d:%02d:%02d%s%04d",
                                   months[t.tm_mon], t.tm_mday, t.tm_hour, t.tm_min,
@@ -137,27 +150,28 @@ static int print_time(FILE *stream, const struct printf_info *info,
 static int print_time_delta(FILE *stream, const struct printf_info *info,
                                                        const void *const *args)
 {
 static int print_time_delta(FILE *stream, const struct printf_info *info,
                                                        const void *const *args)
 {
-       time_t start = *((time_t*)(args[0]));
-       time_t end = *((time_t*)(args[1]));
-       u_int delta = abs(end - start);
+       time_t *start = *((time_t**)(args[0]));
+       time_t *end   = *((time_t**)(args[1]));
+       u_int delta   = abs(*end - *start);
+
        char* unit = "second";
        char* unit = "second";
-       
+
        if (delta > 2 * 60 * 60 * 24)
        {
                delta /= 60 * 60 * 24;
        if (delta > 2 * 60 * 60 * 24)
        {
                delta /= 60 * 60 * 24;
-               unit = "days";
+               unit = "day";
        }
        else if (delta > 2 * 60 * 60)
        {
                delta /= 60 * 60;
        }
        else if (delta > 2 * 60 * 60)
        {
                delta /= 60 * 60;
-               unit = "hours";
+               unit = "hour";
        }
        else if (delta > 2 * 60)
        {
                delta /= 60;
        }
        else if (delta > 2 * 60)
        {
                delta /= 60;
-               unit = "minutes";
+               unit = "minute";
        }
        }
-       return fprintf(stream, "%d %s", delta, unit);
+       return fprintf(stream, "%d %s%s", delta, unit, (delta == 1)? "":"s");
 }
 
 /**
 }
 
 /**
@@ -165,6 +179,6 @@ static int print_time_delta(FILE *stream, const struct printf_info *info,
  */
 static void __attribute__ ((constructor))print_register()
 {
  */
 static void __attribute__ ((constructor))print_register()
 {
-       register_printf_function(PRINTF_TIME, print_time, arginfo_int_alt_int_int);
-       register_printf_function(PRINTF_TIME_DELTA, print_time_delta, arginfo_int_int);
+       register_printf_function(PRINTF_TIME, print_time, arginfo_ptr_alt_ptr_int);
+       register_printf_function(PRINTF_TIME_DELTA, print_time_delta, arginfo_ptr_ptr);
 }
 }