@@ -113,18 +113,17 @@ ngx_http_vhost_traffic_status_display_set_server_node(
113113 if (ctx -> measure_status_codes != NULL && vtsn -> stat_status_code_counter != NULL ) {
114114 buf = ngx_sprintf (buf , NGX_HTTP_VHOST_TRAFFIC_STATUS_JSON_FMT_SERVER_STATUS_CODE_START );
115115
116+ buf = ngx_sprintf (buf , NGX_HTTP_VHOST_TRAFFIC_STATUS_JSON_FMT_SERVER_OTHER_STATUS_CODE ,
117+ vtsn -> stat_status_code_counter [0 ]);
118+
116119 ngx_uint_t * status_codes = (ngx_uint_t * ) ctx -> measure_status_codes -> elts ;
117- ngx_uint_t inserted = 0 ;
120+
118121 for (ngx_uint_t i = 0 ; i < ctx -> measure_status_codes -> nelts ; i ++ ) {
119- if (vtsn -> stat_status_code_counter [i ] == 0 && ctx -> measure_all_status_codes ) {
122+ if (vtsn -> stat_status_code_counter [i + 1 ] == 0 && ctx -> measure_all_status_codes ) {
120123 continue ;
121124 }
122- if (inserted > 0 ) {
123- buf = ngx_sprintf (buf , NGX_HTTP_VHOST_TRAFFIC_STATUS_JSON_FMT_SERVER_STATUS_SEPARATOR );
124- }
125125 buf = ngx_sprintf (buf , NGX_HTTP_VHOST_TRAFFIC_STATUS_JSON_FMT_SERVER_STATUS_CODE ,
126- status_codes [i ], vtsn -> stat_status_code_counter [i ]);
127- inserted ++ ;
126+ status_codes [i ], vtsn -> stat_status_code_counter [i + 1 ]);
128127 }
129128
130129 buf = ngx_sprintf (buf , NGX_HTTP_VHOST_TRAFFIC_STATUS_JSON_FMT_SERVER_STATUS_CODE_END );
@@ -249,7 +248,7 @@ ngx_http_vhost_traffic_status_display_set_server(ngx_http_request_t *r,
249248 if (ctx -> measure_status_codes != NULL && vtsn -> stat_status_code_counter != NULL ) {
250249 ngx_http_vhost_traffic_status_status_code_merge (
251250 vtscf -> stats .stat_status_code_counter ,
252- vtsn -> stat_status_code_counter , ctx -> measure_status_codes -> nelts );
251+ vtsn -> stat_status_code_counter , ctx -> measure_status_codes -> nelts + 1 );
253252 }
254253
255254 vtscf -> stats .stat_request_counter_oc += vtsn -> stat_request_counter_oc ;
@@ -938,7 +937,7 @@ ngx_http_vhost_traffic_status_display_set(ngx_http_request_t *r,
938937 ngx_http_vhost_traffic_status_node_time_queue_init (& vtscf -> stats .stat_request_times );
939938
940939 if (ctx -> measure_status_codes != NULL ) {
941- vtscf -> stats .stat_status_code_counter = ngx_pcalloc (r -> pool , sizeof (ngx_atomic_t ) * ctx -> measure_status_codes -> nelts );
940+ vtscf -> stats .stat_status_code_counter = ngx_pcalloc (r -> pool , sizeof (ngx_atomic_t ) * ( ctx -> measure_status_codes -> nelts + 1 ) );
942941 vtscf -> stats .stat_status_code_length = ctx -> measure_status_codes -> nelts ;
943942 }
944943
0 commit comments