static void init_device_pppoe(void) { struct filter *filt; unsigned int size=0; ses=(void *)malloc(sizeof(struct session)); if(!ses){ fatal("No memory for new PPPoE session"); } memset(ses,0,sizeof(struct session)); if ((ses->filt=malloc(sizeof(struct filter))) == NULL) { poe_error (ses,"failed to malloc for Filter "); poe_die (-1); } filt=ses->filt; /* makes the code more readable */ memset(filt,0,sizeof(struct filter)); if (pppoe_ac_name !=NULL) { if (strlen (pppoe_ac_name) > 255) { poe_error (ses," AC name too long (maximum allowed 256 chars)"); poe_die(-1); } ses->filt->ntag = make_filter_tag(PTT_AC_NAME, strlen(pppoe_ac_name), pppoe_ac_name); if ( ses->filt->ntag== NULL) { poe_error (ses,"failed to malloc for AC name"); poe_die(-1); } } if (pppoe_srv_name !=NULL) { if (strlen (pppoe_srv_name) > 255) { poe_error (ses," Service name too long (maximum allowed 256 chars)"); poe_die(-1); } ses->filt->stag = make_filter_tag(PTT_SRV_NAME, strlen(pppoe_srv_name), pppoe_srv_name); if ( ses->filt->stag == NULL) { poe_error (ses,"failed to malloc for service name"); poe_die(-1); } }
static void init_device_pppoe(void) { struct filter *filt; unsigned int size=0; ses=(void *)malloc(sizeof(struct session)); if(!ses){ fatal("No memory for new PPPoE session"); } memset(ses,0,sizeof(struct session)); ses->log_to_fd = -1; if ((ses->filt=malloc(sizeof(struct filter))) == NULL) { poe_error (ses,"failed to malloc for Filter "); poe_die (-1); } filt=ses->filt; /* makes the code more readable */ memset(filt,0,sizeof(struct filter)); if (pppoe_ac_name !=NULL) { if (strlen (pppoe_ac_name) > 255) { poe_error (ses," AC name too long (maximum allowed 256 chars)"); poe_die(-1); } ses->filt->ntag = make_filter_tag(PTT_AC_NAME, strlen(pppoe_ac_name), pppoe_ac_name); if ( ses->filt->ntag== NULL) { poe_error (ses,"failed to malloc for AC name"); poe_die(-1); } } if (pppoe_srv_name !=NULL) { if (strlen (pppoe_srv_name) > 255) { poe_error (ses," Service name too long (maximum allowed 256 chars)"); poe_die(-1); } ses->filt->stag = make_filter_tag(PTT_SRV_NAME, strlen(pppoe_srv_name), pppoe_srv_name); if ( ses->filt->stag == NULL) { poe_error (ses,"failed to malloc for service name"); poe_die(-1); } } if (hostuniq) { ses->filt->htag = make_filter_tag(PTT_HOST_UNIQ, strlen(hostuniq), hostuniq); if ( ses->filt->htag == NULL) { poe_error (ses,"failed to malloc for Uniq Host Id "); poe_die(-1); } } if (retries) { ses->retries=retries; } memcpy( ses->name, devnam, IFNAMSIZ); ses->opt_debug=1; }
static void init_device_pppoe(void) { struct filter *filt; // unsigned int size=0; ses=(void *)malloc(sizeof(struct session)); if(!ses){ fatal("No memory for new PPPoE session"); } memset(ses,0,sizeof(struct session)); if ((ses->filt=malloc(sizeof(struct filter))) == NULL) { poe_error (ses,"failed to malloc for Filter "); poe_die (-1); } filt=ses->filt; /* makes the code more readable */ memset(filt,0,sizeof(struct filter)); #ifdef AEI_VDSL_CUSTOMER_NCS if (strlen(pppoe_ac_name)) { #else if (pppoe_ac_name !=NULL) { #endif if (strlen (pppoe_ac_name) > 255) { poe_error (ses," AC name too long (maximum allowed 256 chars)"); poe_die(-1); } ses->filt->ntag = make_filter_tag(PTT_AC_NAME, strlen(pppoe_ac_name), pppoe_ac_name); if ( ses->filt->ntag== NULL) { poe_error (ses,"failed to malloc for AC name"); poe_die(-1); } } // cwu if (strlen(pppoe_srv_name)) { if (strlen (pppoe_srv_name) > 255) { poe_error (ses," Service name too long (maximum allowed 256 chars)"); poe_die(-1); } ses->filt->stag = make_filter_tag(PTT_SRV_NAME, strlen(pppoe_srv_name), pppoe_srv_name); if ( ses->filt->stag == NULL) { poe_error (ses,"failed to malloc for service name"); poe_die(-1); } } if (hostuniq) { ses->filt->htag = make_filter_tag(PTT_HOST_UNIQ, strlen(hostuniq), hostuniq); if ( ses->filt->htag == NULL) { poe_error (ses,"failed to malloc for Uniq Host Id "); poe_die(-1); } } if (retries) { ses->retries=retries; } memcpy( ses->name, devnam, IFNAMSIZ); ses->opt_debug=1; } static void pppoe_extra_options() { // int ret; char buf[256]; snprintf(buf, 256, _PATH_ETHOPT "%s",devnam); if(!options_from_file(buf, 0, 0, 1)) exit(EXIT_OPTION_ERROR); }
static void init_device_pppoe(void) { struct filter *filt; unsigned int size=0; ses=(void *)malloc(sizeof(struct session)); if(!ses){ fatal("No memory for new PPPoE session"); } memset(ses,0,sizeof(struct session)); ses->log_to_fd = -1; if ((ses->filt=malloc(sizeof(struct filter))) == NULL) { poe_error (ses,"failed to malloc for Filter "); poe_die (-1); } filt=ses->filt; /* makes the code more readable */ memset(filt,0,sizeof(struct filter)); if (pppoe_ac_name !=NULL) { if (strlen (pppoe_ac_name) > 255) { poe_error (ses," AC name too long (maximum allowed 256 chars)"); poe_die(-1); } ses->filt->ntag = make_filter_tag(PTT_AC_NAME, strlen(pppoe_ac_name), pppoe_ac_name); if ( ses->filt->ntag== NULL) { poe_error (ses,"failed to malloc for AC name"); poe_die(-1); } } if (pppoe_srv_name !=NULL) { if (strlen (pppoe_srv_name) > 255) { poe_error (ses," Service name too long (maximum allowed 256 chars)"); poe_die(-1); } ses->filt->stag = make_filter_tag(PTT_SRV_NAME, strlen(pppoe_srv_name), pppoe_srv_name); if ( ses->filt->stag == NULL) { poe_error (ses,"failed to malloc for service name"); poe_die(-1); } } if (hostuniq) { ses->filt->htag = make_filter_tag(PTT_HOST_UNIQ, strlen(hostuniq), hostuniq); if ( ses->filt->htag == NULL) { poe_error (ses,"failed to malloc for Uniq Host Id "); poe_die(-1); } } if (retries > 0) { ses->retries=retries; poe_info(ses, "PPPOE: Setting retries to %d", ses->retries); } else if (retries == 0) { poe_info(ses, "PPPOE: Will retry forever"); ses->retries=-1; } else { ses->retries=CONFIG_USER_PPPD_PPPOE_RETRIES; poe_info(ses, "PPPOE: Setting retries to %d", ses->retries); } if (pppoe_kill) { ses->pppoe_kill = pppoe_kill; poe_info(ses, "Will send PADT if already in data stream"); } memcpy( ses->name, devnam, IFNAMSIZ); ses->opt_debug=1; }