copy PPATH structure for reference

This commit is contained in:
Radim Kolar 2024-07-08 09:21:52 +02:00
parent 3c14fc28cd
commit 81f8ae5d3c

View File

@ -18,22 +18,35 @@ const char *testcases[]={
"filename\npasswd","filename\nsymlink\npasswd",
"file/.dir","../updir","file/../dir",
NULL};
/* PPATH structure from server_def.h */
#if 0
struct {
const char *fullp; /* ptr to string containing full pathname */
const char *f_ptr; /* ptr to begining of last path component */
unsigned int f_len; /* length of last component in path */
const char *d_ptr; /* ptr to beginning of directory component */
unsigned int d_len; /* length of directory part of path. */
const char *passwd; /* ptr to password */
char inetstr[16]; /* inet-address of remote-FSP */
char portstr[8]; /* port of remote-FSP */
};
#endif
PPATH testresults[]={
{".",".",1,".",1,NULL}, {NULL}, {".",".",1,".",1,NULL},
{".",".",1,".",1,NULL,{0},{0}}, {NULL}, {".",".",1,".",1,NULL},
{".",".",1,".",1,"onlypwd"},
{"filename","filename",8,".",1,NULL} , {"filename","filename",8,".",1,NULL} , {"filename","filename",8,".",1,NULL},
{"dirname/filename","filename",8,"dirname",7,NULL} , {"dirname/filename","filename",8,"dirname",7,NULL} , {"dirname//filename","filename",8,"dirname",7,NULL},
{"dir1name/dir2name/",".",1,"dir1name/dir2name",17}, {"dir1name//dir2name//",".",1,"dir1name//dir2name",18},
{"filename","filename",8,".",1,"passwd"}, {"filename","filename",8,".",1,"passwd"},
{NULL},{NULL},{NULL},
{NULL},{NULL},{NULL}
};
static void print_path(PPATH *pp)
{
printf("fullpath: %s ", pp->fullp);
if(strcmp(pp->fullp,pp->d_ptr))
if(strcmp(pp->fullp, pp->d_ptr))
{
printf("d_ptr: %s (%d) ", pp->d_ptr, pp->d_len);
} else {
@ -45,8 +58,7 @@ static void print_path(PPATH *pp)
printf("passwd: %s", pp->passwd);
}
/* returns: 0 okay, 1 different */
/** returns: 0 okay, 1 different */
static int compareresults(PPATH *p1, PPATH *p2)
{
if(p1->fullp==NULL && p2->fullp==NULL) return 0;
@ -56,8 +68,7 @@ static int compareresults(PPATH *p1, PPATH *p2)
if(strcmp(p1->f_ptr,p2->f_ptr)) return -1;
if(p1->d_len!=p2->d_len) return -1;
if(strncmp(p1->d_ptr,p2->d_ptr,p1->d_len)) return -1;
if(p1->passwd==NULL && p2->passwd==NULL)
return 0;
if(p1->passwd==NULL && p2->passwd==NULL) return 0;
if(p1->passwd==NULL || p2->passwd==NULL) return -1;
if(strcmp(p1->passwd,p2->passwd)) return -1;
return 0;