From 81386042ef8b2fbe50d1e1756434463e8f6b96d7 Mon Sep 17 00:00:00 2001 From: fredrik Date: Wed, 11 Apr 2007 01:27:20 +0000 Subject: [PATCH] Use findfile from utils instead of findfilter. git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/doldaconnect@872 959494ce-11ee-0310-bf91-de5d638817bd --- daemon/transfer.c | 57 ++++--------------------------------------------------- 1 file changed, 4 insertions(+), 53 deletions(-) diff --git a/daemon/transfer.c b/daemon/transfer.c index 0bf759e..99843ae 100644 --- a/daemon/transfer.c +++ b/daemon/transfer.c @@ -528,58 +528,6 @@ static void killfilter(struct transfer *transfer) transfer->filterbufsize = transfer->filterbufdata = 0; } -static char *findfilter(struct passwd *pwd) -{ - char *path, *filtername; - - if((path = sprintf2("%s/.dcdl-filter", pwd->pw_dir)) != NULL) - { - if(!access(path, X_OK)) - return(path); - free(path); - } - if((filtername = icwcstombs(confgetstr("transfer", "filter"), NULL)) == NULL) - { - flog(LOG_WARNING, "could not convert filter name into local charset: %s", strerror(errno)); - } else { - if(strchr(filtername, '/') == NULL) - { - if((path = sprintf2("/etc/%s", filtername)) != NULL) - { - if(!access(path, X_OK)) - { - free(filtername); - return(path); - } - free(path); - } - if((path = sprintf2("/usr/etc/%s", filtername)) != NULL) - { - if(!access(path, X_OK)) - { - free(filtername); - return(path); - } - free(path); - } - if((path = sprintf2("/usr/local/etc/%s", filtername)) != NULL) - { - if(!access(path, X_OK)) - { - free(filtername); - return(path); - } - free(path); - } - } else { - if(!access(filtername, X_OK)) - return(filtername); - } - free(filtername); - } - return(NULL); -} - static void handletranscmd(struct transfer *transfer, wchar_t *cmd, wchar_t *arg) { if(!wcscmp(cmd, L"status")) { @@ -679,7 +627,10 @@ int forkfilter(struct transfer *transfer) errno = EACCES; return(-1); } - if((filtername = findfilter(pwent)) == NULL) + filtername = findfile(icswcstombs(confgetstr("transfer", "filter"), NULL, NULL), NULL, 0); + if(filtername == NULL) + filtername = findfile("dc-filter", pwent->pw_dir, 0); + if(filtername == NULL) { flog(LOG_WARNING, "could not find filter for user %s", pwent->pw_name); errno = ENOENT; -- 2.11.0