*** empty log message ***
authorMatthew Mondor <mmondor@pulsar-zone.net>
Sat, 21 Aug 2004 10:00:13 +0000 (10:00 +0000)
committerMatthew Mondor <mmondor@pulsar-zone.net>
Sat, 21 Aug 2004 10:00:13 +0000 (10:00 +0000)
mmsoftware/mmlib/mmsql.c
mmsoftware/mmlib/mmsql.h
mmsoftware/mmmail/src/mmpop3d/mmpop3d.c
mmsoftware/mmmail/src/mmpop3d/mmpop3d.h
mmsoftware/mmmail/src/mmsmtpd/mmsmtpd.c
mmsoftware/mmmail/src/mmsmtpd/mmsmtpd.h

index 4f9a6fc..33d6600 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: mmsql.c,v 1.10 2004/08/11 14:35:29 mmondor Exp $ */
+/* $Id: mmsql.c,v 1.11 2004/08/21 10:00:12 mmondor Exp $ */
 
 /*
  * Copyright (C) 2000-2004, Matthew Mondor
  */
 
 /*
- * This requires linking with libmysqlclient and libpth. We lock a mutex
- * before performing an operation to ensure that if multiple concurrent
+ * This requires linking with libmysqlclient. We lock a mutex before
+ * performing an operation to ensure that if multiple concurrent
  * threads were ever calling an operation at the same time the lock would
- * at least be thread-safe, they would wait their turn safely.
+ * at least be thread-safe, they would wait their turn safely. To be
+ * able to work with multiple thread libraries, we use supplied thread
+ * functions.
  */
 
 
@@ -57,8 +59,6 @@
 #include <mysql.h>
 #include <errmsg.h>
 
-#include <pth.h>
-
 #include <mmtypes.h>
 #include <mmstring.h>
 #include <mmsql.h>
@@ -69,7 +69,7 @@
 
 MMCOPYRIGHT("@(#) Copyright (c) 2000-2004\n\
 \tMatthew Mondor. All rights reserved.\n");
-MMRCSID("$Id: mmsql.c,v 1.10 2004/08/11 14:35:29 mmondor Exp $");
+MMRCSID("$Id: mmsql.c,v 1.11 2004/08/21 10:00:12 mmondor Exp $");
 
 
 
@@ -94,8 +94,11 @@ mmsql_init(struct mmsql_threadsupport *funcs)
     thrfuncs.mutex_lock = funcs->mutex_lock;
     thrfuncs.mutex_unlock = funcs->mutex_unlock;
     thrfuncs.thread_yield = funcs->thread_yield;
+    thrfuncs.thread_sleep = funcs->thread_sleep;
+
+    if ((mmsql_lock = thrfuncs.mutex_init()) != NULL)
+       return (TRUE);
 
-    if ((mmsql_lock = thrfuncs.mutex_init())) return (TRUE);
     return (FALSE);
 }
 
@@ -103,7 +106,7 @@ mmsql_init(struct mmsql_threadsupport *funcs)
 void
 mmsql_exit(void)
 {
-    if (mmsql_lock)
+    if (mmsql_lock != NULL)
        thrfuncs.mutex_destroy(mmsql_lock);
 }
 
@@ -184,7 +187,7 @@ mmsql_glock(const char *name)
         * eventually exit loop, the SQL server seens down so
         * other operations should fail safely.
         */
-       pth_sleep(1);
+       thrfuncs.thread_sleep(1);
        count++;
     }
 }
@@ -234,7 +237,7 @@ mmsql_ping(void)
 {
     int res;
 
-    if ((res = mysql_ping(mysql)))
+    if ((res = mysql_ping(mysql)) != 0)
        DEBUG_PRINTF("mmsql_ping", "mysql_ping() - (%s)", mysql_error(mysql));
 }
 
@@ -252,20 +255,20 @@ mmsql_query(const char *query, long len)
      * and return the results which the caller might use for as long as
      * required.
      */
-    if (mmsql_lock)
+    if (mmsql_lock != NULL)
        thrfuncs.mutex_lock(mmsql_lock);
 
     /* Ensure that connection is still active to the server */
     mmsql_ping();
 
