print_bkt_datacol "rc" "n/%c" 'a' $sh
else
- if (($bucket->type == &apr_bucket_type_file) || \
- ($bucket->type == &apr_bucket_type_pipe) || \
- ($bucket->type == &apr_bucket_type_socket))
+ if ($bucket->type == &apr_bucket_type_file)
- # buckets that contain data not in memory (ie not printable)
-
- print_bkt_datacol "contents" "[**unprintable**%c" ']' $sh
- printf " "
- if $bucket->type == &apr_bucket_type_file
- set $refcount = ((apr_bucket_refcount *)$bucket->data)->refcount
- print_bkt_datacol "rc" "%d" $refcount $sh
- end
+ # file bucket, can show fd and refcount
+ set $fd = ((apr_bucket_file*)$bucket->data)->fd->filedes
+ print_bkt_datacol "contents" "[***file***] fd=%-6ld" (long)$fd $sh
+ set $refcount = ((apr_bucket_refcount *)$bucket->data)->refcount
+ print_bkt_datacol "rc" "%d" $refcount $sh
else
if (($bucket->type == &apr_bucket_type_heap) || \
end
else
- # 3rd-party bucket type
- print_bkt_datacol "contents" "[**unknown**%c" ']' $sh
+ if ($bucket->type == &apr_bucket_type_pipe)
+
+ # pipe bucket, can show fd
+ set $fd = ((apr_file_t*)$bucket->data)->filedes;
+ print_bkt_datacol "contents" "[***pipe***] fd=%-6ld" (long)$fd $sh
+
+ else
+ if ($bucket->type == &apr_bucket_type_socket)
+
+ # file bucket, can show fd
+ set $fd = ((apr_socket_t*)$bucket->data)->socketdes;
+ print_bkt_datacol "contents" "[**socket**] fd=%-6ld" (long)$fd $sh
+
+ else
+
+ # 3rd-party bucket type
+ print_bkt_datacol "contents" "[**opaque**]%-10c" ' ' $sh
+ end
+ end
+
+ # no refcount
printf " "
print_bkt_datacol "rc" "n/%c" 'a' $sh
end