|
@@ -950,30 +950,45 @@ static int ip_vs_conn_seq_show(struct seq_file *seq, void *v)
|
|
|
|
|
|
if (v == SEQ_START_TOKEN)
|
|
if (v == SEQ_START_TOKEN)
|
|
seq_puts(seq,
|
|
seq_puts(seq,
|
|
- "Pro FromIP FPrt ToIP TPrt DestIP DPrt State Expires\n");
|
|
|
|
|
|
+ "Pro FromIP FPrt ToIP TPrt DestIP DPrt State Expires PEName PEData\n");
|
|
else {
|
|
else {
|
|
const struct ip_vs_conn *cp = v;
|
|
const struct ip_vs_conn *cp = v;
|
|
|
|
+ char pe_data[IP_VS_PENAME_MAXLEN + IP_VS_PEDATA_MAXLEN + 3];
|
|
|
|
+ size_t len = 0;
|
|
|
|
+
|
|
|
|
+ if (cp->dest && cp->dest->svc->pe &&
|
|
|
|
+ cp->dest->svc->pe->show_pe_data) {
|
|
|
|
+ pe_data[0] = ' ';
|
|
|
|
+ len = strlen(cp->dest->svc->pe->name);
|
|
|
|
+ memcpy(pe_data + 1, cp->dest->svc->pe->name, len);
|
|
|
|
+ pe_data[len + 1] = ' ';
|
|
|
|
+ len += 2;
|
|
|
|
+ len += cp->dest->svc->pe->show_pe_data(cp,
|
|
|
|
+ pe_data + len);
|
|
|
|
+ }
|
|
|
|
+ pe_data[len] = '\0';
|
|
|
|
|
|
#ifdef CONFIG_IP_VS_IPV6
|
|
#ifdef CONFIG_IP_VS_IPV6
|
|
if (cp->af == AF_INET6)
|
|
if (cp->af == AF_INET6)
|
|
- seq_printf(seq, "%-3s %pI6 %04X %pI6 %04X %pI6 %04X %-11s %7lu\n",
|
|
|
|
|
|
+ seq_printf(seq, "%-3s %pI6 %04X %pI6 %04X "
|
|
|
|
+ "%pI6 %04X %-11s %7lu%s\n",
|
|
ip_vs_proto_name(cp->protocol),
|
|
ip_vs_proto_name(cp->protocol),
|
|
&cp->caddr.in6, ntohs(cp->cport),
|
|
&cp->caddr.in6, ntohs(cp->cport),
|
|
&cp->vaddr.in6, ntohs(cp->vport),
|
|
&cp->vaddr.in6, ntohs(cp->vport),
|
|
&cp->daddr.in6, ntohs(cp->dport),
|
|
&cp->daddr.in6, ntohs(cp->dport),
|
|
ip_vs_state_name(cp->protocol, cp->state),
|
|
ip_vs_state_name(cp->protocol, cp->state),
|
|
- (cp->timer.expires-jiffies)/HZ);
|
|
|
|
|
|
+ (cp->timer.expires-jiffies)/HZ, pe_data);
|
|
else
|
|
else
|
|
#endif
|
|
#endif
|
|
seq_printf(seq,
|
|
seq_printf(seq,
|
|
"%-3s %08X %04X %08X %04X"
|
|
"%-3s %08X %04X %08X %04X"
|
|
- " %08X %04X %-11s %7lu\n",
|
|
|
|
|
|
+ " %08X %04X %-11s %7lu%s\n",
|
|
ip_vs_proto_name(cp->protocol),
|
|
ip_vs_proto_name(cp->protocol),
|
|
ntohl(cp->caddr.ip), ntohs(cp->cport),
|
|
ntohl(cp->caddr.ip), ntohs(cp->cport),
|
|
ntohl(cp->vaddr.ip), ntohs(cp->vport),
|
|
ntohl(cp->vaddr.ip), ntohs(cp->vport),
|
|
ntohl(cp->daddr.ip), ntohs(cp->dport),
|
|
ntohl(cp->daddr.ip), ntohs(cp->dport),
|
|
ip_vs_state_name(cp->protocol, cp->state),
|
|
ip_vs_state_name(cp->protocol, cp->state),
|
|
- (cp->timer.expires-jiffies)/HZ);
|
|
|
|
|
|
+ (cp->timer.expires-jiffies)/HZ, pe_data);
|
|
}
|
|
}
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|