-/* this is the rsync debugging function. Call it with FINFO, FERROR or FLOG */
- void rprintf(int fd, const char *format, ...)
+void log_open()
+{
+ if (logfname && !logfile) {
+ extern int orig_umask;
+ int old_umask = umask(022 | orig_umask);
+ logfile = fopen(logfname, "a");
+ umask(old_umask);
+ }
+}
+
+void log_close()
+{
+ if (logfile) {
+ fclose(logfile);
+ logfile = NULL;
+ }
+}
+
+/* setup the error file descriptor - used when we are a server
+ that is receiving files */
+void set_error_fd(int fd)
+{
+ log_error_fd = fd;
+}
+
+/* this is the underlying (unformatted) rsync debugging function. Call
+ it with FINFO, FERROR or FLOG */
+void rwrite(enum logcode code, char *buf, int len)