summaryrefslogtreecommitdiff
path: root/source3/lib
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2017-05-18 10:37:30 +0200
committerVolker Lendecke <vl@samba.org>2017-06-15 13:19:14 +0200
commit4422124e096a80da3d585d831fee136149c36b0d (patch)
tree15e7a15ed6680b2bc14055113b397a5fd8df49aa /source3/lib
parent636137a30a9fdcb5ff61830f1f8324b97b5cb6c9 (diff)
downloadsamba-4422124e096a80da3d585d831fee136149c36b0d.tar.gz
g_lock: Move parsing routines together
No code change, just shuffling around: Before this patchset, g_lock_parse was somewhere in the middle. This carries no real logic, put it on top. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/lib')
-rw-r--r--source3/lib/g_lock.c108
1 files changed, 54 insertions, 54 deletions
diff --git a/source3/lib/g_lock.c b/source3/lib/g_lock.c
index d0d835cdbad..542abe4f24f 100644
--- a/source3/lib/g_lock.c
+++ b/source3/lib/g_lock.c
@@ -61,6 +61,60 @@ static void g_lock_rec_get(struct g_lock_rec *rec,
server_id_get(&rec->pid, buf+1);
}
+static ssize_t g_lock_put(uint8_t *buf, size_t buflen,
+ const struct g_lock_rec *locks,
+ size_t num_locks)
+{
+ size_t i, len, ofs;
+
+ if (num_locks > UINT32_MAX/G_LOCK_REC_LENGTH) {
+ return -1;
+ }
+
+ len = num_locks * G_LOCK_REC_LENGTH;
+
+ if (len > buflen) {
+ return len;
+ }
+
+ ofs = 0;
+
+ for (i=0; i<num_locks; i++) {
+ g_lock_rec_put(buf+ofs, locks[i]);
+ ofs += G_LOCK_REC_LENGTH;
+ }
+
+ return len;
+}
+
+static bool g_lock_get(TALLOC_CTX *mem_ctx, TDB_DATA data,
+ unsigned *pnum_locks, struct g_lock_rec **plocks)
+{
+ size_t i, num_locks;
+ struct g_lock_rec *locks;
+
+ if ((data.dsize % G_LOCK_REC_LENGTH) != 0) {
+ DEBUG(1, ("invalid lock record length %zu\n", data.dsize));
+ return false;
+ }
+ num_locks = data.dsize / G_LOCK_REC_LENGTH;
+
+ locks = talloc_array(mem_ctx, struct g_lock_rec, num_locks);
+ if (locks == NULL) {
+ DEBUG(1, ("talloc_memdup failed\n"));
+ return false;
+ }
+
+ for (i=0; i<num_locks; i++) {
+ g_lock_rec_get(&locks[i], data.dptr);
+ data.dptr += G_LOCK_REC_LENGTH;
+ }
+
+ *plocks = locks;
+ *pnum_locks = num_locks;
+ return true;
+}
+
struct g_lock_ctx *g_lock_ctx_init(TALLOC_CTX *mem_ctx,
struct messaging_context *msg)
{
@@ -113,60 +167,6 @@ static bool g_lock_conflicts(enum g_lock_type l1, enum g_lock_type l2)
return true;
}
-static bool g_lock_get(TALLOC_CTX *mem_ctx, TDB_DATA data,
- unsigned *pnum_locks, struct g_lock_rec **plocks)
-{
- size_t i, num_locks;
- struct g_lock_rec *locks;
-
- if ((data.dsize % G_LOCK_REC_LENGTH) != 0) {
- DEBUG(1, ("invalid lock record length %zu\n", data.dsize));
- return false;
- }
- num_locks = data.dsize / G_LOCK_REC_LENGTH;
-
- locks = talloc_array(mem_ctx, struct g_lock_rec, num_locks);
- if (locks == NULL) {
- DEBUG(1, ("talloc_memdup failed\n"));
- return false;
- }
-
- for (i=0; i<num_locks; i++) {
- g_lock_rec_get(&locks[i], data.dptr);
- data.dptr += G_LOCK_REC_LENGTH;
- }
-
- *plocks = locks;
- *pnum_locks = num_locks;
- return true;
-}
-
-static ssize_t g_lock_put(uint8_t *buf, size_t buflen,
- const struct g_lock_rec *locks,
- size_t num_locks)
-{
- size_t i, len, ofs;
-
- if (num_locks > UINT32_MAX/G_LOCK_REC_LENGTH) {
- return -1;
- }
-
- len = num_locks * G_LOCK_REC_LENGTH;
-
- if (len > buflen) {
- return len;
- }
-
- ofs = 0;
-
- for (i=0; i<num_locks; i++) {
- g_lock_rec_put(buf+ofs, locks[i]);
- ofs += G_LOCK_REC_LENGTH;
- }
-
- return len;
-}
-
static NTSTATUS g_lock_record_store(struct db_record *rec,
const struct g_lock_rec *locks,
size_t num_locks)