n_ip = htonl(ip);
netlink_addattr(&req.nh, RTA_DST, &n_ip, sizeof(n_ip));
- LOG(1, 0, 0, "Route (Group) %s %s/%d\n", add ? "add" : "del", fmtaddr(htonl(ip), 0), prefixlen);
+ LOG(3, 0, 0, "Route (Group) %s %s/%d\n", add ? "add" : "del", fmtaddr(htonl(ip), 0), prefixlen);
if (netlink_send(&req.nh) < 0)
LOG(0, 0, 0, "grp_routeset() error in sending netlink message: %s\n", strerror(errno));
if ((s = sessionbyip(ip)))
{
- if (s == grpsession[g].smax)
+ if (g != grp_groupbysession(s))
+ {
+ // This session does not belong to this group
+ LOG(2, s, session[s].tunnel, "Warning, the session does not belong to group %d\n", g);
+ s = 0;
+ }
+ else if (s == grpsession[g].smax)
{
s = grpsession[g].smin;
grpsession[g].smax = 0;
// Check session list
for (i = 0; i < grpsession[g].nbsession; i++)
{
- if (grpsession[g].sesslist[i].sid == new->sesslist[i].sid)
+ if (grpsession[g].sesslist[i].sid != new->sesslist[i].sid)
{
updategroup = 1;
break;