LibURL Error Previous request not completed
Mark Schonewille
m.schonewille at economy-x-talk.com
Wed Aug 2 05:39:48 EDT 2006
Hi Dave,
Thanks for taking this up.
I can't use the callback message to get a file listing, because the
user of my software may wish to upload hundreds, if not thousands, of
files at once. The callback message would be called hundreds of times
and if the callback message caused the directory listing to update, I
would probably run into serious trouble, calling getURL hundreds of
times.
So, I check whether each file has been handled and if none of the
files is still being uploaded, downloaded, queued etc, I get the url
of the directory twice, to get one listing with and one without
additional information. This works perfectly fine if only one file is
uploaded, but the "wait" commands in the library block the whole
thing if I want to get a directory listing after uploading more than
1 file. So, yes, I am using getURL twice, and use the
libUrlFtpCommand command to set the type of listing I get back from
the server, but this always worked fine until I started uploading
multiple files.
All my repeat loops now contain "with messages" and the repeat loop
that calls the libUrlFtpUpload handler has been changed into a
regular handler with "send xxxxx in yy millisecs to me" at the end.
Although this seems to help for a small number of small files, I
still have problems if I upload two large files, for example.
Currently, I am handling only one batch at a time, but I intend to
create a programme that uploads and downloads files completely
asynchronically, refreshes directory lists, deletes files etc. just
like any other ftp programme. This means that all libURLftpUpload and
-Download commands, get URL commands, and libUrlFtpCommand commands
should be sent independently of each other. Are you implying this is
impossible with the libUrl library?
Can you explain what exactly causes the handlers in the library to
block each other? Maybe we can change it?
If you want, you can download ecxFTP from the Economy-x-Talk
homepage. If you drag a bunch of files into the main window, wait
until they have been uploaded, and then try to navigate to a
different directory, you will get an error similar to "URL 'ftp://
blabla' is blocking. Do you want to reset?". The url points to a
directory on the server, not to a file. So, it is the GetURL handler
that is blocking here. (Since I am still working on the application,
tomorrow's version may bot display this error anymore).
Thanks for your time and best regards,
Mark
--
Economy-x-Talk
Consultancy and Software Engineering
http://economy-x-talk.com
http://www.salery.biz
Download ErrorLib at http://economy-x-talk.com/developers.html and
get full control of error handling in Revolution.
Op 2-aug-2006, om 9:00 heeft Dave Cragg het volgende geschreven:
>
> On 1 Aug 2006, at 23:42, Mark Schonewille wrote:
>
>> I'll problaby post an enhancement request to bugzilla regarding
>> this problem, if there isn't an entry in BZ yet.
>
> Mark, I didn't see the earlier post on this. (I was away.)
>
> From your earlier post:
>
>> Right after uploading a dozen of files to my ftp account
>> asynchronically using the libUrlFtpUploadFile command, I can't get
>> a directory listing using the syntax: get url "ftp://
>> name:pass at ftp.domain.com/folder/" (note the trailing slash, as I
>> want a listing). Most of the time I receive the error "Error
>> Previous request not completed".
>>
>> It appears the GetURL handler in the revLibURL script doesn't let
>> me get the url because the variable lvBlockingUrl is not empty.
>> Although everything has been uploaded/downloaded already,
>> lbBlockingUrl indicates that one or more transfers are still in
>> progress. So, in the GetURL handler, I changed the line which
>> checks whether any url's are currently being handled and added
>> variable to force the handler to run normally:
>
> Are you doing anything else other than libUrlFtpUploadFile followed
> by "get url" for the listing? For example, is there any chance your
> script is calling "get url" twice? Or do you make any other url
> calls during this process.
>
> The reason I'm asking is that you pointed out a possible problem
> with the lvBlockingUrl variable in the libUrl script. But this is
> not set by libUrlFtpUploadFile, so is unlikely to be the issue here
> if you are only using libUrlFtpUploadFile followed by a single "get
> url" call.
>
> Another possible source of a "Previous request not completed"
> message is the libUrlFtpCommand handler. Are you using that anywhere?
>
> How are you checking that the uploads are complete before getting
> the directory listing? The "normal" way would be to use the
> callback message from libUrlFtpUploadFile. If you could let me see
> the script you are using, I'll give it a run.
>
> Cheers
> Dave
More information about the use-livecode
mailing list