Skip to content

Commit

Permalink
nginx-0.0.7-2004-07-25-22:34:14 import
Browse files Browse the repository at this point in the history
  • Loading branch information
igorsysoev committed Jul 25, 2004
1 parent a2b360d commit 0599b11
Show file tree
Hide file tree
Showing 11 changed files with 88 additions and 31 deletions.
4 changes: 4 additions & 0 deletions auto/lib/conf
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ if [ $USE_MD5 = YES ]; then
. auto/lib/md5/conf
fi

if [ $USE_OPENSSL = YES ]; then
. auto/lib/openssl/conf
fi

if [ $USE_ZLIB = YES ]; then
. auto/lib/zlib/conf
fi
4 changes: 4 additions & 0 deletions auto/lib/make
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ if [ $MD5 != NONE -a $MD5 != NO -a $MD5 != YES ]; then
. auto/lib/md5/make
fi

if [ $OPENSSL != NONE -a $OPENSSL != NO -a $OPENSSL != YES ]; then
. auto/lib/openssl/make
fi

if [ $ZLIB != NONE -a $ZLIB != NO -a $ZLIB != YES ]; then
. auto/lib/zlib/make
fi
40 changes: 40 additions & 0 deletions auto/lib/openssl/conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@

if [ $OPENSSL != NONE ]; then
CORE_INCS="$CORE_INCS $OPENSSL/include"
CORE_DEPS="$CORE_DEPS $OPENSSL_DEPS"
CORE_SRCS="$CORE_SRCS $OPENSSL_SRCS"

case "$CC" in
*)
have=NGX_OPENSSL . auto/have
LINK_DEPS="$LINK_DEPS $OPENSSL/libssl.a $OPENSSL/libcrypto.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/libssl.a $OPENSSL/libcrypto.a"
;;

esac

else

if [ $PLATFORM != win32 ]; then
OPENSSL=NO
ngx_lib_cflags=

ngx_lib_inc="#include <openssl/ssl.h>"
ngx_lib="OpenSSL library"
ngx_lib_test="SSL_library_init()"
ngx_libs="-lssl -lcrypto"
. auto/lib/test


if [ $ngx_found = yes ]; then
have=NGX_OPENSSL . auto/have
CORE_DEPS="$CORE_DEPS $OPENSSL_DEPS"
CORE_SRCS="$CORE_SRCS $OPENSSL_SRCS"
CORE_LIBS="$CORE_LIBS $ngx_libs"
OPENSSL=YES
ngx_found=no
fi

fi

fi
13 changes: 13 additions & 0 deletions auto/lib/openssl/make
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@

case $PLATFORM in
*)
echo "$OPENSSL/libssl.a:" >> $MAKEFILE
echo " cd $OPENSSL \\" >> $MAKEFILE
echo " && CC=\"\$(CC)\" \\" >> $MAKEFILE
echo " ./config threads no-shared \\" >> $MAKEFILE
echo " && \$(MAKE)" >> $MAKEFILE
;;

esac

echo >> $MAKEFILE
11 changes: 6 additions & 5 deletions auto/modules
Original file line number Diff line number Diff line change
Expand Up @@ -101,16 +101,17 @@ if [ $HTTP_REWRITE = YES -a $USE_PCRE != DISABLED ]; then
fi

if [ $HTTP_SSL = YES ]; then
USE_OPENSSL=YES
have=NGX_HTTP_SSL . auto/have
HTTP_MODULES="$HTTP_MODULES $HTTP_SSL_MODULE"
HTTP_DEPS="$HTTP_DEPS $HTTP_SSL_DEPS"
HTTP_SRCS="$HTTP_SRCS $HTTP_SSL_SRCS"

# STUB: move to auto/libs/ssl after md5
have=NGX_HTTP_SSL . auto/have
have=NGX_OPENSSL . auto/have
CORE_DEPS="$CORE_DEPS $OPENSSL_DEPS"
CORE_SRCS="$CORE_SRCS $OPENSSL_SRCS"
CORE_LIBS="$CORE_LIBS -lssl -lcrypto"
#have=NGX_OPENSSL . auto/have
#CORE_DEPS="$CORE_DEPS $OPENSSL_DEPS"
#CORE_SRCS="$CORE_SRCS $OPENSSL_SRCS"
#CORE_LIBS="$CORE_LIBS -lssl -lcrypto"
fi

if [ $HTTP_PROXY = YES ]; then
Expand Down
5 changes: 5 additions & 0 deletions auto/options
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ USE_PCRE=NO
PCRE=NONE
PCRE_OPT=

