Fixed logging bug in filterread.
[doldaconnect.git] / daemon / transfer.c
index ab862a2..1d4bd21 100644 (file)
@@ -576,7 +576,7 @@ static void filterread(struct socket *sk, struct transfer *transfer)
        return;
     bufcat(transfer->filterbuf, buf, bufsize);
     free(buf);
-    if((p = memchr(transfer->filterbuf, '\n', transfer->filterbufdata)) != NULL)
+    while((p = memchr(transfer->filterbuf, '\n', transfer->filterbufdata)) != NULL)
     {
        *(p++) = 0;
        if((p2 = strchr(transfer->filterbuf, ' ')) != NULL)
@@ -587,7 +587,7 @@ static void filterread(struct socket *sk, struct transfer *transfer)
            if(p2 != NULL)
            {
                if((arg = icmbstowcs(p2, NULL)) == NULL)
-                   flog(LOG_WARNING, "filter sent a string which could not be converted into the local charset: %s: %s", transfer->filterbuf, strerror(errno));
+                   flog(LOG_WARNING, "filter sent a string which could not be converted into the local charset: %s: %s", p2, strerror(errno));
            }
            CBCHAINDOCB(transfer, trans_filterout, transfer, cmd, arg);
            if(arg != NULL)