fixed sf.net bugs
This commit is contained in:
parent
64fbc6327b
commit
8d63e4a1ea
|
|
@ -1,3 +1,8 @@
|
|||
fixed sf bug 1060594: fspd: owner can't rename files
|
||||
fixed sf bug 1060558: fpro 'l' sets 'm' flag instead
|
||||
fixed sf bug 1060558: fpro 'l' flag was not correctly saved
|
||||
into filesystem
|
||||
fmvcmd: do not send trailing junk to the server
|
||||
print key=, seq= in fspd debugs with fixed width for easy reading
|
||||
added BUGS and HISTORY sections to fspscan.1 manual page
|
||||
Lamerpack: disable most of command line options in fspd and print
|
||||
|
|
|
|||
1
TODO
1
TODO
|
|
@ -49,6 +49,7 @@ do not use global variables
|
|||
|
||||
CLIENTS
|
||||
:high:
|
||||
fpro without directory name do not works
|
||||
normalize return error codes of all clients
|
||||
write new clients for new commands - fpasswd finfo
|
||||
:low:
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ static void rename_file (const char *fname,const char *target)
|
|||
}
|
||||
|
||||
/* send our nicely crafted junk to the server */
|
||||
reply=client_interact (CC_RENAME,0,n+l,buf,0,NULL);
|
||||
reply=client_interact (CC_RENAME,0,n,buf,0,NULL);
|
||||
|
||||
if(reply->cmd==CC_ERR)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ int main (int argc, char ** argv)
|
|||
env_client();
|
||||
|
||||
if(argv[1] && (argv[1][0] == '+' || argv[1][0] == '-') && !argv[1][2]) {
|
||||
/* set pro command */
|
||||
key = *++argv;
|
||||
while(*++argv) {
|
||||
if(!(av = glob(*argv))) {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
dnl Process this file with autoconf to produce a working configure script.
|
||||
dnl tested with autoconf 2.57
|
||||
AC_INIT(fsp,2.8.1b21,hsn@netmag.cz)
|
||||
AC_INIT(fsp,2.8.1b22,hsn@netmag.cz)
|
||||
AC_CONFIG_SRCDIR(server/main.c)
|
||||
AM_INIT_AUTOMAKE([dist-bzip2])
|
||||
AM_MAINTAINER_MODE
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ void save_access_rights (DIRINFO *di)
|
|||
if(di->protection & DIR_ADD) touch(FSP_ADD);
|
||||
if(di->protection & DIR_MKDIR) touch(FSP_MKDIR);
|
||||
if(di->protection & DIR_RENAME) touch(FSP_RENAME);
|
||||
if(!di->protection& DIR_LIST) touch(FSP_NOLIST);
|
||||
if(! (di->protection& DIR_LIST)) touch(FSP_NOLIST);
|
||||
|
||||
/* step3 pazzwordz */
|
||||
if(di->public_password) save_password(FSP_PASSWORD,di->public_password);
|
||||
|
|
|
|||
|
|
@ -752,6 +752,7 @@ const char *server_set_pro (DIRINFO *di, const char * key)
|
|||
break;
|
||||
case 'l':
|
||||
act=DIR_LIST;
|
||||
break;
|
||||
case 'r':
|
||||
act=DIR_RENAME;
|
||||
break;
|
||||
|
|
@ -1091,6 +1092,11 @@ const char *server_rename (char * ub, unsigned int l1, unsigned long inet)
|
|||
else
|
||||
return ("Refusing to operate on special files");
|
||||
/* validate source object */
|
||||
/* we must turn \0 back into \n in password field */
|
||||
if(src.passwd)
|
||||
{
|
||||
ub[n-strlen(src.passwd)-2]='\n';
|
||||
}
|
||||
pe=validate_path(ub,n,&src,&sdir,0);
|
||||
if(pe) return pe;
|
||||
|
||||
|
|
@ -1121,11 +1127,11 @@ const char *server_rename (char * ub, unsigned int l1, unsigned long inet)
|
|||
/* no, do simple rename */
|
||||
|
||||
pe=require_access_rights( sdir,DIR_RENAME,inet,src.passwd);
|
||||
if(pe[0]!='N')
|
||||
if(pe[0]!='N' && pe[0]!='O')
|
||||
return ("Permission denied");
|
||||
if(istargetdir==0)
|
||||
pe=require_access_rights( sdir,DIR_DEL,inet,src.passwd);
|
||||
if(pe[0]!='N')
|
||||
if(pe[0]!='N' && pe[0]!='O')
|
||||
return ("No permission for overwriting files");
|
||||
/* now go to the action */
|
||||
if (rename(src.fullp,dest.fullp))
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user