s3-passdb: move open_schannel_session_store() to passdb/secrets_schannel.c.
authorGünther Deschner <gd@samba.org>
Wed, 28 Oct 2009 10:36:13 +0000 (11:36 +0100)
committerGünther Deschner <gd@samba.org>
Wed, 28 Oct 2009 11:37:39 +0000 (12:37 +0100)
Guenther

source3/include/proto.h
source3/passdb/secrets.c
source3/passdb/secrets_schannel.c

index a450b7302845dbba26b05691c1e085d161cfd0d3..c86770059fc704e2935d065fe30417cf2eaa56fa 100644 (file)
@@ -4709,7 +4709,6 @@ NTSTATUS secrets_trusted_domains(TALLOC_CTX *mem_ctx, uint32 *num_domains,
 bool secrets_store_afs_keyfile(const char *cell, const struct afs_keyfile *keyfile);
 bool secrets_fetch_afs_key(const char *cell, struct afs_key *result);
 void secrets_fetch_ipc_userpass(char **username, char **domain, char **password);
-TDB_CONTEXT *open_schannel_session_store(TALLOC_CTX *mem_ctx);
 bool secrets_store_generic(const char *owner, const char *key, const char *secret);
 char *secrets_fetch_generic(const char *owner, const char *key);
 bool secrets_delete_generic(const char *owner, const char *key);
@@ -4718,6 +4717,7 @@ bool secrets_fetch_local_schannel_key(uint8_t schannel_key[16]);
 
 /* The following definitions come from passdb/secrets_schannel.c  */
 
+TDB_CONTEXT *open_schannel_session_store(TALLOC_CTX *mem_ctx);
 NTSTATUS schannel_fetch_session_key(TALLOC_CTX *mem_ctx,
                                    const char *computer_name,
                                    struct netlogon_creds_CredentialState **pcreds);
index 01919b76ef4697d878092d457c117c5f96151b3d..369abf85d6e196a9b3991b1f2eafe1db94b473e5 100644 (file)
@@ -1132,69 +1132,6 @@ void secrets_fetch_ipc_userpass(char **username, char **domain, char **password)
        }
 }
 
