r21980: make use of tdb_*_bystring() and string_term_tdb_data() in smbd/
authorStefan Metzmacher <metze@samba.org>
Tue, 27 Mar 2007 10:20:50 +0000 (10:20 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:18:55 +0000 (12:18 -0500)
to avoid creating the TDB_DATA struct from strings "by hand"

metze
(This used to be commit 09b477ed85e46bc780ce3c1461472883a6b952f9)

source3/smbd/mangle_hash.c
source3/smbd/session.c

index 320e31ab679e3796570d018511fde9ba60a43ddc..f20e473079300b2dc7ffab276d19243496d48e97 100644 (file)
@@ -437,8 +437,7 @@ static void cache_mangled_name( const char mangled_name[13], char *raw_name )
        }
 
        /* Allocate a new cache entry.  If the allocation fails, just return. */
-       data_val.dptr = raw_name;
-       data_val.dsize = strlen(raw_name)+1;
+       data_val = string_term_tdb_data(raw_name);
        if (tdb_store_bystring(tdb_mangled_cache, mangled_name_key, data_val, TDB_REPLACE) != 0) {
                DEBUG(0,("cache_mangled_name: Error storing entry %s -> %s\n", mangled_name_key, raw_name));
        } else {
index bcb840a3fe40b68a61405bf4a99de892503910a6..da2ab4033879b455b5e8e0026ace45902b49f7f8 100644 (file)
@@ -61,7 +61,6 @@ BOOL session_claim(user_struct *vuser)
        struct in_addr *client_ip;
        struct sessionid sessionid;
        uint32 pid = (uint32)sys_getpid();
-       TDB_DATA key;           
        fstring keystr;
        char * hostname;
        int tdb_store_flag;  /* If using utmp, we do an inital 'lock hold' store,
@@ -87,10 +86,8 @@ BOOL session_claim(user_struct *vuser)
        if (lp_utmp()) {
                for (i=1;i<MAX_SESSION_ID;i++) {
                        slprintf(keystr, sizeof(keystr)-1, "ID/%d", i);
-                       key.dptr = keystr;
-                       key.dsize = strlen(keystr)+1;
                        
-                       if (tdb_store(tdb, key, data, TDB_INSERT) == 0) break;
+                       if (tdb_store_bystring(tdb, keystr, data, TDB_INSERT) == 0) break;
                }
                
                if (i == MAX_SESSION_ID) {
@@ -108,10 +105,6 @@ BOOL session_claim(user_struct *vuser)
                slprintf(sessionid.id_str, sizeof(sessionid.id_str)-1, 
                         SESSION_TEMPLATE, (long unsigned int)sys_getpid(), 
                         vuser->vuid);
-
-               key.dptr = keystr;
-               key.dsize = strlen(keystr)+1;
-                       
                tdb_store_flag = TDB_REPLACE;
        }
 
@@ -142,14 +135,14 @@ BOOL session_claim(user_struct *vuser)
                DEBUG(1,("pam_session rejected the session for %s [%s]\n",
                                sessionid.username, sessionid.id_str));
                if (tdb_store_flag == TDB_MODIFY) {
-                       tdb_delete(tdb, key);
+                       tdb_delete_bystring(tdb, keystr);
                }
                return False;
        }
 
        data.dptr = (char *)&sessionid;
        data.dsize = sizeof(sessionid);
-       if (tdb_store(tdb, key, data, tdb_store_flag) != 0) {
+       if (tdb_store_bystring(tdb, keystr, data, tdb_store_flag) != 0) {
                DEBUG(1,("session_claim: unable to create session id record\n"));
                return False;
        }
@@ -177,7 +170,6 @@ void session_yield(user_struct *vuser)
        TDB_DATA dbuf;
        struct sessionid sessionid;
        struct in_addr *client_ip;
-       TDB_DATA key;
 
        if (!tdb) return;
 
@@ -185,10 +177,7 @@ void session_yield(user_struct *vuser)
                return;
        }
 
-       key.dptr = vuser->session_keystr;
-       key.dsize = strlen(vuser->session_keystr)+1;
-
-       dbuf = tdb_fetch(tdb, key);
+       dbuf = tdb_fetch_bystring(tdb, vuser->session_keystr);
 
        if (dbuf.dsize != sizeof(sessionid))
                return;
@@ -207,7 +196,7 @@ void session_yield(user_struct *vuser)
 
        smb_pam_close_session(sessionid.username, sessionid.id_str, sessionid.hostname);
 
-       tdb_delete(tdb, key);
+       tdb_delete_bystring(tdb, vuser->session_keystr);
 }
 
 /********************************************************************