|
@@ -871,11 +871,11 @@ ip_vs_conn_new(const struct ip_vs_conn_param *p,
|
|
|
cp->protocol = p->protocol;
|
|
|
ip_vs_addr_set(p->af, &cp->caddr, p->caddr);
|
|
|
cp->cport = p->cport;
|
|
|
- ip_vs_addr_set(p->af, &cp->vaddr, p->vaddr);
|
|
|
- cp->vport = p->vport;
|
|
|
- /* proto should only be IPPROTO_IP if d_addr is a fwmark */
|
|
|
+ /* proto should only be IPPROTO_IP if p->vaddr is a fwmark */
|
|
|
ip_vs_addr_set(p->protocol == IPPROTO_IP ? AF_UNSPEC : p->af,
|
|
|
- &cp->daddr, daddr);
|
|
|
+ &cp->vaddr, p->vaddr);
|
|
|
+ cp->vport = p->vport;
|
|
|
+ ip_vs_addr_set(p->af, &cp->daddr, daddr);
|
|
|
cp->dport = dport;
|
|
|
cp->flags = flags;
|
|
|
cp->fwmark = fwmark;
|