lib_4.0C_1.fix
上传用户:zlh9724
上传日期:2007-01-04
资源大小:1991k
文件大小:128k
- HTNet *srcnet = request->source->net;
- ! if (srcnet) {
- ! HTEvent_Register(srcnet->sockfd, request->source,
- ! (SockOps) FD_READ,
- ! srcnet->cbf, srcnet->priority);
- ! HTEvent_UnRegister(net->sockfd, FD_WRITE);
- ! }
- return HT_OK;
- }
- status = request->PostCallback ?
- --- 594,603 ----
- if (ops == FD_WRITE || ops == FD_NONE) {
- if (HTRequest_isDestination(request)) {
- HTNet *srcnet = request->source->net;
- ! TTYPrint(TDEST,"File Serve. HERE!n");
- ! HTEvent_Register(srcnet->sockfd, request->source,
- ! (SockOps) FD_READ,
- ! srcnet->cbf, srcnet->priority);
- return HT_OK;
- }
- status = request->PostCallback ?
- ***************
- *** 609,614 ****
- --- 613,620 ----
- return HT_OK;
- else if (status == HT_LOADED)
- http->state = http->next; /* Jump to next state */
- + else if (status == HT_RELOAD)
- + http->state = HTTP_EXPIRED;
- else
- http->state = HTTP_ERROR;
- } else {
- ***************
- *** 620,719 ****
- http->state = HTTP_ERROR;
- break;
-
- ! case HTTP_PERM_REDIRECT:
- ! if (HTRequest_isPostWeb(request)) {
- ! if (HTRequest_isDestination(request)) {
- ! HTLink *link =
- ! HTAnchor_findLink((HTAnchor *) request->source->anchor,
- ! (HTAnchor *) anchor);
- ! HTLink_setResult(link, HT_LINK_ERROR);
- ! }
- HTRequest_killPostWeb(request);
- ! }
- ! HTTPCleanup(request, HT_PERM_REDIRECT);
- ! return HT_OK;
- ! break;
- !
-
- ! case HTTP_TEMP_REDIRECT:
- ! if (HTRequest_isPostWeb(request)) {
- ! if (HTRequest_isDestination(request)) {
- ! HTLink *link =
- ! HTAnchor_findLink((HTAnchor *) request->source->anchor,
- ! (HTAnchor *) anchor);
- ! HTLink_setResult(link, HT_LINK_ERROR);
- }
- ! HTRequest_killPostWeb(request);
- }
- - HTTPCleanup(request, HT_TEMP_REDIRECT);
- - return HT_OK;
- break;
- !
- case HTTP_AA:
- ! if (HTRequest_isPostWeb(request)) {
- ! if (HTRequest_isDestination(request)) {
- ! HTLink *link =
- ! HTAnchor_findLink((HTAnchor *) request->source->anchor,
- ! (HTAnchor *) anchor);
- ! HTLink_setResult(link, HT_LINK_ERROR);
- ! }
- HTRequest_killPostWeb(request);
- }
- - HTTPCleanup(request, HT_NO_ACCESS);
- - return HT_OK;
- break;
- !
- case HTTP_GOT_DATA:
- if (HTRequest_isPostWeb(request)) {
- if (HTRequest_isDestination(request)) {
- HTLink *link =
- HTAnchor_findLink((HTAnchor *) request->source->anchor,
- ! (HTAnchor *) anchor);
- HTLink_setResult(link, HT_LINK_OK);
- }
- ! }
- ! HTTPCleanup(request, HT_LOADED);
- return HT_OK;
- break;
-
- case HTTP_NO_DATA:
- if (HTRequest_isPostWeb(request)) {
- if (HTRequest_isDestination(request)) {
- HTLink *link =
- HTAnchor_findLink((HTAnchor *) request->source->anchor,
- ! (HTAnchor *) anchor);
- HTLink_setResult(link, HT_LINK_OK);
- }
- ! }
- ! HTTPCleanup(request, HT_NO_DATA);
- return HT_OK;
- break;
-
- case HTTP_RETRY:
- if (HTRequest_isPostWeb(request)) {
- if (HTRequest_isDestination(request)) {
- HTLink *link =
- HTAnchor_findLink((HTAnchor*) request->source->anchor,
- ! (HTAnchor*) anchor);
- HTLink_setResult(link, HT_LINK_ERROR);
- }
- ! HTRequest_killPostWeb(request);
- ! }
- ! HTTPCleanup(request, HT_RETRY);
- return HT_OK;
- break;
-
- case HTTP_ERROR:
- if (HTRequest_isPostWeb(request)) {
- if (HTRequest_isDestination(request)) {
- HTLink *link =
- HTAnchor_findLink((HTAnchor *) request->source->anchor,
- ! (HTAnchor *) anchor);
- HTLink_setResult(link, HT_LINK_ERROR);
- }
- ! HTRequest_killPostWeb(request);
- ! }
- ! HTTPCleanup(request, HT_ERROR);
- return HT_OK;
- break;
- }
- --- 626,821 ----
- http->state = HTTP_ERROR;
- break;
-
- ! case HTTP_EXPIRED:
- ! #if 0
- ! /* Dirty hack and fall through */
- ! if (PROT_TRACE) TTYPrint(TDEST, "HTTP........ Expiredn");
- ! request->redirect = request->anchor->address;
- ! #endif
- !
- ! case HTTP_REDIRECTION:
- ! /* Clean up the other connections or just this one */
- ! if (HTRequest_isPostWeb(request))
- HTRequest_killPostWeb(request);
- ! else
- ! HTTPCleanup(request, HT_IGNORE);
-
- ! /* If we found a new URL in the response */
- ! if (request->redirect) {
- ! if (status == 301) {
- ! HTRequest_addError(request, ERR_INFO, NO, HTERR_MOVED,
- ! (void *) request->redirect,
- ! (int) strlen(request->redirect), "HTLoadHTTP");
- ! } else if (status == 302) {
- ! HTRequest_addError(request, ERR_INFO, NO, HTERR_FOUND,
- ! (void *) request->redirect,
- ! (int) strlen(request->redirect), "HTLoadHTTP");
- ! }
- !
- ! /* If we haven't reached the limit for redirection */
- ! if (HTRequest_retry(request)) {
- ! HTAlertCallback *cbf = HTAlert_find(HT_A_CONFIRM);
- ! HTAnchor *anchor = HTAnchor_findAddress(request->redirect);
- !
- ! /* Make sure that we don't get this from cache */
- ! HTRequest_setReloadMode(request, HT_FORCE_RELOAD);
- !
- ! if (HTRequest_isPostWeb(request)) {
- ! HTRequest *dest = HTRequest_mainDestination(request);
- ! if (cbf && (*cbf)(request, HT_A_CONFIRM, HT_MSG_MOVED,
- ! NULL, request->redirect, NULL)) {
- !
- ! /* The new anchor inherits the Post Web */
- ! HTAnchor_moveAllLinks((HTAnchor *) request->anchor,
- ! anchor);
- ! if (HTRequest_isSource(request))
- ! HTRequest_delete(request);
- ! return HTCopyAnchor((HTAnchor *) anchor, dest) ?
- ! HT_OK : HT_ERROR;
- ! }
- ! return HT_OK;
- ! } if (request->PostCallback) {
- ! #if 0
- ! return HTUploadAnchor((HTAnchor*) anchor, request) ?
- ! HT_OK : HT_ERROR;
- ! #endif
- ! } else {
- ! return HTLoadAnchor((HTAnchor *) anchor, request) ?
- ! HT_OK : HT_ERROR;
- ! }
- ! } else {
- ! HTRequest_addError(request, ERR_FATAL, NO,
- ! HTERR_MAX_REDIRECT,NULL,0,"HTLoadHTTP");
- ! if (HTRequest_isPostWeb(request)) {
- ! BOOL main = HTRequest_isMainDestination(request);
- ! if (HTRequest_isDestination(request)) {
- ! HTLink *link =
- ! HTAnchor_findLink((HTAnchor *)request->source->anchor,
- ! (HTAnchor *)request->anchor);
- ! HTLink_setResult(link, HT_LINK_ERROR);
- ! }
- ! HTNet_callAfter(request, main ? HT_ERROR : HT_IGNORE);
- ! HTRequest_removeDestination(request);
- ! }
- ! return HT_OK;
- }
- ! } else {
- ! HTRequest_addError(request, ERR_FATAL, NO, HTERR_BAD_REPLY,
- ! NULL, 0, "HTLoadHTTP");
- ! return HT_OK;
- }
- break;
- !
- case HTTP_AA:
- ! /* Clean up the other connections or just this one */
- ! if (HTRequest_isPostWeb(request))
- HTRequest_killPostWeb(request);
- + else
- + HTTPCleanup(request, HT_IGNORE);
- +
- + /* Ask the user for a UserID and a passwd */
- + if (HTTPAuthentication(request) && HTAA_retryWithAuth(request)) {
- + int ret;
- +
- + /* Make sure that we don't get this from cache */
- + HTRequest_setReloadMode(request, HT_FORCE_RELOAD);
- +
- + if (HTRequest_isPostWeb(request)) {
- + HTRequest *dest = HTRequest_mainDestination(request);
- + HTAnchor_appendMethods(request->anchor, request->method);
- + ret=HTCopyAnchor((HTAnchor*)request->source->anchor, dest);
- + return ret ? HT_OK : HT_ERROR;
- + } else if (request->PostCallback) {
- + #if 0
- + ret = HTUploadAnchor((HTAnchor*) request->anchor,request);
- + return ret ? HT_OK : HT_ERROR;
- + #endif
- + } else {
- + ret = HTLoadAnchor((HTAnchor *) request->anchor, request);
- + return ret ? HT_OK : HT_ERROR;
- + }
- + } else { /* If the guy said no :-( */
- + HTRequest_addError(request, ERR_FATAL, NO, HTERR_UNAUTHORIZED,
- + NULL, 0, "HTLoadHTTP");
- + if (HTRequest_isPostWeb(request)) {
- + BOOL main = HTRequest_isMainDestination(request);
- + if (HTRequest_isDestination(request)) {
- + HTLink *link =
- + HTAnchor_findLink((HTAnchor *) request->source->anchor,
- + (HTAnchor *) request->anchor);
- + HTLink_setResult(link, HT_LINK_ERROR);
- + }
- + HTNet_callAfter(request, main ? HT_ERROR : HT_IGNORE);
- + HTRequest_removeDestination(request);
- + }
- + return HT_OK;
- }
- break;
- !
- case HTTP_GOT_DATA:
- if (HTRequest_isPostWeb(request)) {
- + HTTPCleanup(request, HTRequest_isMainDestination(request) ?
- + HT_LOADED : HT_IGNORE);
- if (HTRequest_isDestination(request)) {
- HTLink *link =
- HTAnchor_findLink((HTAnchor *) request->source->anchor,
- ! (HTAnchor *) request->anchor);
- HTLink_setResult(link, HT_LINK_OK);
- }
- ! HTRequest_removeDestination(request);
- ! } else
- ! HTTPCleanup(request, HT_LOADED);
- return HT_OK;
- break;
-
- case HTTP_NO_DATA:
- if (HTRequest_isPostWeb(request)) {
- + HTTPCleanup(request, HTRequest_isMainDestination(request) ?
- + HT_NO_DATA : HT_IGNORE);
- if (HTRequest_isDestination(request)) {
- HTLink *link =
- HTAnchor_findLink((HTAnchor *) request->source->anchor,
- ! (HTAnchor *) request->anchor);
- HTLink_setResult(link, HT_LINK_OK);
- }
- ! HTRequest_removeDestination(request);
- ! } else
- ! HTTPCleanup(request, HT_NO_DATA);
- return HT_OK;
- break;
-
- case HTTP_RETRY:
- if (HTRequest_isPostWeb(request)) {
- + HTTPCleanup(request, HTRequest_isMainDestination(request) ?
- + HT_RETRY : HT_IGNORE);
- + HTRequest_killPostWeb(request);
- if (HTRequest_isDestination(request)) {
- HTLink *link =
- HTAnchor_findLink((HTAnchor*) request->source->anchor,
- ! (HTAnchor*) request->anchor);
- HTLink_setResult(link, HT_LINK_ERROR);
- }
- ! HTRequest_removeDestination(request);
- ! } else
- ! HTTPCleanup(request, HT_RETRY);
- return HT_OK;
- break;
-
- case HTTP_ERROR:
- + /* Clean up the other connections or just this one */
- if (HTRequest_isPostWeb(request)) {
- + HTTPCleanup(request, HTRequest_isMainDestination(request) ?
- + HT_ERROR : HT_IGNORE);
- + HTRequest_killPostWeb(request);
- if (HTRequest_isDestination(request)) {
- HTLink *link =
- HTAnchor_findLink((HTAnchor *) request->source->anchor,
- ! (HTAnchor *) request->anchor);
- HTLink_setResult(link, HT_LINK_ERROR);
- }
- ! HTRequest_removeDestination(request);
- ! } else
- ! HTTPCleanup(request, HT_ERROR);
- return HT_OK;
- break;
- }
- diff -c Library/Repository/Implementation/HTTPRes.c:2.2.2.1 Library/Repository/Implementation/HTTPRes.c:2.2
- *** Library/Repository/Implementation/HTTPRes.c:2.2.2.1 Tue Jan 23 16:31:36 1996
- --- Library/Repository/Implementation/HTTPRes.c Tue Jan 23 16:31:36 1996
- ***************
- *** 76,81 ****
- --- 76,82 ----
- PRIVATE void HTTPMakeResponse (HTStream * me, HTRequest * request)
- {
- char linebuf[256];
- + HTParentAnchor *anchor = HTRequest_anchor(request);
-
- /* Generate the HTTP/1.0 ResponseLine */
- if (request->error_stack) {
- diff -c Library/Repository/Implementation/HTTPServ.c:2.4.2.1 Library/Repository/Implementation/HTTPServ.c:2.4
- *** Library/Repository/Implementation/HTTPServ.c:2.4.2.1 Tue Jan 23 16:31:37 1996
- --- Library/Repository/Implementation/HTTPServ.c Tue Jan 23 16:31:37 1996
- ***************
- *** 102,108 ****
- PRIVATE int ParseRequest (HTStream * me)
- {
- HTRequest * request = me->request;
- ! HTRequest * newreq = me->http->serve = HTRequest_dupInternal(request);
- char * line = HTChunk_data(me->buffer);
- char * method;
- char * request_uri;
- --- 102,108 ----
- PRIVATE int ParseRequest (HTStream * me)
- {
- HTRequest * request = me->request;
- ! HTRequest * newreq = me->http->serve = HTRequest_dup(request);
- char * line = HTChunk_data(me->buffer);
- char * method;
- char * request_uri;
- diff -c Library/Repository/Implementation/HTUtils.html:2.51.2.1 Library/Repository/Implementation/HTUtils.html:2.51
- *** Library/Repository/Implementation/HTUtils.html:2.51.2.1 Tue Jan 23 16:31:37 1996
- --- Library/Repository/Implementation/HTUtils.html Tue Jan 23 16:31:37 1996
- ***************
- *** 1,7 ****
- <HTML>
- <HEAD>
- <TITLE>Utility macros</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 20-Jan-1996 -->
- </HEAD>
- <BODY>
-
- --- 1,7 ----
- <HTML>
- <HEAD>
- <TITLE>Utility macros</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 14-Jan-1996 -->
- </HEAD>
- <BODY>
-
- ***************
- *** 277,287 ****
- #define HT_OK 0 /* Generic success */
- #define HT_ALL 1 /* Used by Net Manager */
-
- ! #define HT_PERSISTENT 29993 /* Wait for persistent connection */
- ! #define HT_IGNORE 29994 /* Ignore this in the Net manager */
- ! #define HT_NO_DATA 29995 /* OK but no data was loaded */
- ! #define HT_PERM_REDIRECT 29997 /* Redo the retrieve with a new URL */
- ! #define HT_TEMP_REDIRECT 29998 /* Redo the retrieve with a new URL */
- #define HT_LOADED 29999 /* Instead of a socket */
-
- #define HT_ERROR -1 /* Generic failure */
- --- 277,287 ----
- #define HT_OK 0 /* Generic success */
- #define HT_ALL 1 /* Used by Net Manager */
-
- ! #define HT_PERSISTENT 29995 /* Wait for persistent connection */
- ! #define HT_IGNORE 29996 /* Ignore this in the Net manager */
- ! #define HT_NO_DATA 29997 /* OK but no data was loaded */
- ! #define HT_REDIRECTION_ON_FLY 29998 /* Redo the retrieve with a new URL */
- ! #define HT_REDIRECT 29998 /* Redo the retrieve with a new URL */
- #define HT_LOADED 29999 /* Instead of a socket */
-
- #define HT_ERROR -1 /* Generic failure */
- diff -c Library/Repository/Implementation/HTWriter.c:2.27.4.1 Library/Repository/Implementation/HTWriter.c:2.27
- *** Library/Repository/Implementation/HTWriter.c:2.27.4.1 Tue Jan 23 16:31:38 1996
- --- Library/Repository/Implementation/HTWriter.c Tue Jan 23 16:31:38 1996
- ***************
- *** 18,24 ****
- #include "HTReq.h"
- #include "HTNetMan.h"
- #include "HTConLen.h"
- - #include "HTAlert.h"
- #include "HTWriter.h" /* Implemented here */
-
- struct _HTStream {
- --- 18,23 ----
- ***************
- *** 69,76 ****
- {
- int b_write;
- CONST char *limit = buf+len;
- - HTRequest * request = me->net->request;
- - HTNet * net = me->net;
-
- #ifdef NOT_ASCII
- if (me->make_ascii && len && !me->ascbuf) { /* Generate new buffer */
- --- 68,73 ----
- ***************
- *** 104,116 ****
- #endif
- {
- if (PROT_TRACE)
- ! TTYPrint(TDEST,"Write Socket WOULD BLOCK %dn",me->sockfd);
- ! HTEvent_Register(me->sockfd, request, (SockOps) FD_WRITE,
- ! net->cbf, net->priority);
- return HT_WOULD_BLOCK;
- } else {
- ! HTRequest_addSystemError(request, ERR_FATAL, socerrno, NO,
- ! "NETWRITE");
- return HT_ERROR;
- }
- }
- --- 101,113 ----
- #endif
- {
- if (PROT_TRACE)
- ! TTYPrint(TDEST,"Write Socket WOULD BLOCK %dn", me->sockfd);
- ! HTEvent_Register(me->sockfd,me->net->request,(SockOps)FD_WRITE,
- ! me->net->cbf, me->net->priority);
- return HT_WOULD_BLOCK;
- } else {
- ! if (PROT_TRACE)
- ! TTYPrint(TDEST, "Write Socket WRITE ERROR %dn", socerrno);
- return HT_ERROR;
- }
- }
- ***************
- *** 120,130 ****
- if (PROT_TRACE)
- TTYPrint(TDEST, "Write Socket %d bytes written to socket %dn",
- b_write, me->sockfd);
- - net->bytes_written += b_write;
- - {
- - HTAlertCallback *cbf = HTAlert_find(HT_PROG_READ);
- - if (cbf) (*cbf)(request, HT_PROG_WRITE,HT_MSG_NULL,NULL,NULL,NULL);
- - }
- }
- #ifdef NOT_ASCII
- FREE(me->ascbuf);
- --- 117,122 ----
- diff -c Library/Repository/Implementation/Version.make:1.47.2.1 Library/Repository/Implementation/Version.make:1.47
- *** Library/Repository/Implementation/Version.make:1.47.2.1 Tue Jan 23 16:31:39 1996
- --- Library/Repository/Implementation/Version.make Tue Jan 23 16:31:39 1996
- ***************
- *** 1 ****
- ! VC = 4.0C
- --- 1 ----
- ! VC = 4.0B
- diff -c Library/Repository/Implementation/windows/wwwcore.def:1.5.2.2 Library/Repository/Implementation/windows/wwwcore.def:1.5
- *** Library/Repository/Implementation/windows/wwwcore.def:1.5.2.2 Tue Jan 23 16:31:41 1996
- --- Library/Repository/Implementation/windows/wwwcore.def Tue Jan 23 16:31:42 1996
- ***************
- *** 190,208 ****
- HTEvent_getWinHandle @ 1003
- HTEvent_winHandle @ 1004
- HTEvent_setWinHandle @ 1005
- ! HTEvent_getWinHandle @ 1006
- ! HTEvent_registerTimeout @ 1007
- ! HTEvent_unregisterTimeout @ 1008
- ! HTEvent_RegisterTTY @ 1009
- ! HTEvent_UnRegisterTTY @ 1010
- ! HTEvent_Register @ 1011
- ! HTEvent_UnRegister @ 1012
- ! HTEvent_Retrieve @ 1013
- ! HTEvent_UnregisterAll @ 1014
- ! AsyncWindowProc @ 1015
- HTEvent_Loop @ 1016
- - AsyncWindowProc @ 1017
- - HTEvent_Loop @ 1018
-
- ;HTFormat.c @ 1100
- HTPresentation_add @ 1101
- --- 190,206 ----
- HTEvent_getWinHandle @ 1003
- HTEvent_winHandle @ 1004
- HTEvent_setWinHandle @ 1005
- ! HTEvent_registerTimeout @ 1006
- ! HTEvent_unregisterTimeout @ 1007
- ! HTEvent_RegisterTTY @ 1008
- ! HTEvent_UnRegisterTTY @ 1009
- ! HTEvent_Register @ 1010
- ! HTEvent_UnRegister @ 1011
- ! HTEvent_Retrieve @ 1012
- ! HTEvent_UnregisterAll @ 1013
- ! AsyncWindowProc @ 1014
- ! HTEvent_Loop @ 1015
- HTEvent_Loop @ 1016
-
- ;HTFormat.c @ 1100
- HTPresentation_add @ 1101
- ***************
- *** 295,377 ****
- ;HTReqMan.c @ 1700
- HTRequest_new @ 1701
- HTRequest_dup @ 1702
- ! HTRequest_dupInternal @ 1703
- ! HTRequest_delete @ 1704
- ! HTRequest_setMethod @ 1705
- ! HTRequest_method @ 1706
- ! HTRequest_setReloadMode @ 1707
- ! HTRequest_reloadMode @ 1708
- ! HTRequest_setConversion @ 1709
- ! HTRequest_conversion @ 1710
- ! HTRequest_setEncoding @ 1711
- ! HTRequest_encoding @ 1712
- ! HTRequest_setLanguage @ 1713
- ! HTRequest_language @ 1714
- ! HTRequest_setCharset @ 1715
- ! HTRequest_charset @ 1716
- ! HTRequest_setGenerator @ 1717
- ! HTRequest_generator @ 1718
- ! HTRequest_setParser @ 1719
- ! HTRequest_parser @ 1720
- ! HTRequest_setGnHd @ 1721
- ! HTRequest_addGnHd @ 1722
- ! HTRequest_gnHd @ 1723
- ! HTRequest_setRqHd @ 1724
- ! HTRequest_addRqHd @ 1725
- ! HTRequest_rqHd @ 1726
- ! HTRequest_setRsHd @ 1727
- ! HTRequest_addRsHd @ 1728
- ! HTRequest_rsHd @ 1729
- ! HTRequest_setEnHd @ 1730
- ! HTRequest_addEnHd @ 1731
- ! HTRequest_enHd @ 1732
- ! HTRequest_setAccess @ 1733
- ! HTRequest_access @ 1734
- ! HTRequest_setAnchor @ 1735
- ! HTRequest_anchor @ 1736
- ! HTRequest_setParent @ 1737
- ! HTRequest_parent @ 1738
- ! HTRequest_setOutputStream @ 1739
- ! HTRequest_outputStream @ 1740
- ! HTRequest_setOutputFormat @ 1741
- ! HTRequest_outputFormat @ 1742
- ! HTRequest_setDebugStream @ 1743
- ! HTRequest_debugStream @ 1744
- ! HTRequest_setDebugFormat @ 1745
- ! HTRequest_debugFormat @ 1746
- ! HTRequest_setCallback @ 1747
- ! HTRequest_callback @ 1748
- ! HTRequest_setContext @ 1749
- ! HTRequest_context @ 1750
- ! HTRequest_setPreemtive @ 1751
- ! HTRequest_preemtive @ 1752
- ! HTRequest_setNegotiation @ 1753
- ! HTRequest_negotiation @ 1754
- ! HTRequest_bytesRead @ 1755
- ! HTRequest_bytesWritten @ 1756
- ! HTRequest_kill @ 1757
- ! HTRequest_error @ 1758
- ! HTRequest_setError @ 1759
- ! HTRequest_addError @ 1760
- ! HTRequest_addSystemError @ 1761
- ! HTRequest_retryTime @ 1762
- ! HTRequest_redirection @ 1763
- ! HTRequest_setMaxRetry @ 1764
- ! HTRequest_maxRetry @ 1765
- ! HTRequest_retry @ 1766
- ! HTRequest_setPriority @ 1767
- ! HTRequest_priority @ 1768
- ! HTRequest_setNet @ 1769
- ! HTRequest_net @ 1770
- ! HTRequest_addDestination @ 1771
- ! HTRequest_removeDestination @ 1772
- ! HTRequest_destinationsReady @ 1773
- ! HTRequest_linkDestination @ 1774
- ! HTRequest_unlinkDestination @ 1775
- ! HTRequest_removePostWeb @ 1776
- ! HTRequest_killPostWeb @ 1777
- ! HTLoad @ 1778
- ! HTServ @ 1779
-
- ;HTSocket.c @ 1800
- HTInputSocket_new @ 1801
- --- 293,371 ----
- ;HTReqMan.c @ 1700
- HTRequest_new @ 1701
- HTRequest_dup @ 1702
- ! HTRequest_delete @ 1703
- ! HTRequest_setMethod @ 1704
- ! HTRequest_method @ 1705
- ! HTRequest_setReloadMode @ 1706
- ! HTRequest_reloadMode @ 1707
- ! HTRequest_setConversion @ 1708
- ! HTRequest_conversion @ 1709
- ! HTRequest_setEncoding @ 1710
- ! HTRequest_encoding @ 1711
- ! HTRequest_setLanguage @ 1712
- ! HTRequest_language @ 1713
- ! HTRequest_setCharset @ 1714
- ! HTRequest_charset @ 1715
- ! HTRequest_setGenerator @ 1716
- ! HTRequest_generator @ 1717
- ! HTRequest_setParser @ 1718
- ! HTRequest_parser @ 1719
- ! HTRequest_setGnHd @ 1720
- ! HTRequest_addGnHd @ 1721
- ! HTRequest_gnHd @ 1722
- ! HTRequest_setRqHd @ 1723
- ! HTRequest_addRqHd @ 1724
- ! HTRequest_rqHd @ 1725
- ! HTRequest_setRsHd @ 1726
- ! HTRequest_addRsHd @ 1727
- ! HTRequest_rsHd @ 1728
- ! HTRequest_setEnHd @ 1729
- ! HTRequest_addEnHd @ 1730
- ! HTRequest_enHd @ 1731
- ! HTRequest_setAccess @ 1732
- ! HTRequest_access @ 1733
- ! HTRequest_setAnchor @ 1734
- ! HTRequest_anchor @ 1735
- ! HTRequest_setParent @ 1736
- ! HTRequest_parent @ 1737
- ! HTRequest_setOutputStream @ 1738
- ! HTRequest_outputStream @ 1739
- ! HTRequest_setOutputFormat @ 1740
- ! HTRequest_outputFormat @ 1741
- ! HTRequest_setDebugStream @ 1742
- ! HTRequest_debugStream @ 1743
- ! HTRequest_setDebugFormat @ 1744
- ! HTRequest_debugFormat @ 1745
- ! HTRequest_setCallback @ 1746
- ! HTRequest_callback @ 1747
- ! HTRequest_setContext @ 1748
- ! HTRequest_context @ 1749
- ! HTRequest_setPreemtive @ 1750
- ! HTRequest_preemtive @ 1751
- ! HTRequest_setNegotiation @ 1752
- ! HTRequest_negotiation @ 1753
- ! HTRequest_bytesRead @ 1754
- ! HTRequest_kill @ 1755
- ! HTRequest_error @ 1756
- ! HTRequest_setError @ 1757
- ! HTRequest_addError @ 1758
- ! HTRequest_addSystemError @ 1759
- ! HTRequest_retryTime @ 1760
- ! HTRequest_setMaxRetry @ 1761
- ! HTRequest_maxRetry @ 1762
- ! HTRequest_retry @ 1763
- ! HTRequest_setPriority @ 1764
- ! HTRequest_priority @ 1765
- ! HTRequest_setNet @ 1766
- ! HTRequest_net @ 1767
- ! HTRequest_addDestination @ 1768
- ! HTRequest_removeDestination @ 1769
- ! HTRequest_linkDestination @ 1770
- ! HTRequest_unlinkDestination @ 1771
- ! HTRequest_removePostWeb @ 1772
- ! HTRequest_killPostWeb @ 1773
- ! HTLoad @ 1774
- ! HTServ @ 1775
-
- ;HTSocket.c @ 1800
- HTInputSocket_new @ 1801
- diff -c Library/Repository/Implementation/windows/wwwhttp.def:1.3.2.1 Library/Repository/Implementation/windows/wwwhttp.def:1.3
- *** Library/Repository/Implementation/windows/wwwhttp.def:1.3.2.1 Tue Jan 23 16:31:42 1996
- --- Library/Repository/Implementation/windows/wwwhttp.def Tue Jan 23 16:31:43 1996
- ***************
- *** 3,9 ****
- HTAA_composeAuth @ 101
- HTPasswordDialog @ 102
- HTAA_retryWithAuth @ 103
- - HTAA_authentication @ 104
-
- ;HTAAUtil.c @ 200
- HTAAScheme_enum @ 201
- --- 3,8 ----
- diff -c Library/Repository/Implementation/windows/wwwutils.def:1.4.2.1 Library/Repository/Implementation/windows/wwwutils.def:1.4
- *** Library/Repository/Implementation/windows/wwwutils.def:1.4.2.1 Tue Jan 23 16:31:43 1996
- --- Library/Repository/Implementation/windows/wwwutils.def Tue Jan 23 16:31:43 1996
- ***************
- *** 23,32 ****
- HTChunk_clear @ 402
- HTChunk_delete @ 403
- HTChunk_putc @ 404
- ! HTChunk_ensure @ 405
- ! HTChunk_terminate @ 406
- ! HTChunk_puts @ 407
- ! HTChunk_putb @ 408
-
- ;HTList.c @ 500
- HTList_new @ 501
- --- 23,32 ----
- HTChunk_clear @ 402
- HTChunk_delete @ 403
- HTChunk_putc @ 404
- ! HTChunk_puts @ 405
- ! HTChunk_putb @ 406
- ! HTChunk_ensure @ 407
- ! HTChunk_terminate @ 408
-
- ;HTList.c @ 500
- HTList_new @ 501
- diff -c Library/Repository/User/ReleaseNotes.html:1.20 Library/Repository/User/ReleaseNotes.html:1.21
- *** Library/Repository/User/ReleaseNotes.html:1.20 Tue Jan 23 16:31:44 1996
- --- Library/Repository/User/ReleaseNotes.html Tue Jan 23 16:31:44 1996
- ***************
- *** 88,94 ****
- HREF="../Implementation/WWWMIME.html">WWWMIME.html</A>, and <A
- HREF="../Implementation/WWWFTP.html">WWWFTP.html</A> include files to be used by applications.
-
- ! <LI>Changed functions with the name <CODE>preemtive</CODE> to <CODE>preemptive</CODE> it was a spelling mistake
- </UL>
-
- <H2>Alpha Release 6, November 20 1995</H2>
- --- 88,94 ----
- HREF="../Implementation/WWWMIME.html">WWWMIME.html</A>, and <A
- HREF="../Implementation/WWWFTP.html">WWWFTP.html</A> include files to be used by applications.
-
- ! <LI>Changed functions with the name <CODE>preemptive</CODE> to <CODE>preemptive</CODE> it was a spelling mistake
- </UL>
-
- <H2>Alpha Release 6, November 20 1995</H2>
- diff -c Library/Repository/User/Architecture/Events.html:1.4 Library/Repository/User/Architecture/Events.html:1.5
- *** Library/Repository/User/Architecture/Events.html:1.4 Tue Jan 23 16:31:46 1996
- --- Library/Repository/User/Architecture/Events.html Tue Jan 23 16:31:46 1996
- ***************
- *** 23,31 ****
-
- <DL>
-
- ! <DT><B>Base Mode (preemtive)</B>
-
- ! <DD>In this mode all requests are handled in a preemtive way that does
- not allow for any events to pause the execution of a thread or kill
- it. This mode is in other words strictly single threaded and the major
- difference between this mode and the next two modes is that all
- --- 23,31 ----
-
- <DL>
-
- ! <DT><B>Base Mode (preemptive)</B>
-
- ! <DD>In this mode all requests are handled in a preemptive way that does
- not allow for any events to pause the execution of a thread or kill
- it. This mode is in other words strictly single threaded and the major
- difference between this mode and the next two modes is that all
- diff -c Library/Repository/User/Architecture/Threads.html:1.8 Library/Repository/User/Architecture/Threads.html:1.9
- *** Library/Repository/User/Architecture/Threads.html:1.8 Tue Jan 23 16:31:47 1996
- --- Library/Repository/User/Architecture/Threads.html Tue Jan 23 16:31:47 1996
- ***************
- *** 66,74 ****
- the same TCP socket. Net objects can be used in three different ways:
-
- <OL>
- ! <LI>All requests are preemtive and all I/O is blocking
- ! <LI>Requests are non-preemtive managed by an <EM>internal</EM> event loop
- ! <LI>Requests are non-preemtive managed by an <EM>external</EM> event loop
- </OL>
-
- The three modes are described in more detail in the section on <A HREF="Events.html">Internal and
- --- 66,74 ----
- the same TCP socket. Net objects can be used in three different ways:
-
- <OL>
- ! <LI>All requests are preemptive and all I/O is blocking
- ! <LI>Requests are non-preemptive managed by an <EM>internal</EM> event loop
- ! <LI>Requests are non-preemptive managed by an <EM>external</EM> event loop
- </OL>
-
- The three modes are described in more detail in the section on <A HREF="Events.html">Internal and
- diff -c Library/Repository/User/Architecture/choppy.html:1.17 Library/Repository/User/Architecture/choppy.html:1.18
- *** Library/Repository/User/Architecture/choppy.html:1.17 Tue Jan 23 16:31:48 1996
- --- Library/Repository/User/Architecture/choppy.html Tue Jan 23 16:31:48 1996
- ***************
- *** 747,755 ****
- the same TCP socket. Net objects can be used in three different ways:
-
- <OL>
- ! <LI>All requests are preemtive and all I/O is blocking
- ! <LI>Requests are non-preemtive managed by an <EM>internal</EM> event loop
- ! <LI>Requests are non-preemtive managed by an <EM>external</EM> event loop
- </OL>
-
- The three modes are described in more detail in the section on <A HREF="Events.html">Internal and
- --- 747,755 ----
- the same TCP socket. Net objects can be used in three different ways:
-
- <OL>
- ! <LI>All requests are preemptive and all I/O is blocking
- ! <LI>Requests are non-preemptive managed by an <EM>internal</EM> event loop
- ! <LI>Requests are non-preemptive managed by an <EM>external</EM> event loop
- </OL>
-
- The three modes are described in more detail in the section on <A HREF="Events.html">Internal and
- ***************
- *** 1048,1056 ****
-
- <DL>
-
- ! <DT><B>Base Mode (preemtive)</B>
-
- ! <DD>In this mode all requests are handled in a preemtive way that does
- not allow for any events to pause the execution of a thread or kill
- it. This mode is in other words strictly single threaded and the major
- difference between this mode and the next two modes is that all
- --- 1048,1056 ----
-
- <DL>
-
- ! <DT><B>Base Mode (preemptive)</B>
-
- ! <DD>In this mode all requests are handled in a preemptive way that does
- not allow for any events to pause the execution of a thread or kill
- it. This mode is in other words strictly single threaded and the major
- difference between this mode and the next two modes is that all
- diff -c Library/Repository/User/Patch/Overview.html:1.17.2.1 Library/Repository/User/Patch/Overview.html:1.17
- *** Library/Repository/User/Patch/Overview.html:1.17.2.1 Tue Jan 23 16:31:51 1996
- --- Library/Repository/User/Patch/Overview.html Tue Jan 23 16:31:51 1996
- ***************
- *** 1,7 ****
- <HTML>
- <HEAD>
- <TITLE>Known Bugs in W3C Reference Library</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 18-Jan-1996 -->
- </HEAD>
- <BODY>
-
- --- 1,7 ----
- <HTML>
- <HEAD>
- <TITLE>Known Bugs in W3C Reference Library</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 8-Jan-1996 -->
- </HEAD>
- <BODY>
-
- ***************
- *** 41,48 ****
- <H2>Library 4.0</H2>
-
- <UL>
- -
- - <LI><A HREF="lib_4.0_1.fix">SGML fix from Maciej Puzio for better error handling</A>
-
- <LI><A HREF="lib_4.0_bug_3.html">Generating DLLs under Windows using Borland compilers</A>
-
- --- 41,46 ----
- diff -c Library/Repository/User/Using/Methods.html:1.6 Library/Repository/User/Using/Methods.html:1.7
- *** Library/Repository/User/Using/Methods.html:1.6 Tue Jan 23 16:31:54 1996
- --- Library/Repository/User/Using/Methods.html Tue Jan 23 16:31:54 1996
- ***************
- *** 1,7 ****
- <HTML>
- <HEAD>
- <TITLE>Using - Access Modules</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 31-Oct-1995 -->
- </HEAD>
- <BODY>
-
- --- 1,7 ----
- <HTML>
- <HEAD>
- <TITLE>Using - Access Modules</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 17-Jan-1996 -->
- </HEAD>
- <BODY>
-
- ***************
- *** 36,42 ****
-
- <PRE>
- extern BOOL HTProtocol_add (CONST char * scheme,
- ! BOOL preemtive,
- HTEventCallBack * callback);
- </PRE>
-
- --- 36,42 ----
-
- <PRE>
- extern BOOL HTProtocol_add (CONST char * scheme,
- ! BOOL preemptive,
- HTEventCallBack * callback);
- </PRE>
-
- ***************
- *** 48,58 ****
- with the <A HREF="../../Implementation/HTTelnet.html">Telnet access module</A> which also can handle
- <B>rlogin</B> and <B>tn3270</B> terminal sessions. <P>
-
- ! The next argument describes to the Library whether it is capable of handling non-blocking sockets or
- ! not. This is normally a design decision when implementing the protocol module, and we will not
- ! stretch this argument anymore in this guide. The <A HREF="../Architecture/">Library Architecture</A>
- ! document discusses in more detail how a protocol module can be designed to support non-blocking
- ! sockets. <P>
-
- The last argument is the actual function name to call when a request has been issued and a protocol
- module has been found associated with the access scheme used. Even though it is not clear at this
- --- 48,61 ----
- with the <A HREF="../../Implementation/HTTelnet.html">Telnet access module</A> which also can handle
- <B>rlogin</B> and <B>tn3270</B> terminal sessions. <P>
-
- ! <A NAME="preemptive"></A>The <CODE>preemptive</CODE> argument describes to the Library whether it is
- ! capable of handling non-blocking sockets or not. This is normally a design decision when
- ! implementing the protocol module in that a module implemented for using blocking sockets normally
- ! can't use non-blocking sockets. However, the other way is often possible, and in some situations it
- ! is advantageous to use blocking sockets. The Library allows this to happen on a pr request basic as
- ! explained in the section <A HREF="Request.html#preemptive">"The Request Object"</A>. The <A
- ! HREF="../Architecture/">Library Architecture</A> document discusses in more detail how a protocol
- ! module can be designed to support non-blocking sockets. <P>
-
- The last argument is the actual function name to call when a request has been issued and a protocol
- module has been found associated with the access scheme used. Even though it is not clear at this
- diff -c Library/Repository/User/Using/Net.html:1.2.2.1 Library/Repository/User/Using/Net.html:1.2
- *** Library/Repository/User/Using/Net.html:1.2.2.1 Tue Jan 23 16:31:54 1996
- --- Library/Repository/User/Using/Net.html Tue Jan 23 16:31:55 1996
- ***************
- *** 1,7 ****
- <HTML>
- <HEAD>
- <TITLE>User Guide - Request Callback functions</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 21-Jan-1996 -->
- <NEXTID N="z78">
- </HEAD>
- <BODY>
- --- 1,7 ----
- <HTML>
- <HEAD>
- <TITLE>User Guide - Request Callback functions</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 12-Nov-1995 -->
- <NEXTID N="z78">
- </HEAD>
- <BODY>
- ***************
- *** 55,74 ****
- <DL>
- <DT>HT_ERROR
- <DD>An error occured
- - <DT>HT_INTERRUPTED
- - <DD>The request was interrupted
- <DT>HT_LOADED
- <DD>The document was loaded
- <DT>HT_NO_DATA
- <DD>OK, but no data
- <DT>HT_RETRY
- <DD>Retry request after at a later time
- ! <DT>HT_PERM_REDIRECT
- ! <DD>The request has been permanently redirected and we send back the new URL
- ! <DT>HT_TEMP_REDIRECT
- ! <DD>The request has been temporarily redirected and we send back the new URL
- ! <DT>HT_NO_ACCESS
- ! <DD>The request could not be fulfilled because it didn't contain sufficient credentials
- </DL>
-
- When a callback function is registered, it may be registered with a status code for which it is to
- --- 55,68 ----
- <DL>
- <DT>HT_ERROR
- <DD>An error occured
- <DT>HT_LOADED
- <DD>The document was loaded
- <DT>HT_NO_DATA
- <DD>OK, but no data
- <DT>HT_RETRY
- <DD>Retry request after at a later time
- ! <DT>HT_REDIRECT
- ! <DD>The request has been redirected and we send back the new URL
- </DL>
-
- When a callback function is registered, it may be registered with a status code for which it is to
- diff -c Library/Repository/User/Using/Request.html:1.8 Library/Repository/User/Using/Request.html:1.9
- *** Library/Repository/User/Using/Request.html:1.8 Tue Jan 23 16:31:55 1996
- --- Library/Repository/User/Using/Request.html Tue Jan 23 16:31:55 1996
- ***************
- *** 1,7 ****
- <HTML>
- <HEAD>
- <TITLE>Using the W3C Reference Library</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 4-Dec-1995 -->
- </HEAD>
- <BODY>
-
- --- 1,7 ----
- <HTML>
- <HEAD>
- <TITLE>Using the W3C Reference Library</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 17-Jan-1996 -->
- </HEAD>
- <BODY>
-
- ***************
- *** 382,400 ****
- extern void *HTRequest_context (HTRequest *request);
- </PRE>
-
- ! <H2>Preemtive or Non-preemtive Access</H2>
-
- ! A access scheme is defined with a default for using either preemtive
- ! (blocking I/O) or non-premitve (non-blocking I/O). This is basically a
- ! result of the implementation of the protocol module itself. However,
- ! if non-blocking I/O is the default then some times it is nice to be
- ! able to set the mode to blocking instead. For example when loading the
- ! first document (the home page) then blocking can be used instead of
- ! non-blocking.
-
- <PRE>
- ! extern void HTRequest_setPreemtive (HTRequest *request, BOOL mode);
- ! extern BOOL HTRequest_preemtive (HTRequest *request);
- </PRE>
-
- <H2>Format Negotiation</H2>
- --- 382,399 ----
- extern void *HTRequest_context (HTRequest *request);
- </PRE>
-
- ! <A NAME="preemptive"><H2>Preemptive or Non-preemptive Access</H2></A>
-
- ! A access scheme is registered with a default for using either preemptive (blocking I/O) or
- ! non-premitve (non-blocking I/O). This is basically a result of the implementation of the protocol
- ! module itself and is explained in the section <A HREF="Methods.html#preemptive">Registering Access
- ! Schemes</A>. However, if non-blocking I/O is the default then some times it is nice to be able to
- ! set the mode to blocking instead. For example when loading the first document (the home page) then
- ! blocking can be used instead of non-blocking.
-
- <PRE>
- ! extern void HTRequest_setPreemptive (HTRequest *request, BOOL mode);
- ! extern BOOL HTRequest_preemptive (HTRequest *request);
- </PRE>
-
- <H2>Format Negotiation</H2>
- diff -c Library/Repository/User/Using/Startup.html:1.10 Library/Repository/User/Using/Startup.html:1.11
- *** Library/Repository/User/Using/Startup.html:1.10 Tue Jan 23 16:31:56 1996
- --- Library/Repository/User/Using/Startup.html Tue Jan 23 16:31:56 1996
- ***************
- *** 200,206 ****
-
- <PRE>
- extern BOOL HTProtocol_add (const char * name,
- ! BOOL preemtive,
- HTEventCallBack * callback);
- </PRE>
-
- --- 200,206 ----
-
- <PRE>
- extern BOOL HTProtocol_add (const char * name,
- ! BOOL preemptive,
- HTEventCallBack * callback);
- </PRE>
-
- diff -c Library/Repository/User/Using/choppy.html:1.15 Library/Repository/User/Using/choppy.html:1.16
- *** Library/Repository/User/Using/choppy.html:1.15 Tue Jan 23 16:31:57 1996
- --- Library/Repository/User/Using/choppy.html Tue Jan 23 16:31:57 1996
- ***************
- *** 269,275 ****
-
- <PRE>
- extern BOOL HTProtocol_add (const char * name,
- ! BOOL preemtive,
- HTEventCallBack * callback);
- </PRE>
-
- --- 269,275 ----
-
- <PRE>
- extern BOOL HTProtocol_add (const char * name,
- ! BOOL preemptive,
- HTEventCallBack * callback);
- </PRE>
-
- ***************
- *** 841,847 ****
-
- <PRE>
- extern BOOL HTProtocol_add (CONST char * scheme,
- ! BOOL preemtive,
- HTEventCallBack * callback);
- </PRE>
-
- --- 841,847 ----
-
- <PRE>
- extern BOOL HTProtocol_add (CONST char * scheme,
- ! BOOL preemptive,
- HTEventCallBack * callback);
- </PRE>
-
- ***************
- *** 2169,2177 ****
- extern void *HTRequest_context (HTRequest *request);
- </PRE>
-
- ! <H2>Preemtive or Non-preemtive Access</H2>
-
- ! A access scheme is defined with a default for using either preemtive
- (blocking I/O) or non-premitve (non-blocking I/O). This is basically a
- result of the implementation of the protocol module itself. However,
- if non-blocking I/O is the default then some times it is nice to be
- --- 2169,2177 ----
- extern void *HTRequest_context (HTRequest *request);
- </PRE>
-
- ! <H2>Preemptive or Non-preemptive Access</H2>
-
- ! A access scheme is defined with a default for using either preemptive
- (blocking I/O) or non-premitve (non-blocking I/O). This is basically a
- result of the implementation of the protocol module itself. However,
- if non-blocking I/O is the default then some times it is nice to be
- ***************
- *** 2180,2187 ****
- non-blocking.
-
- <PRE>
- ! extern void HTRequest_setPreemtive (HTRequest *request, BOOL mode);
- ! extern BOOL HTRequest_preemtive (HTRequest *request);
- </PRE>
-
- <H2>Format Negotiation</H2>
- --- 2180,2187 ----
- non-blocking.
-
- <PRE>
- ! extern void HTRequest_setPreemptive (HTRequest *request, BOOL mode);
- ! extern BOOL HTRequest_preemptive (HTRequest *request);
- </PRE>
-
- <H2>Format Negotiation</H2>
- diff -c LineMode/Repository/Defaults/Commands.html:1.9 LineMode/Repository/Defaults/Commands.html:1.10
- *** LineMode/Repository/Defaults/Commands.html:1.9 Tue Jan 23 16:31:59 1996
- --- LineMode/Repository/Defaults/Commands.html Tue Jan 23 16:31:59 1996
- ***************
- *** 1,7 ****
- <HTML>
- <HEAD>
- <TITLE>Line Mode Browser Commands</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 14-Oct-1995 -->
- <NEXTID N="z17">
- </HEAD>
- <BODY>
- --- 1,7 ----
- <HTML>
- <HEAD>
- <TITLE>Line Mode Browser Commands</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 19-Jan-1996 -->
- <NEXTID N="z17">
- </HEAD>
- <BODY>
- ***************
- *** 122,127 ****
- --- 122,142 ----
- server. The syntax is the same as for PUT.
-
- </DL>
- +
- + <H3>Delete a Document on a remote server</H3>
- +
- + You can also use the DELETE method i the Line Mode browser to remove a
- + document on a remote HTTP server.
- +
- + <DL>
- + <DT><A NAME="delete"><B>delete</B></A>
- +
- + <DD>Deletes a document (DELETE) on remote HTTP server. Example
- +
- + <PRE>
- + delete
- + URL to delete: http://www.w3.org
- + </PRE>
-
- <H3>Killer Features</H3>
-
- diff -c LineMode/Repository/Implementation/HTBrowse.c:1.107.2.1 LineMode/Repository/Implementation/HTBrowse.c:1.107
- *** LineMode/Repository/Implementation/HTBrowse.c:1.107.2.1 Tue Jan 23 16:32:01 1996
- --- LineMode/Repository/Implementation/HTBrowse.c Tue Jan 23 16:32:01 1996
- ***************
- *** 137,142 ****
- --- 137,143 ----
- typedef struct _LineMode {
- HTRequest * request;
- HTParentAnchor * anchor;
- + HTParentAnchor * dest; /* Destination for PUT etc. */
- struct timeval * tv; /* Timeout on socket */
- HTList * active; /* List of acitve contexts */
- HTList * converters;
- ***************
- *** 163,169 ****
- LMState state;
- HTRequest * request;
- LineMode * lm;
- - HTParentAnchor * source; /* The source if we are using PUT or POST */
- } Context;
-
- #ifndef WWW_WIN_WINDOW
- --- 164,169 ----
- ***************
- *** 544,558 ****
- HTMethod_name(HTLink_method(link)), HTLink_result(link));
- doit = confirm(req, msg);
- free(msg);
- ! } else {
- ! HTAnchor_removeAllLinks((HTAnchor *) src);
- HTAnchor_link((HTAnchor *) src, (HTAnchor *) dest, NULL, method);
- - }
- if (doit) {
- ! HTRequest * new_request = Thread_new(lm, YES, LM_UPDATE);
- ! Context * new_context = (Context *) HTRequest_context(new_request);
- ! new_context->source = src;
- ! status = HTCopyAnchor((HTAnchor *) src, new_request);
- }
- free(fd);
- free(fs);
- --- 544,554 ----
- HTMethod_name(HTLink_method(link)), HTLink_result(link));
- doit = confirm(req, msg);
- free(msg);
- ! } else
- HTAnchor_link((HTAnchor *) src, (HTAnchor *) dest, NULL, method);
- if (doit) {
- ! req = Thread_new(lm, YES, LM_UPDATE);
- ! status = HTCopyAnchor((HTAnchor *) src, req);
- }
- free(fd);
- free(fs);
- ***************
- *** 564,590 ****
- }
-
- /*
- - ** Delete a URL
- - */
- - PRIVATE int DeleteURL (LineMode * lm, HTRequest * request)
- - {
- - char * base = HTAnchor_address((HTAnchor*) HTMainAnchor);
- - char * url = NULL;
- - int status = HT_INTERNAL;
- - if ((url = AskUser(request, "URL to delete:", base)) != NULL) {
- - char * full = HTParse(HTStrip(url), base, PARSE_ALL);
- - HTParentAnchor * anchor=(HTParentAnchor *) HTAnchor_findAddress(full);
- - request = Thread_new(lm, YES, LM_UPDATE);
- - HTRequest_setMethod(request, METHOD_DELETE);
- - status = HTLoadAnchor((HTAnchor *) anchor, request);
- - free(full);
- - }
- - FREE(base);
- - FREE(url);
- - return status;
- - }
- -
- - /*
- ** This function puts up a stream to a file in order to save a document. This
- ** is activated by '>', '>>' or '>!' from the prompt line.
- */
- --- 560,565 ----
- ***************
- *** 735,743 ****
- break;
-
- case 'D':
- ! if (CHECK_INPUT("DELETE", token)) { /* DELETE */
- ! status = DeleteURL(lm, req);
- ! } else if (CHECK_INPUT("DOWN", token)) { /* Scroll down one page */
- down:
- if (HText_canScrollDown(HTMainText))
- HText_scrollDown(HTMainText);
- --- 710,716 ----
- break;
-
- case 'D':
- ! if (CHECK_INPUT("DOWN", token)) { /* Scroll down one page */
- down:
- if (HText_canScrollDown(HTMainText))
- HText_scrollDown(HTMainText);
- ***************
- *** 1211,1285 ****
- #endif
- }
-
- - /* authentication_handler
- - ** ----------------------
- - ** This function is registered to handle access authentication,
- - ** for example for HTTP
- - */
- - PRIVATE int authentication_handler (HTRequest * request, int status)
- - {
- - Context * context = (Context *) HTRequest_context(request);
- - LineMode * lm = context->lm;
- -
- - /* Ask the authentication module for getting credentials */
- - if (HTAA_authentication(request) && HTAA_retryWithAuth(request)) {
- - HTMethod method = HTRequest_method(request);
- -
- - /* Make sure we do a reload from cache */
- - HTRequest_setReloadMode(request, HT_FORCE_RELOAD);
- -
- - /* Log current request */
- - if (HTLog_isOpen()) HTLog_add(request, status);
- -
- - /* Start request with new credentials */
- - if (HTMethod_hasEntity(method)) { /* PUT, POST etc. */
- - HTCopyAnchor((HTAnchor *) context->source, request);
- - } else /* GET, HEAD, DELETE etc. */
- - HTLoadAnchor((HTAnchor *) HTRequest_anchor(request), request);
- - } else {
- - TTYPrint(OUTPUT, "Access deniedn");
- - if (!HTAlert_interactive()) Cleanup(lm, -1);
- - }
- - return HT_ERROR; /* Make sure this is the last callback in the list */
- - }
- -
- - /* redirection_handler
- - ** -------------------
- - ** This function is registered to handle permanent and temporary
- - ** redirections
- - */
- - PRIVATE int redirection_handler (HTRequest * request, int status)
- - {
- - Context * context = (Context *) HTRequest_context(request);
- - HTMethod method = HTRequest_method(request);
- - LineMode * lm = context->lm;
- - HTAnchor * new_anchor = HTRequest_redirection(request);
- -
- - /* Make sure we do a reload from cache */
- - HTRequest_setReloadMode(request, HT_FORCE_RELOAD);
- -
- - /* If destination specified then bind source anchor with new destination */
- - if (HTMethod_hasEntity(method)) {
- - HTAnchor_removeAllLinks((HTAnchor *) context->source);
- - HTAnchor_link((HTAnchor *) context->source, new_anchor, NULL, method);
- - }
- -
- - /* Log current request */
- - if (HTLog_isOpen()) HTLog_add(request, status);
- -
- - /* Start new request */
- - if (HTRequest_retry(request)) {
- - if (HTMethod_hasEntity(method)) /* PUT, POST etc. */
- - HTCopyAnchor((HTAnchor *) context->source, request);
- - else /* GET, HEAD, DELETE etc. */
- - HTLoadAnchor(new_anchor, request);
- - } else {
- - TTYPrint(OUTPUT, "Too many redirections detectedn");
- - if (!HTAlert_interactive()) Cleanup(lm, -1);
- - }
- - return HT_ERROR; /* Make sure this is the last callback in the list */
- - }
- -
- /* terminate_handler
- ** -----------------
- ** This function is registered to handle the result of the request
- --- 1184,1189 ----
- ***************
- *** 1386,1396 ****
- arc.locale=0; arc.encoding=0; arc.i_encoding=0; doinull();
- #endif
-
- - /* Create a new Line Mode object */
- lm = LineMode_new();
- -
- /* Initiate W3C Reference Library */
- HTLibInit(APP_NAME, APP_VERSION);
-
- /* Initialize the protocol modules */
- HTAccessInit();
- --- 1290,1299 ----
- arc.locale=0; arc.encoding=0; arc.i_encoding=0; doinull();
- #endif
-
- lm = LineMode_new();
- /* Initiate W3C Reference Library */
- HTLibInit(APP_NAME, APP_VERSION);
- + lm = LineMode_new();
-
- /* Initialize the protocol modules */
- HTAccessInit();
- ***************
- *** 1748,1758 ****
- }
-
- /* Register a call back function for the Net Manager */
- ! HTNetCall_addBefore(HTLoadStart, 0);
- ! HTNetCall_addAfter(authentication_handler, HT_NO_ACCESS);
- ! HTNetCall_addAfter(redirection_handler, HT_PERM_REDIRECT);
- ! HTNetCall_addAfter(redirection_handler, HT_TEMP_REDIRECT);
- ! HTNetCall_addAfter(HTLoadTerminate, HT_ALL);
- HTNetCall_addAfter(terminate_handler, HT_ALL);
-
- /* Register our own MIME header handler for extra headers */
- --- 1651,1657 ----
- }
-
- /* Register a call back function for the Net Manager */
- ! HTNetInit();
- HTNetCall_addAfter(terminate_handler, HT_ALL);
-
- /* Register our own MIME header handler for extra headers */
- diff -c LineMode/Repository/Implementation/Version.make:1.35.2.1 LineMode/Repository/Implementation/Version.make:1.35
- *** LineMode/Repository/Implementation/Version.make:1.35.2.1 Tue Jan 23 16:32:02 1996
- --- LineMode/Repository/Implementation/Version.make Tue Jan 23 16:32:02 1996
- ***************
- *** 1 ****
- ! VL = 4.0C
- --- 1 ----
- ! VL = 4.0B
- diff -c ComLine/Repository/Implementation/HTLine.c:1.8.2.1 ComLine/Repository/Implementation/HTLine.c:1.8
- *** ComLine/Repository/Implementation/HTLine.c:1.8.2.1 Tue Jan 23 16:32:04 1996
- --- ComLine/Repository/Implementation/HTLine.c Tue Jan 23 16:32:05 1996
- ***************
- *** 65,71 ****
- HTRequest * request;
- HTParentAnchor * anchor;
- HTParentAnchor * dest; /* Destination for PUT etc. */
- - HTMethod method; /* What method are we envoking */
- struct timeval * tv; /* Timeout on socket */
- char * cwd; /* Current dir URL */
- char * rules;
- --- 65,70 ----
- ***************
- *** 155,226 ****
- TTYPrint(OUTPUT,"Please send feedback to <libwww@w3.org>n");
- }
-
- - /* authentication_handler
- - ** ----------------------
- - ** This function is registered to handle access authentication,
- - ** for example for HTTP
- - */
- - PRIVATE int authentication_handler (HTRequest * request, int status)
- - {
- - ComLine * cl = (ComLine *) HTRequest_context(request);
- -
- - /* Ask the authentication module for getting credentials */
- - if (HTAA_authentication(request) && HTAA_retryWithAuth(request)) {
- -
- - /* Make sure we do a reload from cache */
- - HTRequest_setReloadMode(request, HT_FORCE_RELOAD);
- -
- - /* Log current request */
- - if (HTLog_isOpen()) HTLog_add(request, status);
- -
- - /* Start request with new credentials */
- - if (cl->dest) /* PUT, POST etc. */
- - HTCopyAnchor((HTAnchor *) cl->anchor, cl->request);
- - else /* GET, HEAD, DELETE etc. */
- - HTLoadAnchor((HTAnchor *) cl->anchor, cl->request);
- - } else {
- - TTYPrint(OUTPUT, "Access deniedn");
- - Cleanup(cl, -1);
- - }
- - return HT_ERROR; /* Make sure this is the last callback in the list */
- - }
- -
- - /* redirection_handler
- - ** -------------------
- - ** This function is registered to handle permanent and temporary
- - ** redirections
- - */
- - PRIVATE int redirection_handler (HTRequest * request, int status)
- - {
- - BOOL result = YES;
- - ComLine * cl = (ComLine *) HTRequest_context(request);
- - HTAnchor * new_anchor = HTRequest_redirection(request);
- -
- - /* Make sure we do a reload from cache */
- - HTRequest_setReloadMode(request, HT_FORCE_RELOAD);
- -
- - /* If destination specified then bind together anchors */
- - if (cl->dest) {
- - HTAnchor_removeAllLinks((HTAnchor *) cl->anchor);
- - HTAnchor_link((HTAnchor *) cl->anchor, new_anchor, NULL, cl->method);
- - }
- -
- - /* Log current request */
- - if (HTLog_isOpen()) HTLog_add(request, status);
- -
- - /* Start new request */
- - if (HTRequest_retry(request)) {
- - if (cl->dest) /* PUT, POST etc. */
- - result = HTCopyAnchor((HTAnchor *) cl->anchor, cl->request);
- - else /* GET, HEAD, DELETE etc. */
- - result = HTLoadAnchor(new_anchor, cl->request);
- - } else {
- - TTYPrint(OUTPUT, "Too many redirections detectedn");
- - Cleanup(cl, -1);
- - }
- - return HT_ERROR; /* Make sure this is the last callback in the list */
- - }
- -
- /* terminate_handler
- ** -----------------
- ** This function is registered to handle the result of the request
- --- 154,159 ----
- ***************
- *** 234,247 ****
- TTYPrint(OUTPUT, "Content Length found to be %ldn",
- HTAnchor_length(cl->anchor));
- }
- }
- - } else {
- - HTAlertCallback *cbf = HTAlert_find(HT_A_MESSAGE);
- - if (cbf) (*cbf)(request, HT_A_MESSAGE, HT_MSG_NULL, NULL,
- - HTRequest_error(request), NULL);
- }
- if (HTLog_isOpen()) HTLog_add(request, status);
- - Cleanup(cl, status == HT_LOADED ? 0 : -1);
- return HT_OK;
- }
-
- --- 167,176 ----
- TTYPrint(OUTPUT, "Content Length found to be %ldn",
- HTAnchor_length(cl->anchor));
- }
- + Cleanup(cl, status == HT_LOADED ? 0 : -1);
- }
- }
- if (HTLog_isOpen()) HTLog_add(request, status);
- return HT_OK;
- }
-
- ***************
- *** 300,306 ****
-
- /* Initiate W3C Reference Library */
- HTLibInit(APP_NAME, APP_VERSION);
- - HTAlert_setInteractive(YES);
-
- /* Initialize the protocol modules */
- HTProtocol_add("http", NO, HTLoadHTTP, NULL);
- --- 229,234 ----
- ***************
- *** 445,467 ****
- } else if (!strcasecomp(argv[arg], "-delete")) {
- HTRequest_setMethod(cl->request, METHOD_DELETE);
-
- - /*
- - ** Note that we for PUT and POST still use the GET method as we
- - ** store methods in a POST web in the link relationship between
- - ** anchors. This allows us to have multiple destinations each
- - ** with their own method as described in the POST web in the online
- - ** documentation of the Library
- - */
- -
- /* POST Method */
- } else if (!strcasecomp(argv[arg], "-post")) {
- ! cl->method = METHOD_POST;
- ! HTRequest_setMethod(cl->request, METHOD_GET);
-
- /* PUT Method */
- } else if (!strcasecomp(argv[arg], "-put")) {
- ! cl->method = METHOD_PUT;
- ! HTRequest_setMethod(cl->request, METHOD_GET);
-
- } else {
- if (SHOW_MSG) TTYPrint(TDEST,"Bad Argument (%s)n", argv[arg]);
- --- 373,385 ----
- } else if (!strcasecomp(argv[arg], "-delete")) {
- HTRequest_setMethod(cl->request, METHOD_DELETE);
-
- /* POST Method */
- } else if (!strcasecomp(argv[arg], "-post")) {
- ! HTRequest_setMethod(cl->request, METHOD_POST);
-
- /* PUT Method */
- } else if (!strcasecomp(argv[arg], "-put")) {
- ! HTRequest_setMethod(cl->request, METHOD_PUT);
-
- } else {
- if (SHOW_MSG) TTYPrint(TDEST,"Bad Argument (%s)n", argv[arg]);
- ***************
- *** 493,501 ****
- Cleanup(cl, -1);
- }
-
- ! /* If destination specified then bind together anchors */
- ! if (cl->dest) HTAnchor_link((HTAnchor*)cl->anchor,
- ! (HTAnchor*)cl->dest, NULL, cl->method);
-
- /* Output file specified? */
- if (cl->outputfile) {
- --- 411,421 ----
- Cleanup(cl, -1);
- }
-
- ! /* Destination specified? */
- ! if (cl->dest) {
- ! HTMethod method = HTRequest_method(cl->request);
- ! HTAnchor_link((HTAnchor*)cl->anchor, (HTAnchor*)cl->dest, NULL,method);
- ! }
-
- /* Output file specified? */
- if (cl->outputfile) {
- ***************
- *** 530,545 ****
-
- /* Register our User Prompts etc in the Alert Manager */
- if (HTAlert_interactive()) {
- - HTAlert_add(HTProgress, HT_A_PROGRESS);
- HTAlert_add(HTError_print, HT_A_MESSAGE);
- HTAlert_add(HTPromptUsernameAndPassword, HT_A_USER_PW);
- -
- }
-
- /* Register a call back function for the Net Manager */
- - HTNetCall_addAfter(authentication_handler, HT_NO_ACCESS);
- - HTNetCall_addAfter(redirection_handler, HT_PERM_REDIRECT);
- - HTNetCall_addAfter(redirection_handler, HT_TEMP_REDIRECT);
- HTNetCall_addAfter(terminate_handler, HT_ALL);
-
- /* Register our own MIME header handler for extra headers */
- --- 450,460 ----
- ***************
- *** 569,580 ****
- if (cl->dest) /* PUT, POST etc. */
- status = HTCopyAnchor((HTAnchor *) cl->anchor, cl->request);
- else if (keywords) /* Search */
- - /*
- - ** Note that a search also can be done by creating a URL with the '?'
- - ** and the set of keywords embedded and then use HTLoadAnchor directly
- - */
- status = HTSearch(HTChunk_data(keywords), cl->anchor, cl->request);
- ! else /* GET, HEAD, DELETE etc. */
- status = HTLoadAnchor((HTAnchor *) cl->anchor, cl->request);
-
- if (keywords) HTChunk_delete(keywords);
- --- 484,491 ----
- if (cl->dest) /* PUT, POST etc. */
- status = HTCopyAnchor((HTAnchor *) cl->anchor, cl->request);
- else if (keywords) /* Search */
- status = HTSearch(HTChunk_data(keywords), cl->anchor, cl->request);
- ! else /* GET, HEAD etc. */
- status = HTLoadAnchor((HTAnchor *) cl->anchor, cl->request);
-
- if (keywords) HTChunk_delete(keywords);
- diff -c ComLine/Repository/Implementation/Version.make:1.8.2.1 ComLine/Repository/Implementation/Version.make:1.8
- *** ComLine/Repository/Implementation/Version.make:1.8.2.1 Tue Jan 23 16:32:06 1996
- --- ComLine/Repository/Implementation/Version.make Tue Jan 23 16:32:06 1996
- ***************
- *** 1 ****
- ! VT = 4.0C
- --- 1 ----
- ! VT = 4.0B
- diff -c ComLine/Repository/User/CommandLine.html:1.3 ComLine/Repository/User/CommandLine.html:1.4
- *** ComLine/Repository/User/CommandLine.html:1.3 Tue Jan 23 16:32:09 1996
- --- ComLine/Repository/User/CommandLine.html Tue Jan 23 16:32:09 1996
- ***************
- *** 1,7 ****
- <HTML>
- <HEAD>
- <TITLE>Command Line Syntax for the W3C Command Line Tool</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 29-Nov-1995 -->
- <NEXTID N="z29">
- </HEAD>
-
- --- 1,7 ----
- <HTML>
- <HEAD>
- <TITLE>Command Line Syntax for the W3C Command Line Tool</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 19-Jan-1996 -->
- <NEXTID N="z29">
- </HEAD>
-
- ***************
- *** 119,130 ****
- <DT><B>-put</B>
- <DD>Uploads a document from either the local file system or a remote HTTP server to a remote HTTP
- server (destination) using <B>PUT</B> method. You must indicate the destination using the
- ! <CODE>-dest</CODE> command line option.
-
- <DT><B>-post</B>
- <DD>Uploads a document from either the local file system or a remote HTTP server to a remote HTTP
- server (destination) using <B>POST</B> method. You must indicate the destination using the
- ! <CODE>-dest</CODE> command line option.
-
- <DT><B>-link</B>
- <DD>Being implemented
- --- 119,130 ----
- <DT><B>-put</B>
- <DD>Uploads a document from either the local file system or a remote HTTP server to a remote HTTP
- server (destination) using <B>PUT</B> method. You must indicate the destination using the
- ! <B>-dest</B> command line option.
-
- <DT><B>-post</B>
- <DD>Uploads a document from either the local file system or a remote HTTP server to a remote HTTP
- server (destination) using <B>POST</B> method. You must indicate the destination using the
- ! <B>-dest</B> command line option.
-
- <DT><B>-link</B>
- <DD>Being implemented
- diff -c Robot/Repository/Implementation/HTRobot.c:1.6.2.2 Robot/Repository/Implementation/HTRobot.c:1.6
- *** Robot/Repository/Implementation/HTRobot.c:1.6.2.2 Tue Jan 23 16:32:12 1996
- --- Robot/Repository/Implementation/HTRobot.c Tue Jan 23 16:32:13 1996
- ***************
- *** 32,42 ****
- #define DEFAULT_OUTPUT_FILE "robot.out"
- #define DEFAULT_RULE_FILE "robot.conf"
- #define DEFAULT_LOG_FILE "robot.log"
- - #define DEFAULT_DEPTH 0
-
- #define SHOW_MSG (WWWTRACE || HTAlert_interactive())
-
- ! #define DEFAULT_TIMEOUT 10 /* timeout in seconds */
-
- #if defined(__svr4__)
- #define CATCH_SIG
- --- 32,41 ----
- #define DEFAULT_OUTPUT_FILE "robot.out"
- #define DEFAULT_RULE_FILE "robot.conf"
- #define DEFAULT_LOG_FILE "robot.log"
-
- #define SHOW_MSG (WWWTRACE || HTAlert_interactive())
-
- ! #define DEFAULT_TIMEOUT 60 /* timeout in seconds */
-
- #if defined(__svr4__)
- #define CATCH_SIG
- ***************
- *** 50,56 ****
-
- typedef struct _Robot {
- HTRequest * request;
- - HTRequest * timeout; /* Until we get a server eventloop */
- HTParentAnchor * anchor;
- int depth; /* How deep is our tree */
- HTList * hyperdoc; /* List of our HyperDoc Objects */
- --- 49,54 ----
- ***************
- *** 116,121 ****
- --- 114,123 ----
- /* Add this HyperDoc object to our list */
- if (!mr->hyperdoc) mr->hyperdoc = HTList_new();
- HTList_addObject(mr->hyperdoc, (void *) hd);
- +
- + if (SHOW_MSG)
- + TTYPrint(TDEST, "HyperDoc.... %p bound to anchor %p with depth %dn",
- + hd, anchor, depth);
- return hd;
- }
-
- ***************
- *** 146,155 ****
- me->cwd = HTFindRelatedName();
- me->output = OUTPUT;
-
- - /* We keep an extra timeout request object for the timeout_handler */
- - me->timeout = HTRequest_new();
- - HTRequest_setContext (me->timeout, me);
- -
- /* Bind the Robot object together with the Request Object */
- me->request = HTRequest_new();
- HTRequest_setContext (me->request, me);
- --- 148,153 ----
- ***************
- *** 270,288 ****
- /* timeout_handler
- ** ---------------
- ** This function is registered to handle timeout in select eventloop
- - **
- - ** BUG: This doesn't work as we don't get the right request object
- - ** back from the event loop
- */
- PRIVATE int timeout_handler (HTRequest * request)
- {
- Robot * mr = (Robot *) HTRequest_context(request);
- if (SHOW_MSG) TTYPrint(TDEST, "Robot....... Request timeout...n");
- - #if 0
- HTRequest_kill(request);
- Thread_delete(mr, request);
- ! #endif
- ! Cleanup(mr, -1);
- return HT_OK;
- }
-
- --- 268,281 ----
- /* timeout_handler
- ** ---------------
- ** This function is registered to handle timeout in select eventloop
- */
- PRIVATE int timeout_handler (HTRequest * request)
- {
- Robot * mr = (Robot *) HTRequest_context(request);
- if (SHOW_MSG) TTYPrint(TDEST, "Robot....... Request timeout...n");
- HTRequest_kill(request);
- Thread_delete(mr, request);
- ! if (HTNet_isEmpty()) Cleanup(mr, -1);
- return HT_OK;
- }
-
- ***************
- *** 317,327 ****
- Robot * mr = (Robot *) HTRequest_context(text->request);
- HTAnchor * dest = HTAnchor_followMainLink((HTAnchor *) anchor);
- HTParentAnchor * dest_parent = HTAnchor_parent(dest);
- - char * uri = HTAnchor_address((HTAnchor *) dest_parent);
- HyperDoc * hd = HTAnchor_document(dest_parent);
-
- - if (SHOW_MSG) TTYPrint(TDEST, "Robot....... Found `%s' - ", uri ? uri : "NULL");
- -
- /* Test whether we already have a hyperdoc for this document */
- if (mr->flags & MR_LINK && dest_parent && !hd) {
- HTParentAnchor * parent = HTRequest_parent(text->request);
- --- 310,317 ----
- ***************
- *** 329,351 ****
- int depth = last ? last->depth+1 : 0;
- HTRequest * newreq = Thread_new(mr, METHOD_GET);
- HyperDoc_new(mr, dest_parent, depth);
- ! HTRequest_setParent(newreq, HTRequest_anchor(text->request));
- ! if (depth >= mr->depth) {
- ! if (SHOW_MSG)
- ! TTYPrint(TDEST, "loading at depth %d using HEADn", depth);
- ! HTRequest_setMethod(newreq, METHOD_HEAD);
- ! HTRequest_setOutputFormat(newreq, WWW_MIME);
- ! } else {
- ! if (SHOW_MSG) TTYPrint(TDEST, "loading at depth %dn", depth);
- }
- if (HTLoadAnchor((HTAnchor *) dest_parent, newreq) != YES) {
- ! if (SHOW_MSG) TTYPrint(TDEST, "not tested!n");
- Thread_delete(mr, newreq);
- }
- - } else {
- - if (SHOW_MSG) TTYPrint(TDEST, "duplicaten");
- }
- - FREE(uri);
- }
- }
-
- --- 319,334 ----
- int depth = last ? last->depth+1 : 0;
- HTRequest * newreq = Thread_new(mr, METHOD_GET);
- HyperDoc_new(mr, dest_parent, depth);
- ! if (SHOW_MSG) {
- ! char * uri = HTAnchor_address((HTAnchor *) dest_parent);
- ! TTYPrint(TDEST, "Robot....... Loading `%s'n", uri);
- ! free(uri);
- }
- if (HTLoadAnchor((HTAnchor *) dest_parent, newreq) != YES) {
- ! if (SHOW_MSG) TTYPrint(TDEST, "Robot...... URI Not tested!n");
- Thread_delete(mr, newreq);
- }
- }
- }
- }
-
- ***************
- *** 479,486 ****
- /* load anchors */
- } else if (!strcmp(argv[arg], "-link")) {
- mr->flags |= MR_LINK;
- - mr->depth = (arg+1 < argc && *argv[arg+1] != '-') ?
- - atoi(argv[++arg]) : DEFAULT_DEPTH;
-
- /* preemtive or non-preemtive access */
- } else if (!strcmp(argv[arg], "-single")) {
- --- 462,467 ----
- ***************
- *** 523,529 ****
- if (!keycnt) {
- char * ref = HTParse(argv[arg], mr->cwd, PARSE_ALL);
- mr->anchor = (HTParentAnchor *) HTAnchor_findAddress(ref);
- - HyperDoc_new(mr, mr->anchor, 0);
- keycnt = 1;
- FREE(ref);
- } else { /* Check for successive keyword arguments */
- --- 504,509 ----
- ***************
- *** 591,597 ****
- HTNetCall_addAfter(terminate_handler, HT_ALL);
-
- /* Set timeout on sockets */
- ! HTEvent_registerTimeout(mr->tv, mr->timeout, timeout_handler, NO);
-
- /* Start the request */
- if (keywords) /* Search */
- --- 571,577 ----
- HTNetCall_addAfter(terminate_handler, HT_ALL);
-
- /* Set timeout on sockets */
- ! HTEvent_registerTimeout(mr->tv, mr->request, timeout_handler, NO);
-
- /* Start the request */
- if (keywords) /* Search */
- diff -c Robot/Repository/Implementation/Version.make:1.5.2.1 Robot/Repository/Implementation/Version.make:1.5
- *** Robot/Repository/Implementation/Version.make:1.5.2.1 Tue Jan 23 16:32:14 1996
- --- Robot/Repository/Implementation/Version.make Tue Jan 23 16:32:15 1996
- ***************
- *** 1 ****
- ! VR = 4.0C
- --- 1 ----
- ! VR = 4.0B
- diff -c Robot/Repository/User/CommandLine.html:1.2 Robot/Repository/User/CommandLine.html:1.3
- *** Robot/Repository/User/CommandLine.html:1.2 Tue Jan 23 16:32:17 1996
- --- Robot/Repository/User/CommandLine.html Tue Jan 23 16:32:17 1996
- ***************
- *** 1,7 ****
- <HTML>
- <HEAD>
- <TITLE>Command Line Syntax for the W3C Mini Robot</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 6-Dec-1995 -->
- <NEXTID N="z29">
- </HEAD>
-
- --- 1,7 ----
- <HTML>
- <HEAD>
- <TITLE>Command Line Syntax for the W3C Mini Robot</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 17-Jan-1996 -->
- <NEXTID N="z29">
- </HEAD>
-
- ***************
- *** 71,78 ****
- <DD>Specifies a log file with a list of visited documents. The default
- value is "www-log"
-
- ! <DT><B>-link</B>
- ! <DD>Fetch all links from this document
-
- <DT><B>-n</B>
- <DD>Non-interactive mode. Outputs the formatted document to the
- --- 71,82 ----
- <DD>Specifies a log file with a list of visited documents. The default
- value is "www-log"
-
- ! <DT><B>-link</B> [ n ]
- !
- ! <DD>Fetch all links from this document. By indicating an integer "n" as the parameter you can
- ! specify the depth of which the search should go. The default value is 0 which means that only the
- ! start page is searched. Level 1 insicates that the start page <B>and</B> all pages directly linked
- ! from the start page are searched.
-
- <DT><B>-n</B>
- <DD>Non-interactive mode. Outputs the formatted document to the
- diff -c Robot/Repository/User/Patch/Overview.html:1.1 Robot/Repository/User/Patch/Overview.html:1.2
- *** Robot/Repository/User/Patch/Overview.html:1.1 Tue Jan 23 16:32:19 1996
- --- Robot/Repository/User/Patch/Overview.html Tue Jan 23 16:32:19 1996
- ***************
- *** 1,7 ****
- <HTML>
- <HEAD>
- <TITLE>Known Bugs in W3C Mini Robot</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 6-Dec-1995 -->
- </HEAD>
- <BODY>
-
- --- 1,7 ----
- <HTML>
- <HEAD>
- <TITLE>Known Bugs in W3C Mini Robot</TITLE>
- ! <!-- Changed by: Henrik Frystyk Nielsen, 17-Jan-1996 -->
- </HEAD>
- <BODY>
-
- ***************
- *** 42,50 ****
-
- <HR>
-
- ! <UL>
- ! <LI>
- ! </UL>
-
- <P>
- <HR>
- --- 42,55 ----
-
- <HR>
-
- ! <H2>Robot 4.0</H2>
- !
- ! <DL>
- ! <DT><A HREF="robot_4.0_1.fix">Improvement patch</A>
- ! <DD>Fixes two problems in the anchor traversal and adds <B>depth</B> as a valid parameter so that
- ! you can specify how many hops to go from the start page.
- !
- ! </DL>
-
- <P>
- <HR>
- diff -c MiniServ/Repository/Implementation/Version.make:1.7.2.1 MiniServ/Repository/Implementation/Version.make:1.7
- *** MiniServ/Repository/Implementation/Version.make:1.7.2.1 Tue Jan 23 16:32:22 1996
- --- MiniServ/Repository/Implementation/Version.make Tue Jan 23 16:32:22 1996
- ***************
- *** 1 ****
- ! VS = 4.0C
- --- 1 ----
- ! VS = 4.0B
- diff -c MiniServ/Repository/User/CommandLine.html:1.2 MiniServ/Repository/User/CommandLine.html:1.3
- *** MiniServ/Repository/User/CommandLine.html:1.2 Tue Jan 23 16:32:24 1996
- --- MiniServ/Repository/User/CommandLine.html Tue Jan 23 16:32:25 1996
- ***************
- *** 129,136 ****
- <DT><B>-backlog</B> <n>
- <DD>Number of connections pending in the <CODE>listen</CODE> queue
-
- ! <DT><B>-preemtive</B>
- ! <DD>Preemtive (blocking) sockets
-
- </DL>
-
- --- 129,136 ----
- <DT><B>-backlog</B> <n>
- <DD>Number of connections pending in the <CODE>listen</CODE> queue
-
- ! <DT><B>-preemptive</B>
- ! <DD>Preemptive (blocking) sockets
-
- </DL>
-