Probably this patch will fix the bug. Please try.
--
Alexander.
Index: CmdExec.cc
===================================================================
RCS file: /home/lav/cvsroot/lftp/src/CmdExec.cc,v
retrieving revision 1.122
diff -u -p -r1.122 CmdExec.cc
--- CmdExec.cc 24 May 2006 07:30:21 -0000 1.122
+++ CmdExec.cc 2 Aug 2006 13:14:34 -0000
@@ -1311,19 +1311,21 @@ void CmdExec::FeedArgV(const ArgV *args,
xfree(cmd);
}
-bool CmdExec::SameQueueParameters(CmdExec *scan)
+bool CmdExec::SameQueueParameters(CmdExec *scan,const char *this_url)
{
- return !strcmp(this->session->GetConnectURL(FA::NO_PATH),
- scan->session->GetConnectURL(FA::NO_PATH))
+ return !strcmp(this_url,scan->session->GetConnectURL(FA::NO_PATH))
&& !xstrcmp(this->slot,scan->slot);
}
/* return the CmdExec containing a queue feeder; create if necessary */
CmdExec *CmdExec::GetQueue(bool create)
{
+ const char *this_url=session->GetConnectURL(FA::NO_PATH);
+ // future GetConnectURL overwrite the static buffer, save it.
+ this_url=alloca_strdup(this_url);
for(CmdExec *scan=chain; scan; scan=scan->next)
{
- if(scan->queue_feeder && SameQueueParameters(scan))
+ if(scan->queue_feeder && SameQueueParameters(scan,this_url))
return scan;
}
if(!create)
Index: CmdExec.h
===================================================================
RCS file: /home/lav/cvsroot/lftp/src/CmdExec.h,v
retrieving revision 1.55
diff -u -p -r1.55 CmdExec.h
--- CmdExec.h 5 Apr 2006 12:28:15 -0000 1.55
+++ CmdExec.h 2 Aug 2006 13:14:41 -0000
@@ -138,7 +138,7 @@ private:
QueueFeeder *queue_feeder;
CmdExec *GetQueue(bool create = true);
- bool SameQueueParameters(CmdExec *);
+ bool SameQueueParameters(CmdExec *,const char *);
FileAccess *saved_session;
void ReuseSavedSession();