-    if (!(res = mysql_real_query(mysql, query, len))) {
+    if ((res = mysql_real_query(mysql, query, len)) != 0) {
        if ((mysqlres = mysql_store_result(mysql)) == NULL)
            syslog(LOG_NOTICE, "mmsql_query() - mysql_store_result()");
     } else
        syslog(LOG_NOTICE, "mmsql_query() - mysql_real_query(%s) - (%s)",
                query, mysql_error(mysql));
 
-    if (mmsql_lock)
+    if (mmsql_lock != NULL)
        thrfuncs.mutex_unlock(mmsql_lock);
 
     return (mysqlres);
@@ -275,7 +278,8 @@ mmsql_query(const char *query, long len)
 MYSQL_RES *
 mmsql_free_result(MYSQL_RES *mysqlres)
 {
-    if (mysqlres != NULL) mysql_free_result(mysqlres);
+    if (mysqlres != NULL)
+       mysql_free_result(mysqlres);
 
     return (NULL);
 }
@@ -290,19 +294,19 @@ mmsql_command(const char *query, long len)
     bool res = TRUE;
     int res2;
 
-    if (mmsql_lock)
+    if (mmsql_lock != NULL)
        thrfuncs.mutex_lock(mmsql_lock);
 
     /* Ensure that connection to the server is still active */
     mmsql_ping();
 
-    if ((res2 = mysql_real_query(mysql, query, len))) {
+    if ((res2 = mysql_real_query(mysql, query, len)) != 0) {
        syslog(LOG_NOTICE, "mmsql_command() - mysql_real_query() - (%s)",
                mysql_error(mysql));
        res = FALSE;
     }
 
-    if (mmsql_lock)
+    if (mmsql_lock != NULL)
        thrfuncs.mutex_unlock(mmsql_lock);
 
     return (res);
@@ -314,12 +318,12 @@ mmsql_last_auto_id(void)
 {
     u_int64_t id;
 
-    if (mmsql_lock)
+    if (mmsql_lock != NULL)
        thrfuncs.mutex_lock(mmsql_lock);
 
     id = mysql_insert_id(mysql);
 
-    if (mmsql_lock)
+    if (mmsql_lock != NULL)
        thrfuncs.mutex_unlock(mmsql_lock);
 
     return id;
index 48e6563..0202e94 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: mmsql.h,v 1.7 2004/08/11 14:35:29 mmondor Exp $ */
+/* $Id: mmsql.h,v 1.8 2004/08/21 10:00:12 mmondor Exp $ */
 
 /*
  * Copyright (C) 2000-2004, Matthew Mondor
@@ -61,6 +61,7 @@ struct mmsql_threadsupport {
     void (*mutex_lock)(void *);
     void (*mutex_unlock)(void *);
     void (*thread_yield)(void);
+    void (*thread_sleep)(int);
 };
 
 
index 56ce48b..c8f0c2d 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: mmpop3d.c,v 1.37 2004/08/12 09:24:27 mmondor Exp $ */
+/* $Id: mmpop3d.c,v 1.38 2004/08/21 10:00:12 mmondor Exp $ */
 
 /*
  * Copyright (C) 2001-2004, Matthew Mondor
@@ -81,7 +81,7 @@
 
 MMCOPYRIGHT("@(#) Copyright (c) 2001-2004\n\
 \tMatthew Mondor. All rights reserved.\n");
-MMRCSID("$Id: mmpop3d.c,v 1.37 2004/08/12 09:24:27 mmondor Exp $");
+MMRCSID("$Id: mmpop3d.c,v 1.38 2004/08/21 10:00:12 mmondor Exp $");
 
 
 
@@ -258,7 +258,8 @@ main(int argc, char **argv)
        _pth_mutex_destroy, 
        _pth_mutex_lock,
        _pth_mutex_unlock,
-       _pth_thread_yield 
+       _pth_thread_yield,
+       _pth_thread_sleep
     };
     mmstat_t vstat;
 
@@ -1774,6 +1775,13 @@ _pth_thread_yield(void)
 }
 
 
+static void
+_pth_thread_sleep(int secs)
+{
+    pth_sleep(secs);
+}
+
+
 static bool
 _pth_eintr(void)
 {
index 3e95e82..46e6630 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: mmpop3d.h,v 1.14 2004/08/11 16:39:36 mmondor Exp $ */
+/* $Id: mmpop3d.h,v 1.15 2004/08/21 10:00:12 mmondor Exp $ */
 
 /*
  * Copyright (C) 2001-2004, Matthew Mondor
@@ -229,6 +229,7 @@ static void *_pth_mutex_destroy(void *);
 static void _pth_mutex_lock(void *);
 static void _pth_mutex_unlock(void *);
 static void _pth_thread_yield(void);
+static void _pth_thread_sleep(int);
 static bool _pth_eintr(void);
 
 static void async_checkpw(struct async_msg *);
index 67ac9a5..b7ad5e6 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: mmsmtpd.c,v 1.49 2004/08/12 09:24:31 mmondor Exp $ */
+/* $Id: mmsmtpd.c,v 1.50 2004/08/21 10:00:12 mmondor Exp $ */
 
 /*
  * Copyright (C) 2001-2004, Matthew Mondor
@@ -79,7 +79,7 @@
 
 MMCOPYRIGHT("@(#) Copyright (c) 2001-2004\n\
 \tMatthew Mondor. All rights reserved.\n");
-MMRCSID("$Id: mmsmtpd.c,v 1.49 2004/08/12 09:24:31 mmondor Exp $");
+MMRCSID("$Id: mmsmtpd.c,v 1.50 2004/08/21 10:00:12 mmondor Exp $");
 
 
 
@@ -282,7 +282,8 @@ main(int argc, char **argv)
        _pth_mutex_destroy,
        _pth_mutex_lock,
        _pth_mutex_unlock,
-       _pth_thread_yield
+       _pth_thread_yield,
+       _pth_thread_sleep
     };
     mmstat_t vstat;
     pth_t hosts_table_thread = NULL;
@@ -2110,6 +2111,13 @@ _pth_thread_yield(void)
 }
 
 
+static void
+_pth_thread_sleep(int secs)
+{
+    pth_sleep(secs);
+}
+
+
 static bool
 _pth_eintr(void)
 {
index 5d25634..1103c13 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: mmsmtpd.h,v 1.21 2004/08/11 14:35:30 mmondor Exp $ */
+/* $Id: mmsmtpd.h,v 1.22 2004/08/21 10:00:13 mmondor Exp $ */
 
 /*
  * Copyright (C) 2001-2004, Matthew Mondor
@@ -288,6 +288,7 @@ static void *_pth_mutex_destroy(void *);
 static void _pth_mutex_lock(void *);
 static void _pth_mutex_unlock(void *);
 static void _pth_thread_yield(void);
+static void _pth_thread_sleep(int);
 static bool _pth_eintr(void);
 
 static void async_resquery(struct async_msg *);