Debug MAP
All checks were successful
Source release / source-package (push) Successful in 37s

This commit is contained in:
Mario Fetka
2026-05-26 17:34:52 +02:00
parent 48624d2776
commit 52d6d76c34
2 changed files with 50 additions and 3 deletions

View File

@@ -2563,6 +2563,9 @@ int nw_dir_get_vol_path(int dirhandle, uint8 *path)
? &(dirs[dirhandle-1])
: NULL;
if (dir && dir->inode) {
XDPRINTF((3,0,"MAPDEBUG nw_dir_get_vol_path handle=%d vol=%d path=`%s` drive=%d task=%d temp=%d inode=0x%x",
dirhandle, dir->volume, dir->path ? (char*)dir->path : "",
dir->drive, dir->task, dir->is_temp, dir->inode));
int llen = strlen(dir->path);
uint8 *p = path+llen;
result = dir->volume;
@@ -2706,6 +2709,10 @@ int alter_dir_handle(int targetdir, int volume, uint8 *path,
if (targetdir > 0 && --targetdir < used_dirs
&& dirs[targetdir].is_temp != 2) {
/* do not change special temphandles */
XDPRINTF((3,0,"MAPDEBUG Change dhandle:%d(%d) -> '%d:%s' dev=0x%x inode=0x%x old='%d:%s' olddrive=%d oldtask=%d",
targetdir+1, task, volume, path, dev, inode,
dirs[targetdir].volume, dirs[targetdir].path ? (char*)dirs[targetdir].path : "",
dirs[targetdir].drive, dirs[targetdir].task));
XDPRINTF((5,0,"Change dhandle:%d(%d) -> '%d:%s'", targetdir+1, task,
volume, path));
return(change_dir_entry(&dirs[targetdir],
@@ -2723,9 +2730,12 @@ int nw_set_dir_handle(int targetdir, int dir_handle,
NW_PATH nwpath;
struct stat stbuff;
int inode = conn_get_kpl_path(&nwpath, &stbuff, dir_handle, data, len, 1);
XDPRINTF((3,0,"MAPDEBUG nw_set_dir_handle target=%d source=%d len=%d task=%d resolved=%s inode=0x%x",
targetdir, dir_handle, len, task, conn_get_nwpath_name(&nwpath), inode));
if (inode > -1)
inode = alter_dir_handle(targetdir, nwpath.volume, nwpath.path,
stbuff.st_dev, stbuff.st_ino, task);
XDPRINTF((3,0,"MAPDEBUG nw_set_dir_handle result=0x%x target=%d", inode, targetdir));
return(inode); /* invalid PATH */
}
@@ -2790,6 +2800,7 @@ int nw_get_directory_path(int dir_handle, uint8 *name, int size_name)
} else result= -0x9c; /* wrong path */
} else result = -0x98;
}
XDPRINTF((3,0,"MAPDEBUG nw_get_directory_path:%s: Handle=%d, result=0x%x", name, dir_handle+1, result));
XDPRINTF((5,0,"nw_get_directory_path:%s: Handle=%d, result=0x%x", name, dir_handle+1, result));
return(result);
}

View File

@@ -701,6 +701,8 @@ static uint32 name_2_base(N_NW_PATH *nwpath, int namespace, int no_stat)
nwpath->statb.st_ino,
&dnm);
}
XDPRINTF((4, 0, "MAPDEBUG name_2_base ns=%d no_stat=%d path=%s -> base=0x%lx",
namespace, no_stat, debug_nwpath_name(nwpath), (unsigned long)basehandle));
return(basehandle);
}
@@ -796,7 +798,10 @@ static int find_base_entry(int volume, uint32 basehandle)
static int insert_get_base_entry(N_NW_PATH *nwpath,
int namespace, int creatmode)
{
uint32 basehandle = name_2_base(nwpath, namespace, 0);
uint32 basehandle;
XDPRINTF((3, 0, "MAPDEBUG insert_get_base_entry ENTER ns=%d creatmode=0x%x path=%s",
namespace, creatmode, debug_nwpath_name(nwpath)));
basehandle = name_2_base(nwpath, namespace, 0);
if (!basehandle && creatmode) { /* now creat the entry (file or dir) */
int result = 0;
char *unname = nwpath_2_unix(nwpath, 2);
@@ -834,9 +839,15 @@ static int insert_get_base_entry(N_NW_PATH *nwpath,
}
}
/* now i know that it's a new base entry */
return(add_dbe_entry(namespace, nwpath->volume,
basehandle, nwpath->path, &(nwpath->statb)));
{
int dbg_result = add_dbe_entry(namespace, nwpath->volume,
basehandle, nwpath->path, &(nwpath->statb));
XDPRINTF((3, 0, "MAPDEBUG insert_get_base_entry NEW path=%s base=0x%lx result=%d",
debug_nwpath_name(nwpath), (unsigned long)basehandle, dbg_result));
return(dbg_result);
}
}
XDPRINTF((3, 0, "MAPDEBUG insert_get_base_entry FAIL path=%s", debug_nwpath_name(nwpath)));
return(-0xff); /* invalid path = -0x9c, -0xff no matching files */
}
@@ -859,6 +870,12 @@ static int build_base(int namespace,
N_NW_PATH loc_nwpath;
N_NW_PATH *nwpath=&loc_nwpath;
init_nwpath(nwpath, namespace);
XDPRINTF((3, 0,
"MAPDEBUG build_base ENTER ns=%d flag=0x%x volume=%d base0=0x%02x base32=0x%lx mode=%d pathes=`%s`",
namespace, (int)nwp->flag, (int)nwp->volume, (unsigned)nwp->base[0],
(unsigned long)GET_32(nwp->base), mode, pathes ? (char*)pathes : ""));
if (!nwp->flag) { /* short directory handle */
result=nw_dir_get_vol_path((int)nwp->base[0], nwpath->path);
if (result > -1){
@@ -906,6 +923,17 @@ static int build_base(int namespace,
result = insert_get_base_entry(nwpath, namespace, 0);
}
}
if (result > -1) {
DIR_BASE_ENTRY *dbg_dbe = dir_base[result];
XDPRINTF((3, 0,
"MAPDEBUG build_base LEAVE result=%d basehandle=0x%lx path=%s rets=`%s`",
result, dbg_dbe ? (unsigned long)dbg_dbe->basehandle : 0UL,
dbg_dbe ? debug_nwpath_name(&(dbg_dbe->nwpath)) : (uint8*)"<null>",
rets ? (char*)rets : ""));
} else {
XDPRINTF((3, 0, "MAPDEBUG build_base LEAVE result=-0x%x rets=`%s`",
-result, rets ? (char*)rets : ""));
}
return(result);
}
@@ -1038,6 +1066,10 @@ int nw_generate_dir_path(int namespace,
} else {
U32_TO_32(dbe->basehandle, dos_dir_base);
}
XDPRINTF((3, 0, "MAPDEBUG nw_generate_dir_path ns=%d flag=0x%x vol=%d inbase=0x%lx path=%s result=%d nsbase=0x%lx dosbase=0x%lx",
namespace, (int)nwp->flag, (int)nwp->volume, (unsigned long)GET_32(nwp->base),
debug_nwpath_name(&(dbe->nwpath)), result, (unsigned long)dbe->basehandle,
(unsigned long)GET_32(dos_dir_base)));
XDPRINTF((4, 0, "nw_generate_dir_path path=%s, result=%d, basehandle=0x%x",
debug_nwpath_name(&(dbe->nwpath)), result, dbe->basehandle));
result= dbe->nwpath.volume;
@@ -2313,6 +2345,10 @@ static int nw_get_full_path_cookies(int namespace,
int result = build_base(namespace, nwp, nwp->pathes, 0, NULL, 0);
if (result > -1) {
DIR_BASE_ENTRY *dbe=dir_base[result];
XDPRINTF((3, 0, "MAPDEBUG nw_get_full_path_cookies ns=%d destns=%d flag=0x%x vol=%d inbase=0x%lx dbe_base=0x%lx path=%s",
namespace, destnamspace, (int)nwp->flag, (int)nwp->volume,
(unsigned long)GET_32(nwp->base), (unsigned long)dbe->basehandle,
debug_nwpath_name(&(dbe->nwpath))));
uint8 *p = componentpath;
uint8 *lastpp = dbe->nwpath.path+strlen(dbe->nwpath.path);
int len=0;