Add support for NBNS server options

This commit is contained in:
Marcel Holtmann 2010-03-26 19:25:56 -07:00
parent c31bee9fff
commit 95bceddba4
1 changed files with 12 additions and 0 deletions

View File

@ -48,6 +48,8 @@ struct ipcp_data {
guint8 ip_address[4];
guint8 primary_dns[4];
guint8 secondary_dns[4];
guint8 primary_nbns[4];
guint8 secondary_nbns[4];
struct pppcp_data *pppcp;
};
@ -212,7 +214,9 @@ enum ipcp_option_types {
IP_COMPRESSION_PROTO = 2,
IP_ADDRESS = 3,
PRIMARY_DNS_SERVER = 129,
PRIMARY_NBNS_SERVER = 130,
SECONDARY_DNS_SERVER = 131,
SECONDARY_NBNS_SERVER = 132,
};
static void ipcp_up(struct pppcp_data *pppcp)
@ -278,7 +282,9 @@ static guint ipcp_option_scan(struct ppp_option *option, gpointer user)
switch (option->type) {
case IP_ADDRESS:
case PRIMARY_DNS_SERVER:
case PRIMARY_NBNS_SERVER:
case SECONDARY_DNS_SERVER:
case SECONDARY_NBNS_SERVER:
return OPTION_ACCEPT;
default:
g_printerr("Unknown ipcp option type %d\n", option->type);
@ -301,9 +307,15 @@ static void ipcp_option_process(gpointer data, gpointer user)
case PRIMARY_DNS_SERVER:
memcpy(ipcp->primary_dns, option->data, 4);
break;
case PRIMARY_NBNS_SERVER:
memcpy(ipcp->primary_nbns, option->data, 4);
break;
case SECONDARY_DNS_SERVER:
memcpy(ipcp->secondary_dns, option->data, 4);
break;
case SECONDARY_NBNS_SERVER:
memcpy(ipcp->secondary_nbns, option->data, 4);
break;
default:
g_printerr("Unable to process unknown option %d\n", option->type);
break;