1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-21 09:49:28 +03:00

r21976: make use of tdb_*_bystring() and string_term_tdb_data() in lib/

to avoid creating the TDB_DATA struct from strings "by hand"

metze
This commit is contained in:
Stefan Metzmacher
2007-03-27 09:59:32 +00:00
committed by Gerald (Jerry) Carter
parent d105723f06
commit c22b86595a
2 changed files with 13 additions and 25 deletions

View File

@ -114,7 +114,7 @@ BOOL gencache_shutdown(void)
BOOL gencache_set(const char *keystr, const char *value, time_t timeout)
{
int ret;
TDB_DATA keybuf, databuf;
TDB_DATA databuf;
char* valstr = NULL;
/* fail completely if get null pointers passed */
@ -130,16 +130,13 @@ BOOL gencache_set(const char *keystr, const char *value, time_t timeout)
if (!valstr)
return False;
keybuf.dptr = CONST_DISCARD(char *, keystr);
keybuf.dsize = strlen(keystr)+1;
databuf.dptr = valstr;
databuf.dsize = strlen(valstr)+1;
databuf = string_term_tdb_data(valstr);
DEBUG(10, ("Adding cache entry with key = %s; value = %s and timeout ="
" %s (%d seconds %s)\n", keybuf.dptr, value,ctime(&timeout),
" %s (%d seconds %s)\n", keystr, value,ctime(&timeout),
(int)(timeout - time(NULL)),
timeout > time(NULL) ? "ahead" : "in the past"));
ret = tdb_store(cache, keybuf, databuf, 0);
ret = tdb_store_bystring(cache, keystr, databuf, 0);
SAFE_FREE(valstr);
return ret == 0;
@ -157,7 +154,6 @@ BOOL gencache_set(const char *keystr, const char *value, time_t timeout)
BOOL gencache_del(const char *keystr)
{
int ret;
TDB_DATA keybuf;
/* fail completely if get null pointers passed */
SMB_ASSERT(keystr);
@ -168,10 +164,8 @@ BOOL gencache_del(const char *keystr)
return False;
}
keybuf.dptr = CONST_DISCARD(char *, keystr);
keybuf.dsize = strlen(keystr)+1;
DEBUG(10, ("Deleting cache entry (key = %s)\n", keystr));
ret = tdb_delete(cache, keybuf);
ret = tdb_delete_bystring(cache, keystr);
return ret == 0;
}
@ -192,7 +186,7 @@ BOOL gencache_del(const char *keystr)
BOOL gencache_get(const char *keystr, char **valstr, time_t *timeout)
{
TDB_DATA keybuf, databuf;
TDB_DATA databuf;
time_t t;
char *endptr;
@ -202,10 +196,8 @@ BOOL gencache_get(const char *keystr, char **valstr, time_t *timeout)
if (!gencache_init()) {
return False;
}
keybuf.dptr = CONST_DISCARD(char *, keystr);
keybuf.dsize = strlen(keystr)+1;
databuf = tdb_fetch(cache, keybuf);
databuf = tdb_fetch_bystring(cache, keystr);
if (databuf.dptr == NULL) {
DEBUG(10, ("Cache entry with key = %s couldn't be found\n",
@ -228,7 +220,7 @@ BOOL gencache_get(const char *keystr, char **valstr, time_t *timeout)
if (t <= time(NULL)) {
/* We're expired, delete the entry */
tdb_delete(cache, keybuf);
tdb_delete_bystring(cache, keystr);
SAFE_FREE(databuf.dptr);
return False;

View File

@ -237,7 +237,7 @@ static BOOL get_privileges( const DOM_SID *sid, SE_PRIV *mask )
{
TDB_CONTEXT *tdb = get_account_pol_tdb();
fstring keystr;
TDB_DATA key, data;
TDB_DATA data;
/* Fail if the admin has not enable privileges */
@ -251,10 +251,8 @@ static BOOL get_privileges( const DOM_SID *sid, SE_PRIV *mask )
/* PRIV_<SID> (NULL terminated) as the key */
fstr_sprintf( keystr, "%s%s", PRIVPREFIX, sid_string_static(sid) );
key.dptr = keystr;
key.dsize = strlen(keystr) + 1;
data = tdb_fetch( tdb, key );
data = tdb_fetch_bystring( tdb, keystr );
if ( !data.dptr ) {
DEBUG(3,("get_privileges: No privileges assigned to SID [%s]\n",
@ -278,7 +276,7 @@ static BOOL set_privileges( const DOM_SID *sid, SE_PRIV *mask )
{
TDB_CONTEXT *tdb = get_account_pol_tdb();
fstring keystr;
TDB_DATA key, data;
TDB_DATA data;
if ( !lp_enable_privileges() )
return False;
@ -294,15 +292,13 @@ static BOOL set_privileges( const DOM_SID *sid, SE_PRIV *mask )
/* PRIV_<SID> (NULL terminated) as the key */
fstr_sprintf( keystr, "%s%s", PRIVPREFIX, sid_string_static(sid) );
key.dptr = keystr;
key.dsize = strlen(keystr) + 1;
/* no packing. static size structure, just write it out */
data.dptr = (char*)mask;
data.dsize = sizeof(SE_PRIV);
return ( tdb_store(tdb, key, data, TDB_REPLACE) != -1 );
return ( tdb_store_bystring(tdb, keystr, data, TDB_REPLACE) != -1 );
}
/****************************************************************************