@@ -2437,7 +2437,7 @@ void get_cw(struct s_client *client, ECM_REQUEST *er)
2437
2437
2438
2438
2439
2439
int32_t ecmfmt (char * result , size_t size , uint16_t caid , uint16_t onid , uint32_t prid , uint16_t chid , uint16_t pid ,
2440
- uint16_t srvid , uint16_t l , char * ecmd5hex , char * csphash , char * cw , uint16_t origin_peer , uint8_t distance , char * payload )
2440
+ uint16_t srvid , uint16_t l , char * ecmd5hex , char * csphash , char * cw , uint16_t origin_peer , uint8_t distance , char * payload , char * tier )
2441
2441
{
2442
2442
if (!cfg .ecmfmt )
2443
2443
{
@@ -2476,6 +2476,10 @@ int32_t ecmfmt(char *result, size_t size, uint16_t caid, uint16_t onid, uint32_t
2476
2476
2477
2477
switch (* c )
2478
2478
{
2479
+ case 't' :
2480
+ type = ECMFMT_STRING ;
2481
+ svalue = tier ;
2482
+ break ;
2479
2483
case 'c' :
2480
2484
type = ECMFMT_NUMBER ;
2481
2485
ifmt = "%04X" ;
@@ -2614,15 +2618,30 @@ int32_t format_ecm(ECM_REQUEST *ecm, char *result, size_t size)
2614
2618
char csphash [(4 * 2 )+ 1 ] = { 0 };
2615
2619
char cwhex [(16 * 2 )+ 1 ];
2616
2620
char * payload = NULL ;
2621
+ char * tier = NULL ;
2617
2622
#ifdef READER_VIDEOGUARD
2618
2623
char payload_string [(3 * 2 )+ 1 ];
2624
+ char tier_string [83 ];
2619
2625
static const uint8_t nullBytes [6 ] = { 0 , 0 , 0 , 0 , 0 , 0 };
2626
+ struct s_ecm_answer * ea ;
2620
2627
2621
- if (ecm -> selected_reader
2622
- && memcmp (ecm -> selected_reader -> VgLastPayload , nullBytes , 6 ))
2623
- {
2624
- cs_hexdump (0 , ecm -> selected_reader -> VgLastPayload , 3 , payload_string , sizeof (payload_string ));
2625
- payload = payload_string ;
2628
+ if (ecm -> selected_reader && caid_is_videoguard (ecm -> selected_reader -> caid ))
2629
+ {
2630
+ for (ea = ecm -> matching_rdr ; ea ; ea = ea -> next )
2631
+ {
2632
+ if ((ea -> status & REQUEST_ANSWERED ) && !is_network_reader (ea -> reader ))
2633
+ {
2634
+ get_tiername (ea -> tier , ecm -> selected_reader -> caid , tier_string );
2635
+ tier = tier_string ;
2636
+ break ;
2637
+ }
2638
+ }
2639
+
2640
+ if (memcmp (ecm -> selected_reader -> VgLastPayload , nullBytes , 6 ))
2641
+ {
2642
+ cs_hexdump (0 , ecm -> selected_reader -> VgLastPayload , 3 , payload_string , sizeof (payload_string ));
2643
+ payload = payload_string ;
2644
+ }
2626
2645
}
2627
2646
#endif
2628
2647
cs_hexdump (0 , ecm -> ecmd5 , 16 , ecmd5hex , sizeof (ecmd5hex ));
@@ -2633,11 +2652,11 @@ int32_t format_ecm(ECM_REQUEST *ecm, char *result, size_t size)
2633
2652
#ifdef MODULE_GBOX
2634
2653
struct gbox_ecm_request_ext * ere = ecm -> src_data ;
2635
2654
if (ere && check_client (ecm -> client ) && get_module (ecm -> client )-> num == R_GBOX && ere -> gbox_hops )
2636
- { return ecmfmt (result , size , ecm -> caid , ecm -> onid , ecm -> prid , ecm -> chid , ecm -> pid , ecm -> srvid , ecm -> ecmlen , ecmd5hex , csphash , cwhex , ere -> gbox_peer , ere -> gbox_hops , payload ); }
2655
+ { return ecmfmt (result , size , ecm -> caid , ecm -> onid , ecm -> prid , ecm -> chid , ecm -> pid , ecm -> srvid , ecm -> ecmlen , ecmd5hex , csphash , cwhex , ere -> gbox_peer , ere -> gbox_hops , payload , tier ); }
2637
2656
else if (ecm -> selected_reader && ecm -> selected_reader -> typ == R_GBOX && ecm -> gbox_ecm_id )
2638
- { return ecmfmt (result , size , ecm -> caid , ecm -> onid , ecm -> prid , ecm -> chid , ecm -> pid , ecm -> srvid , ecm -> ecmlen , ecmd5hex , csphash , cwhex , ecm -> gbox_ecm_id , 0 , payload ); }
2657
+ { return ecmfmt (result , size , ecm -> caid , ecm -> onid , ecm -> prid , ecm -> chid , ecm -> pid , ecm -> srvid , ecm -> ecmlen , ecmd5hex , csphash , cwhex , ecm -> gbox_ecm_id , 0 , payload , tier ); }
2639
2658
else
2640
2659
#endif
2641
- return ecmfmt (result , size , ecm -> caid , ecm -> onid , ecm -> prid , ecm -> chid , ecm -> pid , ecm -> srvid , ecm -> ecmlen , ecmd5hex , csphash , cwhex , 0 , 0 , payload );
2660
+ return ecmfmt (result , size , ecm -> caid , ecm -> onid , ecm -> prid , ecm -> chid , ecm -> pid , ecm -> srvid , ecm -> ecmlen , ecmd5hex , csphash , cwhex , 0 , 0 , payload , tier );
2642
2661
}
2643
2662
0 commit comments