s3-build Create dbwrap_util subsystem
authorAndrew Bartlett <abartlet@samba.org>
Mon, 30 May 2011 07:27:23 +0000 (17:27 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 30 May 2011 22:32:08 +0000 (00:32 +0200)
This contains the functions from dbwrap that don't require lp_
functions, and can therefore be put into a library (without dependency
loops).

Andrew Bartlett

source3/lib/dbwrap.c
source3/lib/dbwrap_util.c
source3/wscript_build

index 9b3197f402e5e344a28255c1cf0d7e43bd0d0395..83fc40efacf14a40ce1b3cebfc43c2b26203e7bb 100644 (file)
@@ -157,63 +157,3 @@ struct db_context *db_open(TALLOC_CTX *mem_ctx,
 
        return result;
 }
-
-NTSTATUS dbwrap_delete(struct db_context *db, TDB_DATA key)
-{
-       struct db_record *rec;
-       NTSTATUS status;
-
-       rec = db->fetch_locked(db, talloc_tos(), key);
-       if (rec == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-       status = rec->delete_rec(rec);
-       TALLOC_FREE(rec);
-       return status;
-}
-
-NTSTATUS dbwrap_store(struct db_context *db, TDB_DATA key,
-                     TDB_DATA data, int flags)
-{
-       struct db_record *rec;
-       NTSTATUS status;
-
-       rec = db->fetch_locked(db, talloc_tos(), key);
-       if (rec == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       status = rec->store(rec, data, flags);
-       TALLOC_FREE(rec);
-       return status;
-}
-
-TDB_DATA dbwrap_fetch(struct db_context *db, TALLOC_CTX *mem_ctx,
-                     TDB_DATA key)
-{
-       TDB_DATA result;
-
-       if (db->fetch(db, mem_ctx, key, &result) == -1) {
-               return make_tdb_data(NULL, 0);
-       }
-
-       return result;
-}
-
-NTSTATUS dbwrap_delete_bystring(struct db_context *db, const char *key)
-{
-       return dbwrap_delete(db, string_term_tdb_data(key));
-}
-
-NTSTATUS dbwrap_store_bystring(struct db_context *db, const char *key,
-                              TDB_DATA data, int flags)
-{
-       return dbwrap_store(db, string_term_tdb_data(key), data, flags);
-}
-
-TDB_DATA dbwrap_fetch_bystring(struct db_context *db, TALLOC_CTX *mem_ctx,
-                              const char *key)
-{
-       return dbwrap_fetch(db, mem_ctx, string_term_tdb_data(key));
-}
-
index 365f0a0666784d93a4e8f6f3cb8221593f745123..ce5ef5270672c7b3ae4e81cf70a5811078937330 100644 (file)
@@ -3,7 +3,10 @@
    Utility functions for the dbwrap API
    Copyright (C) Volker Lendecke 2007
    Copyright (C) Michael Adam 2009
-   
+   Copyright (C) Jim McDonough <jmcd@us.ibm.com> 2006
+
+   Major code contributions from Aleksey Fedoseev (fedoseev@ru.ibm.com)
+
    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 of the License, or
@@ -454,6 +457,66 @@ NTSTATUS dbwrap_traverse(struct db_context *db,
 
 
 
+NTSTATUS dbwrap_delete(struct db_context *db, TDB_DATA key)
+{
+       struct db_record *rec;
+       NTSTATUS status;
+
+       rec = db->fetch_locked(db, talloc_tos(), key);
+       if (rec == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+       status = rec->delete_rec(rec);
+       TALLOC_FREE(rec);
+       return status;
+}
+
+NTSTATUS dbwrap_store(struct db_context *db, TDB_DATA key,
+                     TDB_DATA data, int flags)
+{
+       struct db_record *rec;
+       NTSTATUS status;
+
+       rec = db->fetch_locked(db, talloc_tos(), key);
+       if (rec == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       status = rec->store(rec, data, flags);
+       TALLOC_FREE(rec);
+       return status;
+}
+
+TDB_DATA dbwrap_fetch(struct db_context *db, TALLOC_CTX *mem_ctx,
+                     TDB_DATA key)
+{
+       TDB_DATA result;
+
+       if (db->fetch(db, mem_ctx, key, &result) == -1) {
+               return make_tdb_data(NULL, 0);
+       }
+
+       return result;
+}
+
+NTSTATUS dbwrap_delete_bystring(struct db_context *db, const char *key)
+{
+       return dbwrap_delete(db, string_term_tdb_data(key));
+}
+
+NTSTATUS dbwrap_store_bystring(struct db_context *db, const char *key,
+                              TDB_DATA data, int flags)
+{
+       return dbwrap_store(db, string_term_tdb_data(key), data, flags);
+}
+
+TDB_DATA dbwrap_fetch_bystring(struct db_context *db, TALLOC_CTX *mem_ctx,
+                              const char *key)
+{
+       return dbwrap_fetch(db, mem_ctx, string_term_tdb_data(key));
+}
+
+
 
 NTSTATUS dbwrap_delete_bystring_upper(struct db_context *db, const char *key)
 {
index 7a8ce26f27eed9f52b62a40dc4d057ecb0dfeff8..90f03ef1c9459046530d46569bec7520a82a13f3 100755 (executable)
@@ -77,7 +77,7 @@ LIB_SRC = '''
           lib/util_file.c
           lib/util.c lib/util_cmdline.c lib/util_names.c
           lib/util_sock.c lib/sock_exec.c lib/util_sec.c
-          lib/substitute.c lib/substitute_generic.c lib/dbwrap_util.c
+          lib/substitute.c lib/substitute_generic.c
           lib/ms_fnmatch.c
           lib/tallocmsg.c lib/dmallocmsg.c
           libsmb/clisigning.c libsmb/smb_signing.c
@@ -793,7 +793,7 @@ bld.SAMBA3_SUBSYSTEM('KRBCLIENT',
 
 bld.SAMBA3_SUBSYSTEM('samba3core',
                    source=LIB_SRC,
-                   deps='LIBCRYPTO ndr security NDR_SECURITY samba-util NDR_MESSAGING LIBASYNC_REQ tdb-wrap3 UTIL_TDB UTIL_PW SAMBA_VERSION KRB5_WRAP flag_mapping util_reg PTHREADPOOL interfaces cap string_init param util_str CHARSET3 namearray SECRETS3',
+                   deps='LIBCRYPTO ndr security NDR_SECURITY samba-util NDR_MESSAGING LIBASYNC_REQ tdb-wrap3 UTIL_TDB UTIL_PW SAMBA_VERSION KRB5_WRAP flag_mapping util_reg PTHREADPOOL interfaces cap string_init param util_str CHARSET3 namearray SECRETS3 dbwrap_util',
                    vars=locals())
 
 bld.SAMBA3_SUBSYSTEM('LIB_NONSMBD',
@@ -993,6 +993,12 @@ bld.SAMBA3_SUBSYSTEM('tdb-wrap3',
                      deps='tdb-wrap',
                     vars=locals())
 
+bld.SAMBA3_LIBRARY('dbwrap_util',
+                   source='lib/dbwrap_util.c',
+                   deps='samba-util-common UTIL_TDB errors',
+                   private_library=True,
+                   allow_undefined_symbols=False)
+
 bld.SAMBA3_LIBRARY('string_init',
                    source='''lib/string_init.c''',
                    deps='samba-util-common',