comparison src/core/ngx_connection.c @ 1917:1b2e83c4886d

decrease log level of connection errors while closing socket
author Igor Sysoev <igor@sysoev.ru>
date Wed, 05 Mar 2008 21:21:26 +0000
parents 192443881e51
children 7018254cc006
comparison
equal deleted inserted replaced
1916:cc68a7dc2dd0 1917:1b2e83c4886d
659 659
660 660
661 void 661 void
662 ngx_close_connection(ngx_connection_t *c) 662 ngx_close_connection(ngx_connection_t *c)
663 { 663 {
664 ngx_err_t err;
665 ngx_uint_t log_error, level;
664 ngx_socket_t fd; 666 ngx_socket_t fd;
665 667
666 if (c->fd == -1) { 668 if (c->fd == -1) {
667 ngx_log_error(NGX_LOG_ALERT, c->log, 0, "connection already closed"); 669 ngx_log_error(NGX_LOG_ALERT, c->log, 0, "connection already closed");
668 return; 670 return;
731 c->read->closed = 1; 733 c->read->closed = 1;
732 c->write->closed = 1; 734 c->write->closed = 1;
733 735
734 #endif 736 #endif
735 737
738 log_error = c->log_error;
739
736 ngx_free_connection(c); 740 ngx_free_connection(c);
737 741
738 fd = c->fd; 742 fd = c->fd;
739 c->fd = (ngx_socket_t) -1; 743 c->fd = (ngx_socket_t) -1;
740 744
741 if (ngx_close_socket(fd) == -1) { 745 if (ngx_close_socket(fd) == -1) {
742 746
747 err = ngx_socket_errno;
748
749 if (err == NGX_ECONNRESET || err == NGX_ENOTCONN) {
750
751 switch (log_error) {
752
753 case NGX_ERROR_INFO:
754 level = NGX_LOG_INFO;
755 break;
756
757 case NGX_ERROR_ERR:
758 level = NGX_LOG_ERR;
759 break;
760
761 default:
762 level = NGX_LOG_CRIT;
763 }
764
765 } else {
766 level = NGX_LOG_CRIT;
767 }
768
743 /* we use ngx_cycle->log because c->log was in c->pool */ 769 /* we use ngx_cycle->log because c->log was in c->pool */
744 770
745 ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, ngx_socket_errno, 771 ngx_log_error(level, ngx_cycle->log, err,
746 ngx_close_socket_n " %d failed", fd); 772 ngx_close_socket_n " %d failed", fd);
747 } 773 }
748 } 774 }
749 775
750 776
782 case NGX_ERROR_ERR: 808 case NGX_ERROR_ERR:
783 level = NGX_LOG_ERR; 809 level = NGX_LOG_ERR;
784 break; 810 break;
785 811
786 default: 812 default:
787 level = NGX_LOG_CRIT; 813 level = NGX_LOG_ALERT;
788 } 814 }
789 815
790 } else { 816 } else {
791 level = NGX_LOG_CRIT; 817 level = NGX_LOG_ALERT;
792 } 818 }
793 819
794 ngx_log_error(level, c->log, err, text); 820 ngx_log_error(level, c->log, err, text);
795 821
796 return NGX_ERROR; 822 return NGX_ERROR;