groupidt g;
sessiont *sp;
tunnelidt t;
- in_addr_t ip;
+ in_addr_t ip, ip_src;
uint8_t *data = buf; // Keep a copy of the originals.
int size = len;
return;
}
+ ip_src = *(uint32_t *)(buf + 12);
ip = *(uint32_t *)(buf + 16);
if ((g = grp_groupbyip(ip)))
{
- s = grp_getnextsession(g, ip);
+ s = grp_getnextsession(g, ip, ip_src);
if (!s)
{
// Is this a packet for a session that doesn't exist?
// Set multilink options before sending initial LCP packet
sess_local[s].mp_mrru = 1614;
- sess_local[s].mp_epdis = ntohl(config->iftun_n_address[tunnel[t].indexudp] ? config->iftun_n_address[tunnel[t].indexudp] : my_address);
+ sess_local[s].mp_epdis = ntohl(config->iftun_address ? config->iftun_address : my_address);
sendlcp(s, t);
change_state(s, lcp, RequestSent);
while (*shost && (shost < e))
{
- while ((n < e) && (*n == ' ' || *n == '\t')) n++;
+ while ((n < e) && (*n == ' ' || *n == ',' || *n == '\t')) n++;
i = 0;
while (n < e && (*n != ',') && (*n != '\t'))
config->multi_n_hostname[config->nbmultihostname][i] = *n;
n++;i++;
}
+
if (i > 0)
{
config->multi_n_hostname[config->nbmultihostname][i] = 0;
config->nbmultihostname++;
if (config->nbmultihostname >= MAX_NBHOSTNAME) break;
}
+
+ shost = n;
}
if (config->nbmultihostname >= 1)