-/******************************************************************************
- Open or create the schannel session store tdb.
-*******************************************************************************/
-
-#define SCHANNEL_STORE_VERSION_1 1
-#define SCHANNEL_STORE_VERSION_2 2 /* should not be used */
-#define SCHANNEL_STORE_VERSION_CURRENT SCHANNEL_STORE_VERSION_1
-
-TDB_CONTEXT *open_schannel_session_store(TALLOC_CTX *mem_ctx)
-{
-       TDB_DATA vers;
-       uint32 ver;
-       TDB_CONTEXT *tdb_sc = NULL;
-       char *fname = talloc_asprintf(mem_ctx, "%s/schannel_store.tdb", lp_private_dir());
-
-       if (!fname) {
-               return NULL;
-       }
-
-        tdb_sc = tdb_open_log(fname, 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
-
-        if (!tdb_sc) {
-                DEBUG(0,("open_schannel_session_store: Failed to open %s\n", fname));
-               TALLOC_FREE(fname);
-                return NULL;
-        }
-
- again:
-       vers = tdb_fetch_bystring(tdb_sc, "SCHANNEL_STORE_VERSION");
-       if (vers.dptr == NULL) {
-               /* First opener, no version. */
-               SIVAL(&ver,0,SCHANNEL_STORE_VERSION_CURRENT);
-               vers.dptr = (uint8 *)&ver;
-               vers.dsize = 4;
-               tdb_store_bystring(tdb_sc, "SCHANNEL_STORE_VERSION", vers, TDB_REPLACE);
-               vers.dptr = NULL;
-       } else if (vers.dsize == 4) {
-               ver = IVAL(vers.dptr,0);
-               if (ver == SCHANNEL_STORE_VERSION_2) {
-                       DEBUG(0,("open_schannel_session_store: wrong version number %d in %s\n",
-                               (int)ver, fname ));
-                       tdb_wipe_all(tdb_sc);
-                       goto again;
-               }
-               if (ver != SCHANNEL_STORE_VERSION_CURRENT) {
-                       DEBUG(0,("open_schannel_session_store: wrong version number %d in %s\n",
-                               (int)ver, fname ));
-                       tdb_close(tdb_sc);
-                       tdb_sc = NULL;
-               }
-       } else {
-               tdb_close(tdb_sc);
-               tdb_sc = NULL;
-               DEBUG(0,("open_schannel_session_store: wrong version number size %d in %s\n",
-                       (int)vers.dsize, fname ));
-       }
-
-       SAFE_FREE(vers.dptr);
-       TALLOC_FREE(fname);
-
-       return tdb_sc;
-}
-
 bool secrets_store_generic(const char *owner, const char *key, const char *secret)
 {
        char *tdbkey = NULL;
index 84a860ee6aa75787c311a90c578b732009fc6dee..f4da625fc6008334d90838d00b20a39aad834226 100644 (file)
 #include "../libcli/auth/libcli_auth.h"
 #include "../libcli/auth/schannel_state.h"
 
+/******************************************************************************
+ Open or create the schannel session store tdb.
+*******************************************************************************/
+
+#define SCHANNEL_STORE_VERSION_1 1
+#define SCHANNEL_STORE_VERSION_2 2 /* should not be used */
+#define SCHANNEL_STORE_VERSION_CURRENT SCHANNEL_STORE_VERSION_1
+
+TDB_CONTEXT *open_schannel_session_store(TALLOC_CTX *mem_ctx)
+{
+       TDB_DATA vers;
+       uint32 ver;
+       TDB_CONTEXT *tdb_sc = NULL;
+       char *fname = talloc_asprintf(mem_ctx, "%s/schannel_store.tdb", lp_private_dir());
+
+       if (!fname) {
+               return NULL;
+       }
+
+       tdb_sc = tdb_open_log(fname, 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
+
+       if (!tdb_sc) {
+               DEBUG(0,("open_schannel_session_store: Failed to open %s\n", fname));
+               TALLOC_FREE(fname);
+               return NULL;
+       }
+
+ again:
+       vers = tdb_fetch_bystring(tdb_sc, "SCHANNEL_STORE_VERSION");
+       if (vers.dptr == NULL) {
+               /* First opener, no version. */
+               SIVAL(&ver,0,SCHANNEL_STORE_VERSION_CURRENT);
+               vers.dptr = (uint8 *)&ver;
+               vers.dsize = 4;
+               tdb_store_bystring(tdb_sc, "SCHANNEL_STORE_VERSION", vers, TDB_REPLACE);
+               vers.dptr = NULL;
+       } else if (vers.dsize == 4) {
+               ver = IVAL(vers.dptr,0);
+               if (ver == SCHANNEL_STORE_VERSION_2) {
+                       DEBUG(0,("open_schannel_session_store: wrong version number %d in %s\n",
+                               (int)ver, fname ));
+                       tdb_wipe_all(tdb_sc);
+                       goto again;
+               }
+               if (ver != SCHANNEL_STORE_VERSION_CURRENT) {
+                       DEBUG(0,("open_schannel_session_store: wrong version number %d in %s\n",
+                               (int)ver, fname ));
+                       tdb_close(tdb_sc);
+                       tdb_sc = NULL;
+               }
+       } else {
+               tdb_close(tdb_sc);
+               tdb_sc = NULL;
+               DEBUG(0,("open_schannel_session_store: wrong version number size %d in %s\n",
+                       (int)vers.dsize, fname ));
+       }
+
+       SAFE_FREE(vers.dptr);
+       TALLOC_FREE(fname);
+
+       return tdb_sc;
+}
+
 /******************************************************************************
  Wrapper around schannel_fetch_session_key_tdb()
  Note we must be root here.