*** ip_vs.c 2000/04/09 02:55:51 1.17 --- ip_vs.c 2000/04/09 11:05:21 *************** *** 893,899 **** /* * Hashes ip_vs_service in the ip_vs_svc_table by ! * or in the ip_vs_svc_table by fwmark. * Should be called with locked tables. * Returns bool success. */ --- 893,899 ---- /* * Hashes ip_vs_service in the ip_vs_svc_table by ! * or in the ip_vs_svc_fwm_table by fwmark. * Should be called with locked tables. * Returns bool success. */ *************** *** 1198,1212 **** l = &ip_vs_dest_trash; for (e=l->next; e!=l; e=e->next) { dest = list_entry(e, struct ip_vs_dest, n_list); ! IP_VS_DBG("Destiantion %08X:%04X still in trash, refcnt=%d\n", ntohl(dest->addr), ntohs(dest->port), atomic_read(&dest->refcnt)); if (dest->addr == daddr && dest->port == dport && ((dest->protocol == svc->protocol && dest->vaddr == svc->addr && ! dest->vport == svc->port) ! || dest->vfwmark == svc->fwmark)) { /* HIT */ return dest; } --- 1198,1213 ---- l = &ip_vs_dest_trash; for (e=l->next; e!=l; e=e->next) { dest = list_entry(e, struct ip_vs_dest, n_list); ! IP_VS_DBG("Destiantion %u/%08X:%04X still in trash, refcnt=%d\n", ! dest->vfwmark, ntohl(dest->addr), ntohs(dest->port), atomic_read(&dest->refcnt)); if (dest->addr == daddr && dest->port == dport && ((dest->protocol == svc->protocol && dest->vaddr == svc->addr && ! dest->vport == svc->port) || ! (svc->fwmark && dest->vfwmark == svc->fwmark))) { /* HIT */ return dest; } *************** *** 1215,1221 **** * Try to purge the destination from trash if not referenced */ if (atomic_read(&dest->refcnt) == 1) { ! IP_VS_DBG("Removing destiantion %08X:%04X from trash\n", ntohl(dest->addr), ntohs(dest->port)); e = e->prev; list_del(&dest->n_list); --- 1216,1223 ---- * Try to purge the destination from trash if not referenced */ if (atomic_read(&dest->refcnt) == 1) { ! IP_VS_DBG("Removing destiantion %u/%08X:%04X from trash\n", ! dest->vfwmark, ntohl(dest->addr), ntohs(dest->port)); e = e->prev; list_del(&dest->n_list); *************** *** 1294,1299 **** --- 1296,1302 ---- dest->protocol = svc->protocol; dest->vaddr = svc->addr; dest->vport = svc->port; + dest->vfwmark = svc->fwmark; dest->addr = mm->daddr; dest->port = mm->dport;