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", "filename\npasswd","filename\nsymlink\npasswd",
"file/.dir","../updir","file/../dir", "file/.dir","../updir","file/../dir",
NULL}; 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[]={ PPATH testresults[]={
{".",".",1,".",1,NULL}, {NULL}, {".",".",1,".",1,NULL}, {".",".",1,".",1,NULL,{0},{0}}, {NULL}, {".",".",1,".",1,NULL},
{".",".",1,".",1,"onlypwd"}, {".",".",1,".",1,"onlypwd"},
{"filename","filename",8,".",1,NULL} , {"filename","filename",8,".",1,NULL} , {"filename","filename",8,".",1,NULL}, {"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}, {"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}, {"dir1name/dir2name/",".",1,"dir1name/dir2name",17}, {"dir1name//dir2name//",".",1,"dir1name//dir2name",18},
{"filename","filename",8,".",1,"passwd"}, {"filename","filename",8,".",1,"passwd"}, {"filename","filename",8,".",1,"passwd"}, {"filename","filename",8,".",1,"passwd"},
{NULL},{NULL},{NULL}, {NULL},{NULL},{NULL}
}; };
static void print_path(PPATH *pp) static void print_path(PPATH *pp)
{ {
printf("fullpath: %s ", pp->fullp); 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); printf("d_ptr: %s (%d) ", pp->d_ptr, pp->d_len);
} else { } else {
@ -45,8 +58,7 @@ static void print_path(PPATH *pp)
printf("passwd: %s", pp->passwd); printf("passwd: %s", pp->passwd);
} }
/* returns: 0 okay, 1 different */ /** returns: 0 okay, 1 different */
static int compareresults(PPATH *p1, PPATH *p2) static int compareresults(PPATH *p1, PPATH *p2)
{ {
if(p1->fullp==NULL && p2->fullp==NULL) return 0; 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(strcmp(p1->f_ptr,p2->f_ptr)) return -1;
if(p1->d_len!=p2->d_len) 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(strncmp(p1->d_ptr,p2->d_ptr,p1->d_len)) return -1;
if(p1->passwd==NULL && p2->passwd==NULL) if(p1->passwd==NULL && p2->passwd==NULL) return 0;
return 0;
if(p1->passwd==NULL || p2->passwd==NULL) return -1; if(p1->passwd==NULL || p2->passwd==NULL) return -1;
if(strcmp(p1->passwd,p2->passwd)) return -1; if(strcmp(p1->passwd,p2->passwd)) return -1;
return 0; return 0;