91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 98KB
    文件類型: .gz
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-16
  • 語言: ASP
  • 標(biāo)簽:

資源簡介

http://blog.csdn.net/wangkangluo1/archive/2011/05/11/6411641.aspx [原創(chuàng)] Redhat 上 FastCGI 安裝與配置 軟件包 相關(guān)軟件包: httpd httpd-devel fcgi-2.4.0.tar.gz mod_fastcgi-2.4.6.tar.gz 請仔細(xì)閱讀其中的README 配置httpd.conf: LoadModule fastcgi_module modules/mod_fastcgi.so AddHandler fastcgi-script .fcgi # you can put whatever extension you want FastCgiIpcDir /tmp FastCgiServer /home/m/Dev/cvs/ImRoBot5/shdaily/cgi/shdaily.fcgi -processes 1 -idle-timeout 1000

資源截圖

代碼片段和文件信息

/*
?*?$Id:?fcgi_buf.cv?1.18?2003/02/03?23:07:37?robs?Exp?$
?*/

#include?“fcgi.h“

#ifdef?WIN32
#pragma?warning(?disable?:?4127?)
#else
#ifdef?APACHE2
#include?
#endif
#endif

/*******************************************************************************
?*?Check?buffer?consistency?with?assertions.
?*/
#ifdef?DEBUG
static?void?fcgi_buf_check(Buffer?*buf)
{
????ASSERT(buf->size?>?0);
????ASSERT(buf->length?>=?0);
????ASSERT(buf->length?<=?buf->size);

????ASSERT(buf->begin?>=?buf->data);
????ASSERT(buf->begin?data?+?buf->size);
????ASSERT(buf->end?>=?buf->data);
????ASSERT(buf->end?data?+?buf->size);

????ASSERT(((buf->end?-?buf->begin?+?buf->size)?%?buf->size)
????????????==?(buf->length?%?buf->size));
}
#else
#define?fcgi_buf_check(a)?((void)?0)
#endif
?
/*******************************************************************************
?*?Reset?buffer?losing?any?data?that‘s?in?it.
?*/
void?fcgi_buf_reset(Buffer?*buf)
{
????buf->length?=?0;
????buf->begin?=?buf->end?=?buf->data;
}

/*******************************************************************************
?*?Allocate?and?intialize?a?new?buffer?of?the?specified?size.
?*/
Buffer?*fcgi_buf_new(pool?*p?int?size)
{
????Buffer?*buf;

????buf?=?(Buffer?*)ap_pcalloc(p?sizeof(Buffer)?+?size);
????buf->size?=?size;
????fcgi_buf_reset(buf);
????return?buf;
}

void?fcgi_buf_removed(Buffer?*?const?b?unsigned?int?len)
{
????b->length?-=?len;
????b->begin?+=?len;

????if?(b->length?==?0)
????{
????????b->begin?=?b->end?=?b->data;
????}
????else?if?(b->begin?>=?b->data?+?b->size)
????{
????????b->begin?-=?b->size;
????}
}

void?fcgi_buf_added(Buffer?*?const?b?const?unsigned?int?len)
{
????b->length?+=?len;
????b->end?+=?len;

????if?(b->end?>=?b->data?+?b->size)
????{
????????b->end?-=?b->size;
????}
}

#ifdef?WIN32

static?int?socket_recv(SOCKET?fd?char?*buf?int?len)
{
????int?bytes_read?=?recv(fd?buf?len?0);

????if?(bytes_read?==?SOCKET_ERROR)?
????{
????????return?-1;
????}
????return?bytes_read;
}

static?int?socket_send(SOCKET?fd?char?*?buf?int?len)
{
????int?bytes_sent?=?send(fd?buf?len?0);

????if?(bytes_sent?==?SOCKET_ERROR)?
????{
????????return?-1;
????}
????return?bytes_sent;
}

#else?/*?!WIN32?*/

static?int?socket_recv(int?fd?char?*?buf?int?len)
{
????int?bytes_read;

????do?{
????????bytes_read?=?read(fd?buf?len);

????????if?(bytes_read?????????{
#ifdef?EWOULDBLOCK
????????????ASSERT(errno?!=?EWOULDBLOCK);
#endif
#ifdef?EAGAIN
????????????ASSERT(errno?!=?EAGAIN);
#endif
????????}
????}?while?(bytes_read?==?-1?&&?errno?==?EINTR);

????return?bytes_read;
}

static?int?socket_send(int?fd?char?*?buf?int?len)
{
????int?bytes_sent;

????do?{
????????bytes_sent?=?write(fd?buf?len);

????????if?(bytes_sent?????????{
#ifdef?EWOULDBLOCK
????????????ASSERT(errno?!=?EWOULDBLOCK);
#endif
#ifdef?EAGAIN
????????????ASSERT(errno?!=?EAGAIN);
#endif
????????}
????}?
????while?(bytes_sent?==?-1?&&?errno?==?EINTR);

????return?bytes_sent;
}

#endif?/*?!

評論

共有 條評論

相關(guān)資源