gethead.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 41 行

C
41
字号
#include <u.h>#include <libc.h>#include <bin.h>#include <httpd.h>/* * read in some header lines, either one or all of them. * copy results into header log buffer. */inthgethead(HConnect *c, int many){	Hio *hin;	char *s, *p, *pp;	int n;	hin = &c->hin;	for(;;){		s = (char*)hin->pos;		pp = s;		while(p = memchr(pp, '\n', (char*)hin->stop - pp)){			if(!many || p == pp || (p == pp + 1 && *pp == '\r')){				pp = p + 1;				break;			}			pp = p + 1;		}		hin->pos = (uchar*)pp;		n = pp - s;		if(c->hstop + n > &c->header[HBufSize])			return -1;		memmove(c->hstop, s, n);		c->hstop += n;		*c->hstop = '\0';		if(p != nil)			return 0;		if(hreadbuf(hin, hin->pos) == nil || hin->state == Hend)			return -1;	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?