Fixed filemode send to 0644
This commit is contained in:
parent
6b2a1f0d15
commit
1500b2a7c2
@ -516,6 +516,21 @@ int procheader(char *Name)
|
|||||||
/* set default parameters and overrides */
|
/* set default parameters and overrides */
|
||||||
openmode = (char *)"w";
|
openmode = (char *)"w";
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check slashes in the name
|
||||||
|
*/
|
||||||
|
p = strrchr(Name,'/');
|
||||||
|
if (p) {
|
||||||
|
p++;
|
||||||
|
if (!*p) {
|
||||||
|
/* alert - file name ended in with a / */
|
||||||
|
Syslog('!', "%s: file name ends with a /, skipped: %s", protname(), Name);
|
||||||
|
return ERROR;
|
||||||
|
}
|
||||||
|
Name = p;
|
||||||
|
Syslog('z', "filename converted to \"%s\"", MBSE_SS(Name));
|
||||||
|
}
|
||||||
|
|
||||||
Syslog('z', "zmanag=%d", zmanag);
|
Syslog('z', "zmanag=%d", zmanag);
|
||||||
Syslog('z', "zconv=%d", zconv);
|
Syslog('z', "zconv=%d", zconv);
|
||||||
|
|
||||||
@ -537,10 +552,12 @@ int procheader(char *Name)
|
|||||||
Eofseen = FALSE;
|
Eofseen = FALSE;
|
||||||
|
|
||||||
p = Name + 1 + strlen(Name);
|
p = Name + 1 + strlen(Name);
|
||||||
// FIXME: Here we must add code that checks the Name for slashes, spaces and other
|
if (*p) { /* file coming from Unix or DOS system */
|
||||||
// illegal characters in the filename.
|
|
||||||
sscanf(p, "%ld%lo%o%o%d%d%d%d", &Bytesleft, &Modtime, &Filemode, &dummy, &dummy, &dummy, &dummy, &dummy);
|
sscanf(p, "%ld%lo%o%o%d%d%d%d", &Bytesleft, &Modtime, &Filemode, &dummy, &dummy, &dummy, &dummy, &dummy);
|
||||||
strcpy(ctt, rfcdate(Modtime));
|
strcpy(ctt, rfcdate(Modtime));
|
||||||
|
} else {
|
||||||
|
Syslog('z', "File coming from a CP/M system");
|
||||||
|
}
|
||||||
Syslog('+', "%s: \"%s\" %ld bytes, %s mode %o", protname(), Name, Bytesleft, ctt, Filemode);
|
Syslog('+', "%s: \"%s\" %ld bytes, %s mode %o", protname(), Name, Bytesleft, ctt, Filemode);
|
||||||
|
|
||||||
if (curfile)
|
if (curfile)
|
||||||
|
@ -213,7 +213,11 @@ static int sendzfile(char *rn)
|
|||||||
Syslog('+', "Zmodem: size %lu bytes, dated %s", (unsigned long)st.st_size, rfcdate(st.st_mtime));
|
Syslog('+', "Zmodem: size %lu bytes, dated %s", (unsigned long)st.st_size, rfcdate(st.st_mtime));
|
||||||
gettimeofday(&starttime, &tz);
|
gettimeofday(&starttime, &tz);
|
||||||
|
|
||||||
sprintf(txbuf,"%s %lu %lo %o 0 0 0", rn,(unsigned long)st.st_size, st.st_mtime+(st.st_mtime%2), st.st_mode);
|
/*
|
||||||
|
* Filemode is fixed to 100644, we don't care how it is stored in the filebase.
|
||||||
|
*/
|
||||||
|
sprintf(txbuf,"%s %lu %lo 100644 0 0 0", rn,(unsigned long)st.st_size, st.st_mtime+(st.st_mtime%2));
|
||||||
|
Syslog('z', "txbuf \"%s\"", txbuf);
|
||||||
bufl = strlen(txbuf);
|
bufl = strlen(txbuf);
|
||||||
*(strchr(txbuf,' ')) = '\0'; /*hope no blanks in filename*/
|
*(strchr(txbuf,' ')) = '\0'; /*hope no blanks in filename*/
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user