+
+/* log the outgoing transfer of a file */
+void log_send(struct file_struct *file)
+{
+ extern int module_id;
+ if (lp_transfer_logging(module_id)) {
+ rprintf(FLOG,"Sending %s [%s] %.0f %s\n",
+ client_name(0), client_addr(0),
+ (double)file->length, f_name(file));
+ }
+}
+
+/* log the incoming transfer of a file */
+void log_recv(struct file_struct *file)
+{
+ extern int module_id;
+ if (lp_transfer_logging(module_id)) {
+ rprintf(FLOG,"Receiving %s [%s] %.0f %s\n",
+ client_name(0), client_addr(0),
+ (double)file->length, f_name(file));
+ }
+}
+
+/* called when the transfer is interrupted for some reason */
+void log_exit(int code)
+{
+ if (code == 0) {
+ extern struct stats stats;
+ rprintf(FLOG,"wrote %.0f bytes read %.0f bytes total size %.0f\n",
+ (double)stats.total_written,
+ (double)stats.total_read,
+ (double)stats.total_size);
+ } else {
+ rprintf(FLOG,"transfer interrupted\n");
+ }
+}
+
+/* log the incoming transfer of a file for interactive use, this
+ will be called at the end where the client was run */
+void log_transfer(struct file_struct *file, char *fname)
+{
+ extern int verbose;
+
+ if (!verbose) return;
+
+ rprintf(FINFO,"%s\n", fname);
+}
+