-/* $Id: mmpop3d.c,v 1.41.4.3 2007/03/15 17:52:34 mmondor Exp $ */
+/* $Id: mmpop3d.c,v 1.41.4.4 2007/03/15 20:46:26 mmondor Exp $ */
/*
* Copyright (C) 2001-2007, Matthew Mondor
MMCOPYRIGHT("@(#) Copyright (c) 2001-2007\n\
\tMatthew Mondor. All rights reserved.\n");
-MMRCSID("$Id: mmpop3d.c,v 1.41.4.3 2007/03/15 17:52:34 mmondor Exp $");
+MMRCSID("$Id: mmpop3d.c,v 1.41.4.4 2007/03/15 20:46:26 mmondor Exp $");
params[1] = NULL;
if ((pgres = PQexecParams(clenv->pgconn,
"SELECT \"user\",passwd FROM box LEFT JOIN \"user\" ON "
- "\"user\"=id WHERE address='$1' AND active='t'",
+ "\"user\"=id WHERE address=$1 AND active='t'",
1, NULL, params, NULL, NULL, 0)) != NULL) {
if (PQntuples(pgres) == 1) {
mm_strcpy(id, PQgetvalue(pgres, 0, 0));
mmstat_init(&clenv->vstat, TRUE, TRUE);
mmstat_init(&clenv->pstat, TRUE, FALSE);
- if ((clenv->pgconn = PQconnectdb(CONF.DB_INFO)) == NULL)
- return FALSE;
+
+ /* XXX Performance enhancement but requires thread safety
+ if ((clenv->pgconn = PQconnectdb(CONF.DB_INFO)) == NULL) {
+ mmsyslog(LOGLEVEL, 0, "PQconnectdb()");
+ return FALSE;
+ }
+ */
return TRUE;
}
static void
clenv_destructor(pnode_t *pn)
{
+ /* XXX Performance enhancement but requires thread safety
clientenv *clenv = (clientenv *)pn;
if (clenv->pgconn != NULL) {
- PQfinish(clenv->pgconn);
- clenv->pgconn = NULL;
+ PQfinish(clenv->pgconn);
+ clenv->pgconn = NULL;
}
+ */
}
clenv = (clientenv *)pool_alloc(&clenv_pool, TRUE);
pthread_mutex_unlock(&clenv_lock);
+ /* XXX for now */
+ clenv->pgconn = PQconnectdb(CONF.DB_INFO);
+
return (clenv);
}
if (clenv->index != NULL)
free(clenv->index);
+ /* XXX for now */
+ if (clenv->pgconn != NULL)
+ PQfinish(clenv->pgconn);
+
pthread_mutex_lock(&clenv_lock);
pool_free((pnode_t *)clenv);
pthread_mutex_unlock(&clenv_lock);
clenv->size = 0;
for (i = 0; i < rows; i++) {
mm_strcpy(mnode[i].id, PQgetvalue(pgres, i, 0));
+ mnode[i].size = atol(PQgetvalue(pgres, i, 1));
(void) snprintf(mnode[i].file, 255, "%s/%s", CONF.MAIL_DIR,
- PQgetvalue(pgres, i, 1));
- mnode[i].size = atol(PQgetvalue(pgres, i, 2));
+ PQgetvalue(pgres, i, 2));
clenv->size += mnode[i].size;
}
clenv->index = mnode;
-/* $Id: mmsmtpd.c,v 1.75.4.2 2007/03/15 17:01:56 mmondor Exp $ */
+/* $Id: mmsmtpd.c,v 1.75.4.3 2007/03/15 20:46:28 mmondor Exp $ */
/*
* Copyright (C) 2001-2007, Matthew Mondor
MMCOPYRIGHT("@(#) Copyright (c) 2001-2007\n\
\tMatthew Mondor. All rights reserved.\n");
-MMRCSID("$Id: mmsmtpd.c,v 1.75.4.2 2007/03/15 17:01:56 mmondor Exp $");
+MMRCSID("$Id: mmsmtpd.c,v 1.75.4.3 2007/03/15 20:46:28 mmondor Exp $");
mmstat_init(&clenv->vstat, TRUE, TRUE);
mmstat_init(&clenv->pstat, TRUE, FALSE);
- if ((clenv->pgconn = PQconnectdb(CONF.DB_INFO)) == NULL)
+
+ /* XXX Performance enhancement but requires thread safety
+ if ((clenv->pgconn = PQconnectdb(CONF.DB_INFO)) == NULL) {
+ mmsyslog(LOGLEVEL, 0, "PQconnectdb()");
return FALSE;
+ }
+ */
return TRUE;
}
static void
clientenv_destructor(pnode_t *pn)
{
+ /* XXX Performance enhancement but requires thread safety
clientenv *clenv = (clientenv *)pn;
if (clenv->pgconn != NULL) {
PQfinish(clenv->pgconn);
clenv->pgconn = NULL;
}
+ */
}
clenv = (clientenv *)pool_alloc(&clenv_pool, TRUE);
pthread_mutex_unlock(&clenv_lock);
+ /* XXX for now */
+ clenv->pgconn = PQconnectdb(CONF.DB_INFO);
+
return (clenv);
}
mmstrfree(clenv->from);
empty_rcpts(&clenv->rcpt);
+ /* XXX for now */
+ if (clenv->pgconn != NULL)
+ PQfinish(clenv->pgconn);
+
pthread_mutex_lock(&clenv_lock);
pool_free((pnode_t *)clenv);
pthread_mutex_unlock(&clenv_lock);