X-Git-Url: http://dolda2000.com/gitweb/?p=doldaconnect.git;a=blobdiff_plain;f=daemon%2Freqstat.c;h=d3d849fd597b09cf129fad60a3128c6015b4952f;hp=34b7ce37df1c49e189e9a407b46af9680137b5cf;hb=a77b52c86516752280fe9b7dd2b72fead11060b0;hpb=5dce4f6c7d1f5fb0a4d4bcf72c11ee0c91ebcfdf diff --git a/daemon/reqstat.c b/daemon/reqstat.c index 34b7ce3..d3d849f 100644 --- a/daemon/reqstat.c +++ b/daemon/reqstat.c @@ -22,7 +22,6 @@ #include #include #include -#include #ifdef HAVE_CONFIG_H #include @@ -31,6 +30,10 @@ #include "module.h" #include "log.h" +#ifdef HAVE_XATTR +#include +#endif + struct trdata { size_t startpos; }; @@ -62,6 +65,7 @@ void filelog(char *format, ...) fclose(out); } +#ifdef HAVE_XATTR void xainc(wchar_t *file, char *an, off_t inc) { char buf[32]; @@ -88,26 +92,33 @@ void xainc(wchar_t *file, char *an, off_t inc) if(setxattr(fn, an, buf, al, 0) < 0) flog(LOG_WARNING, "could not set xattr %s on %s: %s", an, fn, strerror(errno)); } +#endif void request(struct transfer *transfer, struct trdata *data) { filelog("request %ls", transfer->path); +#ifdef HAVE_XATTR if(confgetint("reqstat", "xa")) xainc(transfer->path, "user.dc-req", 1); +#endif } void start(struct transfer *transfer, struct trdata *data) { filelog("start %ls at %zi", transfer->path, data->startpos); +#ifdef HAVE_XATTR if(confgetint("reqstat", "xa")) xainc(transfer->path, "user.dc-started", 1); +#endif } void finish(struct transfer *transfer, struct trdata *data) { filelog("finish %ls at %zi, total %zi", transfer->path, transfer->curpos, transfer->curpos - data->startpos); +#ifdef HAVE_XATTR if(confgetint("reqstat", "xa")) xainc(transfer->path, "user.dc-bytes", transfer->curpos - data->startpos); +#endif } static int chattr(struct transfer *transfer, wchar_t *attrib, struct trdata *data)