1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-02 00:22:11 +03:00

Actually include some *information* in the mangle debug messages.

In particular this shows the filename, prefix and counters involved.

The unicode -> unix converion only occours for the error case.

Andrew Bartlett
(This used to be commit 9c8de8c6cf)
This commit is contained in:
Andrew Bartlett
2002-03-14 22:52:19 +00:00
parent 5980e74d4c
commit d19e06c0c6

View File

@ -2,6 +2,7 @@
Unix SMB/CIFS implementation. Unix SMB/CIFS implementation.
Name mangling with persistent tdb Name mangling with persistent tdb
Copyright (C) Simo Sorce 2001 Copyright (C) Simo Sorce 2001
Copyright (C) Andrew Bartlett 2002
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
@ -272,7 +273,10 @@ smb_ucs2_t *mangle(const smb_ucs2_t *unmangled)
pos--; pos--;
if (pos == 0) if (pos == 0)
{ {
DEBUG(0, ("mangle: unable to mangle file name!\n")); char *unmangled_unix = acnv_u2ux(unmangled);
DEBUG(0, ("mangle: unable to mangle file name (%s)!\n",unmangled_unix));
SAFE_FREE(unmangled_unix);
goto done; goto done;
} }
strncpy_w(temp, umpref, pos); strncpy_w(temp, umpref, pos);
@ -301,8 +305,10 @@ smb_ucs2_t *mangle(const smb_ucs2_t *unmangled)
{ {
if (tdb_error(mangle_tdb) != TDB_ERR_EXISTS) if (tdb_error(mangle_tdb) != TDB_ERR_EXISTS)
{ {
DEBUG(0, ("mangle: database store error: %s\n", char *unmangled_unix = acnv_u2ux(unmangled);
tdb_errorstr(mangle_tdb))); DEBUG(0, ("mangle: database store error: %s for filename: %s\n",
tdb_errorstr(mangle_tdb), unmangled_unix));
SAFE_FREE(unmangled_unix);
goto done; goto done;
} }
} }
@ -310,7 +316,10 @@ smb_ucs2_t *mangle(const smb_ucs2_t *unmangled)
/* lock the mangle counter for this prefix */ /* lock the mangle counter for this prefix */
if (tdb_chainlock(mangle_tdb, klock)) if (tdb_chainlock(mangle_tdb, klock))
{ {
DEBUG(0,("mangle: failed to lock database\n!")); char *unmangled_unix = acnv_u2ux(unmangled);
DEBUG(0,("mangle: failed to lock database for filename %s\n!", unmangled_unix));
SAFE_FREE(unmangled_unix);
goto done; goto done;
} }
tclock = True; tclock = True;
@ -318,8 +327,11 @@ smb_ucs2_t *mangle(const smb_ucs2_t *unmangled)
data = tdb_fetch(mangle_tdb, klock); data = tdb_fetch(mangle_tdb, klock);
if (!data.dptr) if (!data.dptr)
{ {
DEBUG(0, ("mangle: database retrieval error: %s\n", char *unmangled_unix = acnv_u2ux(unmangled);
tdb_errorstr(mangle_tdb)));
DEBUG(0, ("mangle: database retrieval error: %s for filename: %s\n",
tdb_errorstr(mangle_tdb), unmangled_unix));
SAFE_FREE(unmangled_unix);
goto done; goto done;
} }
c = *((uint32 *)data.dptr); c = *((uint32 *)data.dptr);
@ -327,7 +339,10 @@ smb_ucs2_t *mangle(const smb_ucs2_t *unmangled)
if (c > MANGLE_COUNTER_MAX) if (c > MANGLE_COUNTER_MAX)
{ {
DEBUG(0, ("mangle: error, counter overflow!\n")); char *unmangled_unix = acnv_u2ux(unmangled);
DEBUG(0, ("mangle: error, counter overflow (max=%d, counter=%d) for file: [%s] prefix (dos charset): [%s]!\n", MANGLE_COUNTER_MAX, c, unmangled_unix, prefix));
SAFE_FREE(unmangled_unix);
goto done; goto done;
} }
@ -340,7 +355,10 @@ smb_ucs2_t *mangle(const smb_ucs2_t *unmangled)
if (!ud83_len) goto done; if (!ud83_len) goto done;
if (ud83_len > 8) if (ud83_len > 8)
{ {
DEBUG(0, ("mangle: darn, logic error aborting!\n")); char *unmangled_unix = acnv_u2ux(unmangled);
DEBUG(0, ("mangle: darn, logic error aborting! Filename was %s\n", unmangled_unix));
SAFE_FREE(unmangled_unix);
goto done; goto done;
} }
@ -353,8 +371,11 @@ smb_ucs2_t *mangle(const smb_ucs2_t *unmangled)
if (tdb_store(mangle_tdb, key, data, TDB_INSERT) != TDB_SUCCESS) if (tdb_store(mangle_tdb, key, data, TDB_INSERT) != TDB_SUCCESS)
{ {
DEBUG(0, ("mangle: database store error: %s\n", char *unmangled_unix = acnv_u2ux(unmangled);
tdb_errorstr(mangle_tdb)));
DEBUG(0, ("mangle: database store error: %s for filename: %s\n",
tdb_errorstr(mangle_tdb), unmangled_unix));
SAFE_FREE(unmangled_unix);
goto done; goto done;
} }
@ -367,8 +388,10 @@ smb_ucs2_t *mangle(const smb_ucs2_t *unmangled)
data.dptr = mufname; data.dptr = mufname;
if (tdb_store(mangle_tdb, key, data, TDB_INSERT) != TDB_SUCCESS) if (tdb_store(mangle_tdb, key, data, TDB_INSERT) != TDB_SUCCESS)
{ {
DEBUG(0, ("mangle: database store failed: %s\n", char *unmangled_unix = acnv_u2ux(unmangled);
tdb_errorstr(mangle_tdb))); DEBUG(0, ("mangle: database store failed: %s for filename: %s\n",
tdb_errorstr(mangle_tdb), unmangled_unix));
SAFE_FREE(unmangled_unix);
/* try to delete the mangled key entry to avoid later inconsistency */ /* try to delete the mangled key entry to avoid later inconsistency */
slprintf(keystr, sizeof(keystr)-1, "%s%s", MANGLED_PREFIX, mufname); slprintf(keystr, sizeof(keystr)-1, "%s%s", MANGLED_PREFIX, mufname);
@ -393,8 +416,10 @@ smb_ucs2_t *mangle(const smb_ucs2_t *unmangled)
/* store the counter */ /* store the counter */
if(tdb_store(mangle_tdb, klock, data, TDB_REPLACE) != TDB_SUCCESS) if(tdb_store(mangle_tdb, klock, data, TDB_REPLACE) != TDB_SUCCESS)
{ {
DEBUG(0, ("mangle: database store failed: %s\n", char *unmangled_unix = acnv_u2ux(unmangled);
tdb_errorstr(mangle_tdb))); DEBUG(0, ("mangle: database store failed: %s for filename: %s\n",
tdb_errorstr(mangle_tdb), unmangled_unix));
SAFE_FREE(unmangled_unix);
/* try to delete the mangled and long key entry to avoid later inconsistency */ /* try to delete the mangled and long key entry to avoid later inconsistency */
slprintf(keystr, sizeof(keystr)-1, "%s%s", MANGLED_PREFIX, mufname); slprintf(keystr, sizeof(keystr)-1, "%s%s", MANGLED_PREFIX, mufname);
key.dptr = keystr; key.dptr = keystr;