//int (*old_setdevname_hook)(char* cp) = NULL; int setdevname_pppoe(char *cp) { int ret; char dev[IFNAMSIZ+1]; int addr[ETH_ALEN]; int sid; char **a; ret =sscanf(cp, FMTSTRING(IFNAMSIZ),addr, addr+1, addr+2, addr+3, addr+4, addr+5,&sid,dev); if( ret != 8 ){ ret = get_sockaddr_ll(cp,NULL,0); if (ret < 0) fatal("PPPoE: Cannot create PF_PACKET socket for PPPoE discovery\n"); /* not a device name */ if (ret == 0) return 0; if (ret == 1) strncpy(devnam, cp, sizeof(devnam)); }else{ /* long form parsed */ ret = get_sockaddr_ll(dev,NULL,0); if (ret < 0) fatal("PPPoE: Cannot create PF_PACKET socket for PPPoE discovery\n"); strncpy(devnam, cp, sizeof(devnam)); ret = 1; } for (a = bad_options; *a != NULL; a++) remove_option(*a); deprecate_options(deprecated_options); modem = 0; lcp_allowoptions[0].neg_accompression = 0; lcp_wantoptions[0].neg_accompression = 0; lcp_allowoptions[0].neg_asyncmap = 0; lcp_wantoptions[0].neg_asyncmap = 0; lcp_allowoptions[0].neg_pcompression = 0; lcp_wantoptions[0].neg_pcompression = 0; ccp_allowoptions[0].deflate = 0 ; ccp_wantoptions[0].deflate = 0 ; ipcp_allowoptions[0].neg_vj=0; ipcp_wantoptions[0].neg_vj=0; ccp_allowoptions[0].bsd_compress = 0; ccp_wantoptions[0].bsd_compress = 0; init_device_pppoe(); return ret; }
int setdevname_pppoe(const char *cp) { int ret; char dev[IFNAMSIZ+1]; int addr[ETH_ALEN]; int sid; // char **a; ret =sscanf(cp, FMTSTRING(IFNAMSIZ),addr, addr+1, addr+2, addr+3, addr+4, addr+5,&sid,dev); if( ret != 8 ){ ret = get_sockaddr_ll(cp,NULL); if (ret < 0) fatal("PPPoE: Cannot create PF_PACKET socket for PPPoE discovery\n"); if (ret == 1) strncpy(devnam, cp, sizeof(devnam)); }else{ /* long form parsed */ ret = get_sockaddr_ll(dev,NULL); if (ret < 0) fatal("PPPoE: Cannot create PF_PACKET socket for PPPoE discovery\n"); strncpy(devnam, cp, sizeof(devnam)); ret = 1; } if( ret == 1 && the_channel != &pppoe_channel ){ the_channel = &pppoe_channel; { char **a; for (a = bad_options; *a != NULL; a++) remove_option(*a); } // cwu ipcp_allowoptions[0].default_route = 0 ; ipcp_wantoptions[0].default_route = 0 ; // cwu #if 0 modem = 0; #endif lcp_allowoptions[0].neg_accompression = 0; lcp_wantoptions[0].neg_accompression = 0; lcp_allowoptions[0].neg_asyncmap = 0; lcp_wantoptions[0].neg_asyncmap = 0; lcp_allowoptions[0].neg_pcompression = 0; lcp_wantoptions[0].neg_pcompression = 0; // cwu #if 0 ccp_allowoptions[0].deflate = 0 ; ccp_wantoptions[0].deflate = 0 ; #endif ipcp_allowoptions[0].neg_vj=0; ipcp_wantoptions[0].neg_vj=0; // cwu #if 0 ccp_allowoptions[0].bsd_compress = 0; ccp_wantoptions[0].bsd_compress = 0; #endif init_device_pppoe(); } return ret; }
int setdevname_pppoe(const char *cp) { int ret; char dev[IFNAMSIZ+1]; int addr[ETH_ALEN]; int sid; option_t *opt; //info("setdevname_pppoe //cd===");//add by HQS ret =sscanf(cp, FMTSTRING(IFNAMSIZ),addr, addr+1, addr+2, addr+3, addr+4, addr+5,&sid,dev); if( ret != 8 ){ ret = get_sockaddr_ll(cp,NULL); if (ret < 0) fatal("PPPoE: Cannot create PF_PACKET socket for PPPoE discovery\n"); if (ret == 1) strncpy(devnam, cp, sizeof(devnam)); }else{ /* long form parsed */ ret = get_sockaddr_ll(dev,NULL); if (ret < 0) fatal("PPPoE: Cannot create PF_PACKET socket for PPPoE discovery\n"); strncpy(devnam, cp, sizeof(devnam)); ret = 1; } info("PPPoE: Use %s for PPPoE discovery\n", devnam); if( ret == 1 && the_channel != &pppoe_channel ){ the_channel = &pppoe_channel; lcp_allowoptions[0].neg_accompression = 0; lcp_wantoptions[0].neg_accompression = 0; lcp_allowoptions[0].neg_asyncmap = 0; lcp_wantoptions[0].neg_asyncmap = 0; lcp_allowoptions[0].neg_pcompression = 0; lcp_wantoptions[0].neg_pcompression = 0; ipcp_allowoptions[0].neg_vj=0; ipcp_wantoptions[0].neg_vj=0; ipcp_allowoptions[0].default_route=1; /* remove for add -R parameter set default route. by tallest.*/ //ipcp_wantoptions[0].default_route=0; for (opt = ipcp_protent.options; opt->name != NULL; ++opt) { if (!strncmp(opt->name, "usepeerdns", 10)) { *(bool *)(opt->addr) = 1; break; } } //info("PPPoE: Use %s for PPPoE discovery 001\n", devnam); #ifdef CCP_SUPPORT ccp_allowoptions[0].deflate = 0 ; ccp_wantoptions[0].deflate = 0 ; ccp_allowoptions[0].bsd_compress = 0; ccp_wantoptions[0].bsd_compress = 0; #endif //info("PPPoE: Use %s for PPPoE discovery 002\n", devnam); init_device_pppoe(); } return ret; }