/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
 *
 * Author: Michael Zucchi <notzed@ximian.com>
 *
 * Copyright (C) 1999 Ximian (www.ximian.com/).
 *
 * This program is free software; you can redistribute it and/or 
 * modify it under the terms of version 2 of the GNU General Public 
 * License as published by the Free Software Foundation.
 *
 * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 * USA
 */

#ifndef _CAMEL_LOCK_H
#define _CAMEL_LOCK_H

#ifdef __cplusplus
extern "C" {
#pragma }
#endif /* __cplusplus }*/

#include <camel/camel-exception.h>

/* for .lock locking, retry, delay and stale counts */
#define CAMEL_LOCK_DOT_RETRY (5) /* number of times to retry lock */
#define CAMEL_LOCK_DOT_DELAY (2) /* delay between locking retries */
#define CAMEL_LOCK_DOT_STALE (60) /* seconds before a lock becomes stale */

/* for locking folders, retry/interretry delay */
#define CAMEL_LOCK_RETRY (5) /* number of times to retry lock */
#define CAMEL_LOCK_DELAY (2) /* delay between locking retries */

typedef enum {
	CAMEL_LOCK_READ,
	CAMEL_LOCK_WRITE,
} CamelLockType;

/* specific locking strategies */
int camel_lock_dot(const char *path, CamelException *ex);
int camel_lock_fcntl(int fd, CamelLockType type, CamelException *ex);
int camel_lock_flock(int fd, CamelLockType type, CamelException *ex);

void camel_unlock_dot(const char *path);
void camel_unlock_fcntl(int fd);
void camel_unlock_flock(int fd);

/* lock a folder in a standard way */
int camel_lock_folder(const char *path, int fd, CamelLockType type, CamelException *ex);
void camel_unlock_folder(const char *path, int fd);

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* !_CAMEL_LOCK_H */
.17.19'>dependabot/npm_and_yarn/devel/electron4/files/lodash-4.17.19</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/lodash.merge-4.6.2'>dependabot/npm_and_yarn/devel/electron4/files/lodash.merge-4.6.2</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/minimist-1.2.2'>dependabot/npm_and_yarn/devel/electron4/files/minimist-1.2.2</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/minimist-1.2.3'>dependabot/npm_and_yarn/devel/electron4/files/minimist-1.2.3</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/node-fetch-2.6.1'>dependabot/npm_and_yarn/devel/electron4/files/node-fetch-2.6.1</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/serve-10.1.2'>dependabot/npm_and_yarn/devel/electron4/files/serve-10.1.2</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/y18n-3.2.2'>dependabot/npm_and_yarn/devel/electron4/files/y18n-3.2.2</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/elliptic-6.5.3'>dependabot/npm_and_yarn/devel/electron6/files/elliptic-6.5.3</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/elliptic-6.5.4'>dependabot/npm_and_yarn/devel/electron6/files/elliptic-6.5.4</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/ini-1.3.8'>dependabot/npm_and_yarn/devel/electron6/files/ini-1.3.8</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/lodash-4.17.19'>dependabot/npm_and_yarn/devel/electron6/files/lodash-4.17.19</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2'>dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/node-fetch-2.6.1'>dependabot/npm_and_yarn/devel/electron6/files/node-fetch-2.6.1</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/serve-10.1.2'>dependabot/npm_and_yarn/devel/electron6/files/serve-10.1.2</option>
<option value='gnome-3.22'>gnome-3.22</option>
<option value='gnome-3.24'>gnome-3.24</option>
<option value='gnome-3.26'>gnome-3.26</option>
<option value='gnome-3.28'>gnome-3.28</option>
<option value='gnome-3.32'>gnome-3.32</option>
<option value='gnome-3.36'>gnome-3.36</option>
<option value='gstreamer'>gstreamer</option>
<option value='gstreamer-1.16'>gstreamer-1.16</option>
<option value='gstreamer0.10-removal'>gstreamer0.10-removal</option>
<option value='main' selected='selected'>main</option>
<option value='master'>master</option>
<option value='mate-1.16'>mate-1.16</option>
<option value='mate-1.18'>mate-1.18</option>
<option value='mate-1.20'>mate-1.20</option>
<option value='mate-1.22'>mate-1.22</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>FreeBSD GNOME current development ports (https://github.com/freebsd/freebsd-ports-gnome)</td><td class='sub right'></td></tr></table>
<table class='tabs'><tr><td>
<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/about/'>about</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/'>summary</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/refs/?id=b001102b824a99d5992711fb2999e7420c47c5bb'>refs</a><a class='active' href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/databases/mysac'>log</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/tree/databases/mysac?id=b001102b824a99d5992711fb2999e7420c47c5bb'>tree</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/databases/mysac?id=b001102b824a99d5992711fb2999e7420c47c5bb'>commit</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/diff/databases/mysac?id=b001102b824a99d5992711fb2999e7420c47c5bb'>diff</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/stats/databases/mysac'>stats</a></td><td class='form'><form class='right' method='get' action='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/databases/mysac'>
<input type='hidden' name='id' value='b001102b824a99d5992711fb2999e7420c47c5bb'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/?id=b001102b824a99d5992711fb2999e7420c47c5bb'>root</a>/<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/databases?id=b001102b824a99d5992711fb2999e7420c47c5bb'>databases</a>/<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/databases/mysac?id=b001102b824a99d5992711fb2999e7420c47c5bb'>mysac</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th></th><th class='left'>Commit message (<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/databases/mysac?id=b001102b824a99d5992711fb2999e7420c47c5bb&amp;showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Age</th><th class='left'>Files</th><th class='left'>Lines</th></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/databases/mysac?id=2fea475c6324d13ef42aede200948780810c6401'>Mea culpa: it's LGPL3, not GPLv3 actually.</a></td><td>danfe</td><td><span title='2015-09-09 00:26:49 +0800'>2015-09-09</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/databases/mysac?id=f4362981131a3dbea11034d99cfe52df7cd067e0'>- Update to version 1.1.2: the only functional differences are correct</a></td><td>danfe</td><td><span title='2015-09-09 00:25:12 +0800'>2015-09-09</span></td><td>3</td><td><span class='deletions'>-22</span>/<span class='insertions'>+14</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/databases/mysac?id=3ec45c02034ad026caea8b953daa6b60e371e5bb'>- Don't install static libraries with INSTALL_LIB (part 1/2)</a></td><td>amdmi3</td><td><span title='2015-05-08 22:04:50 +0800'>2015-05-08</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/databases/mysac?id=281aed337e425ea1dcd581c5a6090ddd0bf128d7'>Support staging.</a></td><td>vanilla</td><td><span title='2014-05-16 20:19:31 +0800'>2014-05-16</span></td><td>1</td><td><span class='deletions'>-6</span>/<span class='insertions'>+4</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/databases/mysac?id=94d8a4430550bbc2a7bf95ad142ad7d14215cf8b'>Add NO_STAGE all over the place in preparation for the staging support (cat: ...</a></td><td>bapt</td><td><span title='2013-09-21 00:13:47 +0800'>2013-09-21</span></td><td>1</td><td><span class='deletions'>-5</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/databases/mysac?id=f4f6cedc9f4128ba3123f560aa4bc66183acaf3c'>Mark as broken on powerpc and sparc64 (and, presumably, ia64).</a></td><td>linimon</td><td><span title='2012-09-04 14:57:36 +0800'>2012-09-04</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+7</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/databases/mysac?id=bfe1cc2351d2d00739b28c9b5e097b1f15d95903'>Fix typos in COMMENT</a></td><td>cs</td><td><span title='2012-07-24 15:19:21 +0800'>2012-07-24</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
me/commit/net-im/jabberd?id=7e65b5754c7b4a91985eb5db14fadd43b29e6cd5'>SHA256ify</a></td><td>edwin</td><td><span title='2006-02-01 09:02:03 +0800'>2006-02-01</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-im/jabberd?id=e31bed690b2fba4714686b691a351a51b98d80e8'>Replace ugly "@unexec rmdir %D... 2&gt;/dev/null || true" with @dirrmtry</a></td><td>edwin</td><td><span title='2006-01-22 11:01:03 +0800'>2006-01-22</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-im/jabberd?id=61d5cd5d39c2cf722ce52ddab0a5cd934bebb994'>Move IDN related ports from devel to dns category:</a></td><td>pav</td><td><span title='2005-11-13 02:52:22 +0800'>2005-11-13</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-im/jabberd?id=bc12455c922a8262533e66e9c3ed60ccce8829cd'>Move instant messaging related ports to newly created net-im category:</a></td><td>pav</td><td><span title='2005-11-09 15:48:19 +0800'>2005-11-09</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-im/jabberd?id=7e28e2cf762d8c19e404c8854cec1446550d480e'>Update to 2.0s10</a></td><td>vsevolod</td><td><span title='2005-10-12 22:17:09 +0800'>2005-10-12</span></td><td>3</td><td><span class='deletions'>-14</span>/<span class='insertions'>+3</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-im/jabberd?id=cad53039002a346ee0502a7a3e185b875a30743a'>Add support of sqlite storage.</a></td><td>vsevolod</td><td><span title='2005-09-11 03:40:48 +0800'>2005-09-11</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+8</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-im/jabberd?id=2417888c9d8e6d11a235f5006595c56c394ef32e'>- Add --enable-pipe option</a></td><td>garga</td><td><span title='2005-07-29 22:52:26 +0800'>2005-07-29</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+5</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-im/jabberd?id=fa4328527079d7847c9d94bebbbf991242008ad5'>Update to 2.0s9 that fixes 3 buffer overflow vulnerabilities.</a></td><td>vsevolod</td><td><span title='2005-07-28 14:31:46 +0800'>2005-07-28</span></td><td>3</td><td><span class='deletions'>-15</span>/<span class='insertions'>+15</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-im/jabberd?id=b1cdedddafd1b0d3bf27ed8b7eae8309987fd29e'>- Update to 2.0.8</a></td><td>jylefort</td><td><span title='2005-04-28 22:16:46 +0800'>2005-04-28</span></td><td>3</td><td><span class='deletions'>-15</span>/<span class='insertions'>+12</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-im/jabberd?id=8f7c0fc69743cb260951fdf3988ec6dc27039fe5'>- Update to 2.0.7</a></td><td>pav</td><td><span title='2005-04-18 00:29:41 +0800'>2005-04-18</span></td><td>6</td><td><span class='deletions'>-46</span>/<span class='insertions'>+11</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-im/jabberd?id=ca9d0e2291f677879c1b36a416eb2ad271850cbc'>Split the postgresql ports into a server and a client part.</a></td><td>girgen</td><td><span title='2005-01-31 08:35:55 +0800'>2005-01-31</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-im/jabberd?id=cd4b24b5f2adb6efe0a029def138f7a3b60398b1'>- Update to 2.0.6</a></td><td>pav</td><td><span title='2004-12-16 00:03:34 +0800'>2004-12-16</span></td><td>3</td><td><span class='deletions'>-5</span>/<span class='insertions'>+4</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-im/jabberd?id=b296345368e163385a2353ca29dfbc2115f1a6e2'>Update port to 2.0.5 (2.0s5). Based on submission by maintainer.</a></td><td>josef</td><td><span title='2004-12-02 21:42:32 +0800'>2004-12-02</span></td><td>3</td><td><span class='deletions'>-8</span>/<span class='insertions'>+24</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-im/jabberd?id=f2ef79c89ea10f9c1b2c61510e8771c96922f0f8'>Mark the port forbidden due to vulnerability.</a></td><td>josef</td><td><span title='2004-12-01 05:58:16 +0800'>2004-12-01</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+1</span></td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net-im/jabberd?id=ef8e2e3934292aecf01fcf35ef6a216f138922cb'>- Update to 2.0.s4</a></td><td>pav</td><td><span title='2004-10-28 06:12:17 +0800'>2004-10-28</span></td><td>2</td><td><span class='deletions'>-6</span>/<span class='insertions'>+5</span></td></tr>