- if (logfname && !logfile) {
- extern int orig_umask;
- int old_umask = umask(022 | orig_umask);
- logfile = fopen(logfname, "a");
- umask(old_umask);
- if (!logfile) {
- char *had_logfname = logfname;
- int open_errno = errno;
- /* Rsync falls back to using syslog on failure. */
- logfname = NULL;
- syslog_init();
- rsyserr(FERROR, open_errno,
- "failed to open log-file %s", had_logfname);
- rprintf(FINFO, "Ignoring \"log file\" setting.\n");
- }