diff options
author | Alain Magloire <alainm@gnu.org> | 2001-05-02 04:45:30 +0000 |
---|---|---|
committer | Alain Magloire <alainm@gnu.org> | 2001-05-02 04:45:30 +0000 |
commit | e73d4524f0675ee2050d6dc0c932f7deb83f29af (patch) | |
tree | fa8e2406cae5d89a76544bfca6b6f02757dbce54 | |
parent | 12c3088414a4e581901e8bb48648c8249b0b5775 (diff) | |
download | mailutils-e73d4524f0675ee2050d6dc0c932f7deb83f29af.tar.gz mailutils-e73d4524f0675ee2050d6dc0c932f7deb83f29af.tar.bz2 |
.
-rw-r--r-- | pop3d/lock.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/pop3d/lock.c b/pop3d/lock.c new file mode 100644 index 000000000..b5c8d5e6f --- /dev/null +++ b/pop3d/lock.c @@ -0,0 +1,55 @@ +/* GNU mailutils - a suite of utilities for electronic mail + Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. + + 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 + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +#include "pop3d.h" + +int +pop3d_lock () +{ + url_t url = NULL; + locker_t lock = NULL; + const char *name; + + mailbox_get_url (mbox, &url); + name = url_to_string (url); + mailbox_get_locker (mbox, &lock); + if (locker_lock (lock, MU_LOCKER_WRLOCK)) + { + syslog (LOG_NOTICE, "mailbox '%s' locked by another session", + (name) ? name : "?"); + return ERR_MBOX_LOCK; + } + return 0; +} + +int +pop3d_touchlock () +{ + locker_t lock = NULL; + mailbox_get_locker (mbox, &lock); + locker_touchlock (lock); + return 0; +} + +int +pop3d_unlock () +{ + locker_t lock = NULL; + mailbox_get_locker (mbox, &lock); + locker_unlock (lock); + return 0; +} |