Your message dated Wed, 30 Jul 2008 16:11:20 +0200
with message-id <[EMAIL PROTECTED]>
and subject line Done: [sitecopy] Crash on a progress bar because of the use of 
deprecated API
has caused the Debian Bug report #486378,
regarding [sitecopy] Crash on a progress bar because of the use of deprecated 
API
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [EMAIL PROTECTED]
immediately.)


-- 
486378: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=486378
Debian Bug Tracking System
Contact [EMAIL PROTECTED] with problems
--- Begin Message ---
Package: sitecopy
Version: 1:0.16.3-17
Severity: important
Tags: patch

--- Please enter the report below this line. ---

I experimented several crashes with sitecopy and decided to track them
down. I found out that the progress bar of libneon was somehow involved.
It seems that even though the DISABLE_PROGRESS macro has been called the
progress bar seems to keep stay active from time to time.

Looking more precisely at the libneon API, I found out that
ne_set_progress was deprecated. See src/ne_session.h:102 which states that:

/* DEPRECATED API: Set a progress callback for the session; this is
 * deprecated in favour of ne_set_notifier().  The progress callback
 * is invoked for after each block of the request and response body to
 * indicate request and response progress (there is no way to
 * distinguish between the two using this interface alone).
 *
 * NOTE: Use of this interface is mutually exclusive with the use of
 * ne_set_notifier().  A call to ne_set_progress() removes the
 * notifier callback, and vice versa. */
void ne_set_progress(ne_session *sess,
                     ne_progress progress,
                     void *userdata);

I tried out to change the ENABLE_PROGRESS/DISABLE_PROGRESS for the new
API call (ne_set_notifier) and it went nicely on all my problematic
examples.

Therefore, I suggest the following patch:

===================================================

diff -ruN sitecopy-0.16.3-orig/src/davdriver.c
sitecopy-0.16.3/src/davdriver.c
--- sitecopy-0.16.3-orig/src/davdriver.c        2008-06-15 19:22:12.000000000 
+0200
+++ sitecopy-0.16.3/src/davdriver.c     2008-06-15 19:23:54.000000000 +0200
@@ -62,9 +62,9 @@
     const char *root;
 };

-#define ENABLE_PROGRESS do { ne_set_progress(sess,
site_sock_progress_cb, NULL); } while (0)
+#define ENABLE_PROGRESS do { ne_set_notifier(sess,
site_sock_progress_cb, NULL); } while (0)

-#define DISABLE_PROGRESS do { ne_set_progress(sess, NULL, NULL); }
while (0)
+#define DISABLE_PROGRESS do { ne_set_notifier(sess, NULL, NULL); }
while (0)

 /* TODO:
  * not really sure whether we should be using an enum here... what

===================================================

*** Please apply ***

--- System information. ---
Architecture: i386
Kernel:       Linux 2.6.25.4

Debian Release: lenny/sid
  500 unstable        ftp.fr.debian.org

--- Package information. ---
Depends         (Version) | Installed
=========================-+-============
libc6          (>= 2.7-1) | 2.7-12
libneon27     (>= 0.28.1) | 0.28.2-2




--- End Message ---
--- Begin Message ---
Package: sitecopy
Version: 1:0.16.6-1

--- Please enter the report below this line. ---

Solved for me.

Thanks ! :)


--- End Message ---

Reply via email to