OK. I get all that. Now I'm getting a very strange error when I try to use the hook. the error from the error_log is: Undefined subroutine &Apache::Upload::handler called at /dev/null line 1.
Here is the code that calls the hook: sub header_parser_handler($) { my $=shift; my $hook_handler= sub { my ($upload, $buf, $len, $hook_data)=@_; $hook_cache->set($hook_data,$len); Apache->log_error("$hook_data: got $len bytes for ".$upload->name); }; my %cookies=Apache::Cookie->fetch; my $u_id=$cookies{u_id}->value; my $q=Apache::Request->instance($r,TEMP_DIR=>"/home/www/spool",HOOK_DATA=>"$u_i d",UPLOAD_HOOK=>$hook_handler); return OK; } Any idea what's going on here? Issac Internet is a wonderful mechanism for making a fool of yourself in front of a very large audience. --Anonymous Moving the mouse won't get you into trouble... Clicking it might. --Anonymous PGP Key 0xE0FA561B - Fingerprint: 7E18 C018 D623 A57B 7F37 D902 8C84 7675 E0FA 561B ----- Original Message ----- From: "Joe Schaefer" <[EMAIL PROTECTED]> To: "Issac Goldstand" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Monday, October 08, 2001 19:16 Subject: Re: Apache::Request UPLOAD_HOOK > "Issac Goldstand" <[EMAIL PROTECTED]> writes: > > > The documentation on how to use this feature is a bit sketchy... > > Yes, I agree. Doc patches are always welcome. > > Comments below are from memory since I last tested this feature > about 6 months ago. > > > Can anyone explain: 1) What the variables passed to the callback > > function are (looks like the Apache::Upload object is the first, but > > what's been filled in there when the hook gets called? > > The current upload object goes there when the hook is called. > > > The second looks like the current bunch of data that's been > > recieved[?], > > Right, it's the buffer from apache's ap_get_client_block, > which is usually around 2-4 KB. The hook runs before the > buffer gets written to the underlying tempfile, but as soon > as your hook has completed, Apache::Request will write it > automatically. > > > the third is the length, but is that the length recieved so far or the > > length recieved between the last time it was called and this time? > > The length of the buffer; the same as length($buffer). > > > And lastly, what can be placed in HOOK_DATA - scalar only?) > > Yes, but the scalar can also be a ref to an array or hash. > > > 2) Is there any way of knowing how often the hook will get called? > > Not really- it's called when apache calls ap_get_client_block. > > > 3) Is there a specific phase of the Request that Apache::Request > > must be called and initialized with the callback before? > > The hooks get run as the data is uploaded to the server, > which IOW is when the data is first being parsed. This > can happen at any phase you choose, but it only happens > once per request. > > > 4) Are there any specific issues for using this with > > Apache::Request->instance ? > > Other than (3), I don't think so- but as I said before > this is not a well-tested feature (yet :) > > HTH > -- > Joe Schaefer >