MINOR: stream_interface: add reporting of ressouce allocation errors
SSL and keep-alive will need to be able to fail on allocation errors, and the stream interface did not allow to report such a cause. The flag will then be "RC" as already documented.
This commit is contained in:
parent
05efc0f33a
commit
2d400bb931
|
@ -57,10 +57,11 @@ enum {
|
|||
SI_ET_CONN_TO = 0x0008, /* connection timeout */
|
||||
SI_ET_CONN_ERR = 0x0010, /* connection error (eg: no server available) */
|
||||
SI_ET_CONN_ABRT = 0x0020, /* connection aborted by external cause (eg: abort) */
|
||||
SI_ET_CONN_OTHER = 0x0040, /* connection aborted for other reason (eg: 500) */
|
||||
SI_ET_DATA_TO = 0x0080, /* timeout during data phase */
|
||||
SI_ET_DATA_ERR = 0x0100, /* error during data phase */
|
||||
SI_ET_DATA_ABRT = 0x0200, /* data phase aborted by external cause */
|
||||
SI_ET_CONN_RES = 0x0040, /* connection aborted due to lack of resources */
|
||||
SI_ET_CONN_OTHER = 0x0080, /* connection aborted for other reason (eg: 500) */
|
||||
SI_ET_DATA_TO = 0x0100, /* timeout during data phase */
|
||||
SI_ET_DATA_ERR = 0x0200, /* error during data phase */
|
||||
SI_ET_DATA_ABRT = 0x0400, /* data phase aborted by external cause */
|
||||
};
|
||||
|
||||
/* flags set after I/O (16 bit) */
|
||||
|
|
|
@ -936,6 +936,9 @@ void http_return_srv_error(struct session *s, struct stream_interface *si)
|
|||
else if (err_type & SI_ET_CONN_ERR)
|
||||
http_server_error(s, si, SN_ERR_SRVCL, SN_FINST_C,
|
||||
503, http_error_message(s, HTTP_ERR_503));
|
||||
else if (err_type & SI_ET_CONN_RES)
|
||||
http_server_error(s, si, SN_ERR_RESOURCE, SN_FINST_C,
|
||||
503, http_error_message(s, HTTP_ERR_503));
|
||||
else /* SI_ET_CONN_OTHER and others */
|
||||
http_server_error(s, si, SN_ERR_INTERNAL, SN_FINST_C,
|
||||
500, http_error_message(s, HTTP_ERR_500));
|
||||
|
|
|
@ -2576,6 +2576,10 @@ void default_srv_error(struct session *s, struct stream_interface *si)
|
|||
err = SN_ERR_SRVCL;
|
||||
fin = SN_FINST_C;
|
||||
}
|
||||
else if (err_type & SI_ET_CONN_RES) {
|
||||
err = SN_ERR_RESOURCE;
|
||||
fin = SN_FINST_C;
|
||||
}
|
||||
else /* SI_ET_CONN_OTHER and others */ {
|
||||
err = SN_ERR_INTERNAL;
|
||||
fin = SN_FINST_C;
|
||||
|
|
Loading…
Reference in New Issue