USE_OPENSSL=NO
OPENSSL=NONE

USE_MD5=NO
MD5=NONE
MD5_OPT=
Expand Down Expand Up @@ -103,6 +106,8 @@ do
--with-pcre=*) PCRE="$value" ;;
--with-pcre-opt=*) PCRE_OPT="$value" ;;

--with-openssl=*) OPENSSL="$value" ;;

--with-md5=*) MD5="$value" ;;
--with-md5-opt=*) MD5_OPT="$value" ;;
--with-md5-asm) MD5_ASM=YES ;;
Expand Down
7 changes: 7 additions & 0 deletions auto/summary
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,13 @@ case $MD5 in
*) echo " + using md5 library: $MD5" ;;
esac

case $OPENSSL in
YES) echo " + using system OpenSSL library" ;;
NONE) echo " + OpenSSL library is not used" ;;
NO) echo " + OpenSSL library is not found" ;;
*) echo " + using OpenSSL library: $OPENSSL" ;;
esac

case $ZLIB in
YES) echo " + using system zlib library" ;;
NONE) echo " + zlib library is not used" ;;
Expand Down
1 change: 0 additions & 1 deletion src/core/ngx_buf.h
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,6 @@ typedef struct {


#define NGX_CHAIN_ERROR (ngx_chain_t *) NGX_ERROR
#define NGX_CHAIN_AGAIN (ngx_chain_t *) NGX_AGAIN


#define ngx_buf_in_memory(b) (b->temporary || b->memory || b->mmap)
Expand Down
1 change: 1 addition & 0 deletions src/core/ngx_connection.h
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ struct ngx_connection_s {

unsigned log_error:2; /* ngx_connection_log_error_e */

unsigned buffered:1;
unsigned single_connection:1;
unsigned pipeline:1;
unsigned unexpected_eof:1;
Expand Down
16 changes: 4 additions & 12 deletions src/event/ngx_event_openssl.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,13 +118,13 @@ ngx_chain_t *ngx_ssl_send_chain(ngx_connection_t *c, ngx_chain_t *in,
off_t limit)
{
int n;
ngx_uint_t flush, last;
ngx_uint_t flush;
ssize_t send, size;
ngx_buf_t *buf;

buf = c->ssl->buf;

if (in && in->next == NULL && buf->pos == buf->last && !c->ssl->buffer) {
if (in && in->next == NULL && !c->buffered && !c->ssl->buffer) {

/*
* we avoid a buffer copy if the incoming buf is a single,
Expand All @@ -148,14 +148,12 @@ ngx_chain_t *ngx_ssl_send_chain(ngx_connection_t *c, ngx_chain_t *in,

send = 0;
flush = (in == NULL) ? 1 : 0;
last = (in == NULL) ? 1 : 0;

for ( ;; ) {

while (in && buf->last < buf->end) {
if (in->buf->last_buf) {
flush = 1;
last = 1;
}

if (ngx_buf_special(in->buf)) {
Expand Down Expand Up @@ -226,15 +224,9 @@ ngx_chain_t *ngx_ssl_send_chain(ngx_connection_t *c, ngx_chain_t *in,
}
}

if (in) {
return in;
}

if (buf->pos == buf->last || !last) {
return NULL;
}
c->buffered = (buf->pos < buf->last) ? 1 : 0;

return NGX_CHAIN_AGAIN;
return in;
}


Expand Down
17 changes: 4 additions & 13 deletions src/http/ngx_http_write_filter.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@

typedef struct {
ngx_chain_t *out;

/* unsigned flush:1; */
ngx_uint_t flush;
} ngx_http_write_filter_ctx_t;


Expand Down Expand Up @@ -119,7 +116,7 @@ ngx_int_t ngx_http_write_filter(ngx_http_request_t *r, ngx_chain_t *in)
return NGX_AGAIN;
}

if (size == 0 && !ctx->flush) {
if (size == 0 && !c->buffered) {
if (!last) {
ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0,
"the http output chain is empty");
Expand All @@ -146,19 +143,13 @@ ngx_int_t ngx_http_write_filter(ngx_http_request_t *r, ngx_chain_t *in)
return NGX_ERROR;
}

if (chain == NGX_CHAIN_AGAIN) {
ctx->out = NULL;
ctx->flush = 1;
return NGX_AGAIN;
}

ctx->out = chain;

if (chain == NULL) {
return NGX_OK;
if (chain || c->buffered) {
return NGX_AGAIN;
}

return NGX_AGAIN;
return NGX_OK;
}


Expand Down

0 comments on commit 0599b11

Please sign in to comment.