@@ -133,6 +133,25 @@ static const nxt_http_comp_type_t compressors[] = {
133133};
134134
135135
136+ static void print_compressor (const nxt_http_comp_compressor_t * c )
137+ {
138+ printf ("token : %s\n" , c -> type -> token .start );
139+ printf ("scheme : %d\n" , c -> type -> scheme );
140+ printf ("level : %d\n" , c -> opts .level );
141+ printf ("min_len : %ld\n" , c -> opts .min_len );
142+ }
143+
144+ static void print_comp_config (size_t n )
145+ {
146+ for (size_t i = 0 ; i < n ; i ++ ) {
147+ nxt_http_comp_compressor_t * compr = enabled_compressors + i ;
148+
149+ print_compressor (compr );
150+ printf ("\n" );
151+ }
152+ }
153+
154+
136155static ssize_t
137156nxt_http_comp_compress (uint8_t * dst , size_t dst_size , const uint8_t * src ,
138157 size_t src_size , bool last )
@@ -172,7 +191,11 @@ nxt_http_comp_compress_app_response(nxt_http_request_t *r, nxt_buf_t **b)
172191// nxt_buf_t *buf;
173192 nxt_http_comp_ctx_t * ctx = & compressor_ctx ;
174193
194+ printf ("%s: \n" , __func__ );
195+
175196 if (ctx -> idx == NXT_HTTP_COMP_SCHEME_IDENTITY ) {
197+ printf ("%s: NXT_HTTP_COMP_SCHEME_IDENTITY [skipping/identity]\n" ,
198+ __func__ );
176199 return NXT_OK ;
177200 }
178201
@@ -185,14 +208,19 @@ nxt_http_comp_compress_app_response(nxt_http_request_t *r, nxt_buf_t **b)
185208 in_len = (* b )-> mem .free - (* b )-> mem .pos ;
186209 buf_len = nxt_http_comp_bound (in_len );
187210
211+ printf ("%s: in_len [%lu] buf_len [%lu] last [%s]\n" , __func__ ,
212+ in_len , buf_len , last ? "true" : "false" );
213+
188214#if 1
189215 if (buf_len > (size_t )nxt_buf_mem_size (& (* b )-> mem )) {
216+ /* XXX Un-skip Content-Length header, or not... */
190217 return NXT_OK ;
191218 }
192219
193220 uint8_t * buf = nxt_malloc (buf_len );
194221
195222 cbytes = nxt_http_comp_compress (buf , buf_len , (* b )-> mem .pos , in_len , last );
223+ printf ("%s: cbytes = %ld\n" , __func__ , cbytes );
196224 if (cbytes == -1 ) {
197225 nxt_free (buf );
198226 return NXT_ERROR ;
@@ -307,8 +335,12 @@ nxt_http_comp_compress_static_response(nxt_task_t *task, nxt_file_t **f,
307335
308336 last = n == rest ;
309337
338+ printf ("%s: out_off [%ld] in_off [%ld] last [%s]\n" ,
339+ __func__ , * out_total , in_size - rest , last ? "true" : "false" );
340+
310341 cbytes = nxt_http_comp_compress (out + * out_total , out_size - * out_total ,
311342 in + in_size - rest , n , last );
343+ printf ("%s: cbytes [%ld]\n" , __func__ , cbytes );
312344
313345 * out_total += cbytes ;
314346 rest -= n ;
@@ -337,6 +369,8 @@ nxt_http_comp_compress_static_response(nxt_task_t *task, nxt_file_t **f,
337369bool
338370nxt_http_comp_wants_compression (void )
339371{
372+ printf ("%s: compression [%s]\n" , __func__ ,
373+ compressor_ctx .idx > 0 ? "true" : "false" );
340374 return compressor_ctx .idx ;
341375}
342376
@@ -425,6 +459,9 @@ nxt_http_comp_select_compressor(nxt_http_request_t *r, const nxt_str_t *token)
425459
426460 scheme = enabled_compressors [ecidx ].type -> scheme ;
427461
462+ printf ("%s: %.*s [%f] [%d:%d]\n" , __func__ , (int )enc .length , enc .start ,
463+ qval , ecidx , scheme );
464+
428465 if (qval == 0.0 && scheme == NXT_HTTP_COMP_SCHEME_IDENTITY ) {
429466 identity_allowed = false;
430467 }
@@ -437,6 +474,12 @@ nxt_http_comp_select_compressor(nxt_http_request_t *r, const nxt_str_t *token)
437474 weight = qval ;
438475 }
439476
477+ printf ("%s: Selected compressor : %s\n" , __func__ ,
478+ enabled_compressors [idx ].type -> token .start );
479+
480+ printf ("%s: idx [%u], identity_allowed [%s]\n" , __func__ , idx ,
481+ identity_allowed ? "true" : "false" );
482+
440483 if (idx == NXT_HTTP_COMP_SCHEME_IDENTITY && !identity_allowed ) {
441484 return -1 ;
442485 }
@@ -454,6 +497,14 @@ nxt_http_comp_set_header(nxt_http_request_t *r, nxt_uint_t comp_idx)
454497 static const nxt_str_t content_encoding_str =
455498 nxt_string ("Content-Encoding" );
456499
500+ printf ("%s: \n" , __func__ );
501+
502+ #if 0
503+ if (comp_idx == NXT_HTTP_COMP_SCHEME_IDENTITY ) {
504+ return NXT_OK ;
505+ }
506+ #endif
507+
457508 f = nxt_list_add (r -> resp .fields );
458509 if (nxt_slow_path (f == NULL )) {
459510 return NXT_ERROR ;
@@ -482,6 +533,8 @@ nxt_http_comp_set_header(nxt_http_request_t *r, nxt_uint_t comp_idx)
482533 if (nxt_strcasecmp (f -> name ,
483534 (const u_char * )"Content-Length" ) == 0 )
484535 {
536+ printf ("%s: Found (%s: %s), marking as 'skip'\n" , __func__ ,
537+ f -> name , f -> value );
485538 f -> skip = true;
486539 break ;
487540 }
@@ -497,7 +550,11 @@ nxt_http_comp_is_resp_content_encoded(const nxt_http_request_t *r)
497550{
498551 nxt_http_field_t * f ;
499552
553+ printf ("%s: \n" , __func__ );
554+
500555 nxt_list_each (f , r -> resp .fields ) {
556+ printf ("%s: %.*s: %.*s\n" , __func__ , f -> name_length , f -> name ,
557+ f -> value_length , f -> value );
501558 if (nxt_strcasecmp (f -> name , (const u_char * )"Content-Encoding" ) == 0 ) {
502559 return true;
503560 }
@@ -516,6 +573,8 @@ nxt_http_comp_check_compression(nxt_task_t *task, nxt_http_request_t *r)
516573 nxt_router_conf_t * rtcf ;
517574 nxt_http_comp_compressor_t * compressor ;
518575
576+ printf ("%s: \n" , __func__ );
577+
519578 compressor_ctx = (nxt_http_comp_ctx_t ){ .resp_clen = -1 };
520579
521580 if (nr_enabled_compressors == 0 ) {
@@ -537,10 +596,15 @@ nxt_http_comp_check_compression(nxt_task_t *task, nxt_http_request_t *r)
537596 return NXT_OK ;
538597 }
539598
599+ printf ("%s: Response Content-Type [%.*s]\n" , __func__ ,
600+ (int )mime_type .length , mime_type .start );
601+
540602 if (mime_types_rule != NULL ) {
541603 ret = nxt_http_route_test_rule (r , mime_types_rule ,
542604 mime_type .start ,
543605 mime_type .length );
606+ printf ("%s: mime_type : %d (%.*s)\n" , __func__ , ret ,
607+ (int )mime_type .length , mime_type .start );
544608 if (ret == 0 ) {
545609 return NXT_OK ;
546610 }
@@ -589,7 +653,11 @@ nxt_http_comp_check_compression(nxt_task_t *task, nxt_http_request_t *r)
589653
590654 min_len = compressor -> opts .min_len ;
591655
656+ printf ("%s: content_length [%ld] min_len [%ld]\n" , __func__ ,
657+ compressor_ctx .resp_clen , min_len );
592658 if (compressor_ctx .resp_clen > -1 && compressor_ctx .resp_clen < min_len ) {
659+ printf ("%s: %ld < %ld [skipping/clen]\n" , __func__ ,
660+ compressor_ctx .resp_clen , min_len );
593661 return NXT_OK ;
594662 }
595663
@@ -643,6 +711,8 @@ nxt_http_comp_set_compressor(nxt_task_t *task, nxt_router_conf_t *rtcf,
643711
644712 static const nxt_str_t token_str = nxt_string ("encoding" );
645713
714+ printf ("%s: \n" , __func__ );
715+
646716 obj = nxt_conf_get_object_member (comp , & token_str , NULL );
647717 if (obj == NULL ) {
648718 return NXT_ERROR ;
@@ -656,6 +726,7 @@ nxt_http_comp_set_compressor(nxt_task_t *task, nxt_router_conf_t *rtcf,
656726 compr -> type = & compressors [cidx ];
657727 compr -> opts .level = compr -> type -> def_compr ;
658728 compr -> opts .min_len = -1 ;
729+ printf ("%s: %s\n" , __func__ , compr -> type -> token .start );
659730
660731 ret = nxt_conf_map_object (rtcf -> mem_pool , comp , compressors_opts_map ,
661732 nxt_nitems (compressors_opts_map ), & compr -> opts );
@@ -690,6 +761,8 @@ nxt_http_comp_compression_init(nxt_task_t *task, nxt_router_conf_t *rtcf,
690761 static const nxt_str_t comps_str = nxt_string ("compressors" );
691762 static const nxt_str_t mimes_str = nxt_string ("types" );
692763
764+ printf ("%s: \n" , __func__ );
765+
693766 mimes = nxt_conf_get_object_member (comp_conf , & mimes_str , NULL );
694767 if (mimes != NULL ) {
695768 mime_types_rule = nxt_http_route_types_rule_create (task ,
@@ -727,6 +800,7 @@ nxt_http_comp_compression_init(nxt_task_t *task, nxt_router_conf_t *rtcf,
727800 .opts .min_len = -1 };
728801
729802 if (nxt_conf_type (comps ) == NXT_CONF_OBJECT ) {
803+ print_comp_config (nr_enabled_compressors );
730804 return nxt_http_comp_set_compressor (task , rtcf , comps , 1 );
731805 }
732806
@@ -740,5 +814,7 @@ nxt_http_comp_compression_init(nxt_task_t *task, nxt_router_conf_t *rtcf,
740814 }
741815 }
742816
817+ print_comp_config (nr_enabled_compressors );
818+
743819 return NXT_OK ;
744820}
0 commit comments