Fixed outoing packet queue handling bug on very high load.
[silc.git] / lib / silcutil / unix / silcunixutil.c
index 1e1c44083c7b1cf7692088e293a7c5beb0546038..8cb6a723f10db57e57b256888d35e5f8aa600ef1 100644 (file)
@@ -2,9 +2,9 @@
 
   silcunixutil.c
 
-  Author: Pekka Riikonen <priikone@poseidon.pspt.fi>
+  Author: Pekka Riikonen <priikone@silcnet.org>
 
-  Copyright (C) 1997 - 2000 Pekka Riikonen
+  Copyright (C) 1997 - 2001 Pekka Riikonen
 
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -53,6 +53,8 @@ char *silc_string_regexify(const char *string)
       regex[count] = '.';
       count++;
     } else if (string[i] == ',') {
+      if (i + 1 == len)
+       continue;
       regex[count] = '|';
       count++;
       continue;
@@ -62,7 +64,7 @@ char *silc_string_regexify(const char *string)
     count++;
   }
 
-  regex[count - 1] = ')';
+  regex[count++] = ')';
   regex[count] = '$';
 
   return regex;
@@ -114,6 +116,9 @@ int silc_string_match(const char *string1, const char *string2)
   char *s1;
   int ret = FALSE;
 
+  if (!string1 || !string2)
+    return ret;
+
   s1 = silc_string_regexify(string1);
   ret = silc_string_regex_match(s1, string2);
   silc_free(s1);
@@ -145,7 +150,7 @@ char *silc_get_username()
   }
   
   return strdup(logname);
-}                          
+}
 
 /* Returns the real name of ther user. */
 
@@ -167,3 +172,10 @@ char *silc_get_real_name()
 
   return realname;
 }
+
+/* Return current time to struct timeval. */
+
+int silc_gettimeofday(struct timeval *p)
+{
+  return gettimeofday(p, NULL);
+}