- From: Matthew Freedman <mattf@cac.washington.edu>
- Date: Wed, 7 Jun 1995 14:15:36 -0700 (PDT)
- To: Henrik Frystyk Nielsen <frystyk@w3.org>
- Cc: Multiple recipients of list <www-lib@www10.w3.org>
Is the libwww supposed to be able to handle a server redirect? My
mini http retrieving application is now crashing when the server redirects
it. I.e. if I point it at http://www.washington.edu, which will get
redirected to a specific port (depending on the client's IP address), I
get a core-dump. I have not tried any other redirecting servers yet.
Here is the echo...
Composing Authorization for www.washington.edu:80//
HTAASetup_lookup: No template matched `/' (so probably not protected)
HTMIME: MIME content type is text/html, converting to */*
StreamStack. Constructing stream stack for text/html to */*
<HEAD><TITLE>Document's real location</TITLE></HEAD>
<BODY>
<H1>Document not really at this site</H1>
Document is really
<A HREF="http://www.washington.edu:1184/">
here</A>.<P>
</BODY>
Composing Authorization for www.washington.edu:1184/
HTAASetup_lookup: No template matched `' (so probably not protected)
HTMIME: Bad character `a' found where `ocation:' expected
HTMIME: Bad character `l' found where `t' expected
HTMIME: MIME content type is text/html, converting to */*
StreamStack. Constructing stream stack for text/html to */*
Segmentation fault (core dumped)
The dbx stack trace is:
(dbx) where
> 0 HTMIME_write(me = 0x10016200, b = 0x1001c0ba = "<HTML>\n<HEAD>\n<!--DO NOT
EDIT. THIS FILE WAS CREATED AUTOMATICALLY. DO NOT EDIT-->\n<!--BASE
HREF="http://www.cac.washington.edu/in\...", l = 326)
["../../Library/Implementation/HTMIME.c":336, 0x432bb8]
1 HTTPStatus_put_block(me = 0x10016100, b = 0x1001c010 = "Date:
Wednesday, 07-Jun-95 21:11:28 GMT\nServer: NCSA/1.3\nMIME-version: 1.0\nContent-type:
text/html\nLast-modified: Wednesday, 07-Jun-\...", l = 496)
["../../Library/Implementation/HTTP.c":571, 0x41bfac]
2 .block72 ["../../Library/Implementation/HTFormat.c":1189, 0x40c6ec]
3 HTInputSocket_read(isoc = 0x1001c000, target = 0x10016100)
["../../Library/Implementation/HTFormat.c":1189, 0x40c6ec]
4 HTLoadHTTP(request = 0x10016000)
["../../Library/Implementation/HTTP.c":723, 0x41c614]
5 .block17 ["../../Library/Implementation/HTAccess.c":697, 0x402cf0]
6 HTLoad(request = 0x10016000, keep_error_stack = '^A')
["../../Library/Implementation/HTAccess.c":697, 0x402cf0]
7 .block21 ["../../Library/Implementation/HTAccess.c":858, 0x4033ac]
8 .block20 ["../../Library/Implementation/HTAccess.c":858, 0x4033ac]
9 .block19 ["../../Library/Implementation/HTAccess.c":858, 0x4033ac]
10 HTLoadDocument(request = 0x10016000, keep_error_stack = '^A')
["../../Library/Implementation/HTAccess.c":858, 0x4033ac]
11 HTLoadAnchorRecursive(anchor = 0x1001b080, request = 0x10016000)
["../../Library/Implementation/HTAccess.c":1008, 0x403748]
12 .block181 ["../../Library/Implementation/HTTP.c":754, 0x41c854]
13 HTLoadHTTP(request = 0x10016000)
["../../Library/Implementation/HTTP.c":754, 0x41c854]
14 .block17 ["../../Library/Implementation/HTAccess.c":697, 0x402cf0]
15 HTLoad(request = 0x10016000, keep_error_stack = '\000')
["../../Library/Implementation/HTAccess.c":697, 0x402cf0]
16 .block21 ["../../Library/Implementation/HTAccess.c":858, 0x4033ac]
17 .block20 ["../../Library/Implementation/HTAccess.c":858, 0x4033ac]
18 .block19 ["../../Library/Implementation/HTAccess.c":858, 0x4033ac]
19 HTLoadDocument(request = 0x10016000, keep_error_stack = '\000')
["../../Library/Implementation/HTAccess.c":858, 0x4033ac]
20 HTLoadAbsolute(addr = 0x7fffbac1 = "http://www.washington.edu",
request = 0x10016000) ["../../Library/Implementation/HTAccess.c":885, 0x40347c]
21 main(argc = 2, argv = 0x7fffba34) ["get_http.c":68, 0x40045c]
And the text of my program is as follows (I have taken out the loop, now
it is even simpler)...
main(int argc, char *argv[])
{
char *url;
HTRequest *request;
/* Initialize the library */
HTLibInit();
WWW_TraceFlag = TRUE;
if (!(url = argv[1]))
exit(1);
/* Set up the request structure */
request = HTRequest_new();
request->output_format = WWW_SOURCE;
request->output_stream = HTFWriter_new(stdout, TRUE);
HTLoadAbsolute(url, request);
HTLibTerminate();
}
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
= Matthew M. Freedman =
= U. of Washington Information Systems mattf@cac.washington.edu =
= 4545 15th Ave. NE; 3rd Floor (206) 543-5593 =
= Seattle, WA 98105 =
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Received on Wednesday, 7 June 1995 17:15:46 UTC