亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? htwais.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*        *z++ = *p++ - '0';	q = strchr(p , '=');	if (!q) return 0;*/	s = strchr(q, ';');	/* (Check only) */	if (!s) return 0;	/* Bad! No ';';	*/        sor = z;		/* Remember where the size field was */	z++;			/* Skip record size for now	*/	for(p=q+1; *p!=';' ; ) {	   if (*p == HEX_ESCAPE) {	        char c;		unsigned int b;		p++;	        c = *p++;		b =   HTAsciiHexToChar(c);		c = *p++;		if (!c) break;	/* Odd number of chars! */		*z++ = (b<<4) + HTAsciiHexToChar(c);	    } else {	        *z++ = *p++;	/* Record */	    }	}	*sor = (z-sor-1);	/* Fill in size -- not counting size itself */	p++;			/* After semicolon: start of next record */    }#endif /* OLD_CODE */#ifdef HTDEBUG    if (PROT_TRACE) {	char *p;	HTTRACE(PROT_TRACE, "WAIS........ id (%d bytes) is " _ (int)docid->size);	for(p=docid->bytes; p<docid->bytes+docid->size; p++) {	    if ((*p >= ' ') && (*p<= '~')) /* Assume ASCII! */		HTTRACE(PROT_TRACE, "%c" _ *p);	    else		HTTRACE(PROT_TRACE, "<%x>" _ (unsigned)*p);	}	HTTRACE(PROT_TRACE, "\n");    }#endif /* HTDEBUG */    return docid;		/* Ok */    } /* WAIS_from_WWW *//*	Send a plain text record to the client		output_text_record()**	--------------------------------------*/PRIVATE void output_text_record (    HTStream *			target,    WAISDocumentText *		record,    boolean			quote_string_quotes,    boolean                    binary){  long count;  if (binary) {    (*target->isa->put_block)(target,			      record->DocumentText->bytes,			      record->DocumentText->size);    return;  }  for(count = 0; count < record->DocumentText->size; count++){    long ch = (unsigned char)record->DocumentText->bytes[count];    if (ch == 27) {	/* What is this in for? Tim */	    /* then we have an escape code */	    /* if the next letter is '(' or ')', then ignore two letters */	    if('(' == record->DocumentText->bytes[count + 1] ||		')' == record->DocumentText->bytes[count + 1])	    count += 1;             /* it is a term marker */	    else count += 4;		/* it is a paragraph marker */    } else if (ch == '\n' || ch == '\r') {	    PUTC('\n');    } else if ((ch=='\t') || isprint(ch)){	    PUTC(ch);    }   }} /* output text record *//*	Format A Search response for the client		display_search_response**	---------------------------------------** modified from tracy shen's version in wutil.c** displays either a text record or a set of headlines.*/void display_search_response (HTStructured *		target,			      SearchResponseAPDU *	response,			      char *			database,			      char *	 		keywords){  WAISSearchResponse  *info;  long i, k;  char line[LINE_BUFFER_SIZE];	/* For building strings to display */    BOOL archie =  strstr(database, "archie")!=0;	/* Specical handling */    HTTRACE(PROT_TRACE, "WAIS........ Displaying search response\n");  sprintf(line,	  "Index %s contains the following %d item%s relevant to '%s'.\n",	  database,	  (int)(response->NumberOfRecordsReturned),	  response->NumberOfRecordsReturned ==1 ? "" : "s",	  keywords);  PUTS(line);  PUTS("The first figure for each entry is its relative score, ");  PUTS("the second the number of lines in the item.");  START(HTML_MENU);  if ( response->DatabaseDiagnosticRecords != 0 ) {    info = (WAISSearchResponse *)response->DatabaseDiagnosticRecords;    i =0;     if (info->Diagnostics != NULL)      HTshowDiags((HTStream*)target, info->Diagnostics);    if ( info->DocHeaders != 0 ) {      for (k=0; info->DocHeaders[k] != 0; k++ ) {	WAISDocumentHeader* head = info->DocHeaders[k];	char * headline = trim_junk(head->Headline);	any * docid = head->DocumentID;	char * docname;			/* printable version of docid */	i++;/*	Make a printable string out of the document id.*/	HTTRACE(PROT_TRACE, "HTWAIS:  %2ld: Score: %4ld, lines:%4ld '%s'\n" _ i _ 		    (long int)(info->DocHeaders[k]->Score) _ 		    (long int)(info->DocHeaders[k]->Lines) _ 		    headline);	START(HTML_LI);	sprintf(line, "%4ld  %4ld  ",	    head->Score,	    head->Lines);	PUTS(line);	if (archie) {	    char * www_name = WWW_from_archie(headline);	    if (www_name) {		HTStartAnchor(target, NULL, www_name);		PUTS(headline);				END(HTML_A);		HT_FREE(www_name);	    } else {		 PUTS(headline);		 PUTS(" (bad file name)");	    }	} else { /* Not archie */	    docname =  WWW_from_WAIS(docid);	    if (docname) {		char * dbname = HTEscape(database, URL_XPALPHAS);                char types_array[1000]; /* bad */                char *type_escaped;                types_array[0] = 0;                if (head->Types) {                    int i;                    for (i = 0; head->Types[i]; i++)                      {                        if (i)                          strcat (types_array, ",");                        type_escaped = HTEscape (head->Types[i], URL_XALPHAS);                        strcat (types_array, type_escaped);                        HT_FREE(type_escaped);                      }                    HTTRACE(PROT_TRACE, "WAIS........ Types_array `%s\'\n" _ 			       types_array);		} else {                    strcat (types_array, "TEXT");		}		sprintf(line, "%s/%s/%d/%s",                        dbname,                        types_array,                        (int)(head->DocumentLength),                        docname);#ifdef OLD_CODE		sprintf(line, "%s/%s/%d/%s",		/* W3 address */				    dbname,		    head->Types ? head->Types[0] : "TEXT",		    (int)(head->DocumentLength),		    docname);#endif /* OLD_CODE */		HTStartAnchor(target, NULL, ( (head->Types) 		      && (!strcmp(head->Types[0], "URL"))) ? 			      headline : line); /* NT, Sep 93 */		PUTS(headline);		END(HTML_A);		HT_FREE(dbname);		HT_FREE(docname);	    } else {		 PUTS("(bad doc id)");	    }	  }      } /* next document header */    } /* if there were any document headers */        if ( info->ShortHeaders != 0 ) {      k =0;      while (info->ShortHeaders[k] != 0 ) {	i++;	PUTS( "(Short Header record, can't display)");      }    }    if ( info->LongHeaders != 0 ) {      k =0;      while (info->LongHeaders[k] != 0) {	i++;	PUTS( "\nLong Header record, can't display\n");      }    }    if ( info->Text != 0 ) {      k =0;      while (info->Text[k] != 0) {	i++;	PUTS( "\nText record\n");	output_text_record((HTStream*)target, info->Text[k++], false, false);      }    }    if ( info->Headlines != 0 ) {      k =0;      while (info->Headlines[k] != 0) {	i++;	PUTS( "\nHeadline record, can't display\n");	/* dsply_headline_record( info->Headlines[k++]); */      }    }    if ( info->Codes != 0 ) {      k =0;      while (info->Codes[k] != 0) {	i++;	PUTS( "\nCode record, can't display\n");	/* dsply_code_record( info->Codes[k++]); */      }    }  }				/* Loop: display user info */  END(HTML_MENU);  PUTC('\n'); ;}/*	HTWAISCleanup**	-----------**      This function closes the connection and frees memory.**      Returns YES on OK, else NO*/PRIVATE int HTWAISCleanup (HTRequest *req, int status){ HTNet* net; HTStream* input; wais_info* theWAISinfo = NULL; if (req)   {    net = HTRequest_net(req);    input = HTRequest_inputStream(req);    /* Free stream with data TO network */    if (HTRequest_isDestination(req))      HTRequest_removeDestination(req);     else      if (input)	{	 if (status == HT_INTERRUPTED)	   (*input->isa->abort)(input, NULL);	  else	   (*input->isa->_free)(input);	 HTRequest_setInputStream(req, NULL);	}    if (net)      {       if ((theWAISinfo = (wais_info*)HTNet_context(net)))	 {	  theWAISinfo->state = HTWAIS_CLEANUP;	  if (theWAISinfo->connection)	    close_connection_to_server(theWAISinfo->connection);	  if (theWAISinfo->wais_database)	    HT_FREE(theWAISinfo->wais_database);	  if (theWAISinfo->request_message)	    s_free(theWAISinfo->request_message);	  if (theWAISinfo->response_message)	    s_free(theWAISinfo->response_message);	  HT_FREE(theWAISinfo->names);	  HT_FREE(theWAISinfo->basetitle);	  if (status < 0)	    {	     HTParentAnchor* anchor;	     char* unescaped = NULL;	     void* err_par;	     unsigned int err_par_length;	     if ((anchor = HTRequest_anchor(req)))   /* Be robust */	       {		char* arg;		if ((arg = HTAnchor_physical(anchor)))		  {		   StrAllocCopy(unescaped, arg);		   HTUnEscape(unescaped);		  }	       }	     if (unescaped)	       {		err_par = (void*)unescaped;		err_par_length = (unsigned int)(strlen(unescaped));	       }	      else	       {		err_par = (void*)"???";		err_par_length = 3;	       }	     HTRequest_addError(req, ERR_FATAL, NO, HTERR_INTERNAL,				err_par, err_par_length, "HTLoadWAIS");	     if (unescaped) HT_FREE(unescaped);	    }	  /* Free and remove our own context structure for wais */	  HT_FREE(theWAISinfo);	  HTNet_setContext(net, NULL);	 }       /* End ``if (theWAISinfo)'' */       /* Remove the request object */       HTNet_delete(net, status);      }    return YES;   }  else   return NO;}/*	Load Document from WAIS Server				HTLoadWAIS()**	------------------------------**** On entry,**	request		This is the request structure** On exit,**	returns		<0		Error has occured**			HT_LOADED	OK*/#define MAX_KEYWORDS_LENGTH 4000#define MAX_SERVER_LENGTH   1000#define MAX_DATABASE_LENGTH 1000#define MAX_SERVICE_LENGTH  1000PRIVATE int HTWAISEvent(SOCKET soc, void * pVoid, HTEventType type){ wais_info* theWAISinfo;  /* Specific protocol information */ HTNet* net;              /* Generic protocol information */ HTRequest* request; HTParentAnchor* anchor; const char * arg; HTStream* sink; HTFormat format_out;#if 0 static const char * error_header = "<h1>Access error</h1>\n<p>The following error occured in accesing a WAIS server:\n</p>\n";#endif char* key;			  /* pointer to keywords in URL */ long request_buffer_length;	/* how of the request is left */ SearchResponseAPDU* retrieval_response = 0; char keywords[MAX_KEYWORDS_LENGTH + 1]; char* server_name = NULL; char* service; char* docname = NULL; char* doctype = NULL; long document_length = -1; BOOL ok = NO; int status = HT_ERROR;#if 0 FILE* connection = 0; char* names;		/* Copy of arg to be hacked up */ char* basetitle = NULL; char* wais_database = NULL;    /* name of current database */ char*  www_database = NULL;    /* Same name escaped */ char*  request_message = NULL; /* arbitrary message limit */ char* response_message = NULL; /* arbitrary message limit */#endif    #if 0 extern FILE * connect_to_server();#endif if ((theWAISinfo = (wais_info*)pVoid))   /* Be robust */   {    if ((net = theWAISinfo->net) == NULL) return HT_ERROR;    if ((request = HTNet_request(net)) == NULL) return HT_ERROR;    if ((anchor = HTRequest_anchor(request)))      arg = HTAnchor_physical(anchor);     else      return HT_ERROR;    sink = HTRequest_outputStream(request);    format_out = HTRequest_outputFormat(request);   }  else   return HT_ERROR;     if (type == HTEvent_BEGIN)   {    theWAISinfo->state  = HTWAIS_BEGIN;    theWAISinfo->result = HT_ERROR;   }  else   if (type == HTEvent_CLOSE)     {     /* Interrupted */      char interrupted[] = "request interruption";      HTRequest_addError(request, ERR_FATAL, NO, HTERR_INTERRUPTED,			 (void*)interrupted, (unsigned int)strlen(interrupted),			 "HTLoadWAIS");      HTWAISCleanup(request, HT_INTERRUPTED);      return HT_OK;     }    else     if (type == HTEvent_END)       {	HTWAISCleanup(request, (theWAISinfo ? theWAISinfo->result : HT_ERROR));	return HT_OK;       } /*	Decipher and check syntax of WWW address: **	---------------------------------------- ** **	First we remove the "wais:" if it was spcified.  920110 */ if (!acceptable_inited) init_acceptable(); theWAISinfo->state = HTWAIS_PARSING_URL; HTTRACE(PROT_TRACE, "HTLoadWAIS.. Looking for \"%s\"\n" _ arg); theWAISinfo->names = HTParse(arg, "",			      PARSE_HOST | PARSE_PATH | PARSE_PUNCTUATION); key = strchr(theWAISinfo->names, '?'); if (key)   {    char* p;    *key++ = 0;	/* Split off keywords */    for (p=key; *p; p++) if (*p == '+') *p = ' ';    HTUnEscape(key);   } if (theWAISinfo->names[0] == '/')   {    server_name = theWAISinfo->names+1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区三区在线不卡| 在线亚洲一区二区| 亚洲动漫第一页| 亚洲美女淫视频| 亚洲视频免费在线观看| 一区二区三区四区精品在线视频| 国产欧美一区二区在线观看| 精品久久久久av影院| 国产欧美日韩久久| 亚洲欧洲av在线| 午夜精品久久久久影视| 免费在线观看一区二区三区| 视频一区二区国产| 国产剧情av麻豆香蕉精品| 成人av第一页| 欧美性受xxxx| 精品国产1区2区3区| 国产精品剧情在线亚洲| 亚洲成av人影院| 国产精品一区二区在线观看网站| 粉嫩绯色av一区二区在线观看| 色婷婷av一区| 国产欧美精品一区二区色综合 | 亚洲一区二区三区三| 免费日本视频一区| 亚洲精选视频在线| 国产精品欧美久久久久无广告| 亚洲一区二区视频在线观看| 紧缚奴在线一区二区三区| 欧美在线视频全部完| 久久精品人人做人人爽人人| 亚洲成av人片观看| 成人成人成人在线视频| 亚洲精品一区二区三区在线观看| 日韩高清不卡一区二区| 国产精品资源站在线| 在线精品视频小说1| 国产一区二区伦理| 色嗨嗨av一区二区三区| 国产一区福利在线| 一区二区三区视频在线看| 日韩片之四级片| 91精品福利在线| 国产真实乱子伦精品视频| 亚洲综合一区二区| 国产精品国产a级| 国产亚洲欧美激情| 日韩欧美卡一卡二| 在线不卡a资源高清| 91片黄在线观看| 大胆亚洲人体视频| 国产一区二区三区免费| 国产一区视频网站| 国产一区二区成人久久免费影院| 三级欧美在线一区| 日韩精品一区第一页| 天天影视涩香欲综合网| 亚洲成人激情自拍| 奇米影视在线99精品| 蜜桃视频第一区免费观看| 亚洲国产精品自拍| 日韩电影一二三区| 激情深爱一区二区| 成人精品免费网站| a级精品国产片在线观看| 国产98色在线|日韩| 亚洲一区二区三区四区的| 国产精品福利在线播放| 亚洲一区在线观看视频| 亚洲午夜免费福利视频| 图片区小说区区亚洲影院| 青青草国产成人av片免费| 国产美女在线观看一区| 97国产精品videossex| 欧美日韩高清在线播放| 久久综合九色综合欧美98| 中国av一区二区三区| 亚洲1区2区3区视频| 精品一区二区综合| 91视频在线观看| 久久嫩草精品久久久精品一| 自拍偷自拍亚洲精品播放| 毛片基地黄久久久久久天堂| av中文一区二区三区| 精品污污网站免费看| 中文子幕无线码一区tr| 免费久久99精品国产| 色又黄又爽网站www久久| 久久久久久免费网| 免费久久精品视频| 欧美性大战久久久久久久 | 国产精品日韩精品欧美在线| 亚洲bt欧美bt精品| 91久久精品日日躁夜夜躁欧美| 欧美刺激脚交jootjob| 午夜精品久久久久久久| 欧美图区在线视频| 亚洲欧美日韩系列| 91在线porny国产在线看| 欧美韩日一区二区三区| 国产综合色精品一区二区三区| 日韩亚洲电影在线| 日韩激情视频网站| 精品精品欲导航| 国产在线国偷精品免费看| 欧美一二三区在线观看| 国产网站一区二区三区| 亚洲乱码国产乱码精品精小说| bt欧美亚洲午夜电影天堂| 国产精品乱人伦一区二区| 成人免费福利片| 日韩理论片网站| 成人av网在线| 一区二区成人在线| 91超碰这里只有精品国产| 日韩极品在线观看| 欧美精品一区二区三区蜜臀| 国产精品88av| 中文字幕在线不卡一区| 色综合一区二区| 青青青伊人色综合久久| 日本一区二区三区电影| 在线观看一区二区精品视频| 日本不卡在线视频| 国产精品久久一卡二卡| 欧美日韩在线直播| 国产精品小仙女| 亚洲成a人v欧美综合天堂下载 | 91成人看片片| 久久er99精品| 九一九一国产精品| 一区二区免费在线| 久久亚洲综合色| 91在线观看美女| 国产精品资源网| 一区二区三区在线看| 欧美va亚洲va国产综合| 日本韩国精品在线| 国产精品亚洲第一区在线暖暖韩国| 亚洲午夜影视影院在线观看| 久久久精品2019中文字幕之3| 欧美精品精品一区| 91年精品国产| 岛国精品在线播放| 国产精品亚洲一区二区三区在线| 日本免费在线视频不卡一不卡二| 亚洲一区在线观看免费| 欧美国产一区视频在线观看| 92国产精品观看| 国产精品一区二区果冻传媒| 久久国产精品无码网站| 免费成人在线网站| 青青草97国产精品免费观看 | 欧美综合一区二区| 91视频免费播放| 91国偷自产一区二区三区观看| 色综合天天综合色综合av| 国产aⅴ综合色| 99久久er热在这里只有精品15 | 成人精品高清在线| 成人午夜激情影院| 色88888久久久久久影院按摩| av中文字幕不卡| 欧美色大人视频| 91麻豆精品91久久久久同性| 日韩精品中午字幕| 久久久三级国产网站| 亚洲国产精品黑人久久久| 亚洲少妇最新在线视频| 午夜精品福利一区二区三区蜜桃| 免费看黄色91| 成人福利视频网站| 777久久久精品| 欧美经典一区二区三区| 亚洲黄色av一区| 国产曰批免费观看久久久| 成人精品国产免费网站| 欧美日韩久久久一区| 国产色一区二区| 午夜视频久久久久久| 国产一区二区不卡在线| 精品视频在线看| 国产精品久久久久久久久图文区| 夜夜爽夜夜爽精品视频| 韩国精品主播一区二区在线观看 | 亚洲美女免费在线| 极品美女销魂一区二区三区免费| 精品亚洲成a人| 成人精品免费看| 久久精品一区蜜桃臀影院| 亚洲一区二区视频| 色综合中文字幕| 亚洲欧洲另类国产综合| 成人涩涩免费视频| 国产亚洲精久久久久久| 精品一区二区免费在线观看| 欧美一区二区视频观看视频| 亚洲国产欧美日韩另类综合| 色综合天天综合在线视频| 久久久精品天堂|