📄 dhcpc_subr.c
字号:
free (param->ntp_server->addr); free (param->ntp_server); } if (param->nbn_server != NULL) { if (param->nbn_server->addr != NULL) free (param->nbn_server->addr); free (param->nbn_server); } if (param->nbdd_server != NULL) { if (param->nbdd_server->addr != NULL) free (param->nbdd_server->addr); free (param->nbdd_server); } if (param->xfont_server != NULL) { if (param->xfont_server->addr != NULL) free (param->xfont_server->addr); free (param->xfont_server); } if (param->xdisplay_manager != NULL) { if (param->xdisplay_manager->addr != NULL) free (param->xdisplay_manager->addr); free (param->xdisplay_manager); } if (param->nisp_server != NULL) { if (param->nisp_server->addr != NULL) free (param->nisp_server->addr); free (param->nisp_server); } if (param->mobileip_ha != NULL) { if (param->mobileip_ha->addr != NULL) free (param->mobileip_ha->addr); free (param->mobileip_ha); } if (param->smtp_server != NULL) { if (param->smtp_server->addr != NULL) free (param->smtp_server->addr); free (param->smtp_server); } if (param->pop3_server != NULL) { if (param->pop3_server->addr != NULL) free (param->pop3_server->addr); free (param->pop3_server); } if (param->nntp_server != NULL) { if (param->nntp_server->addr != NULL) free (param->nntp_server->addr); free (param->nntp_server); } if (param->dflt_www_server != NULL) { if (param->dflt_www_server->addr != NULL) free (param->dflt_www_server->addr); free (param->dflt_www_server); } if (param->dflt_finger_server != NULL) { if (param->dflt_finger_server->addr != NULL) free (param->dflt_finger_server->addr); free (param->dflt_finger_server); } if (param->dflt_irc_server != NULL) { if (param->dflt_irc_server->addr != NULL) free (param->dflt_irc_server->addr); free (param->dflt_irc_server); } if (param->streettalk_server != NULL) { if (param->streettalk_server->addr != NULL) free (param->streettalk_server->addr); free (param->streettalk_server); } if (param->stda_server != NULL) { if (param->stda_server->addr != NULL) free (param->stda_server->addr); free (param->stda_server); } if (param->vendlist != NULL) free (param->vendlist); bzero ( (char *)param, sizeof (struct dhcp_param)); return (0); }/********************************************************************************* merge_param - combine the parameters from DHCP server responses** This routine copies any parameters from an initial lease offer which were not* supplied in the later acknowledgement from the server. If the acknowledgement* from the server duplicates parameters from the offer, then the memory * allocated for those parameters in the offer is released.** RETURNS: 0, always.** ERRNO: N/A** NOMANUAL*//* * if there is no information in newp but oldp, copy it to newp * else free the appropriate memory of oldp */int merge_param ( struct dhcp_param *oldp, /* Parameters from lease offer. */ struct dhcp_param *newp /* Parameters from lease acknowledgement. */ ) { if (oldp == NULL || newp == NULL) return (0); if (newp->sname == NULL && oldp->sname != NULL) newp->sname = oldp->sname; else if (oldp->sname != NULL) free (oldp->sname); if (newp->file == NULL && oldp->file != NULL) newp->file = oldp->file; else if (oldp->file != NULL) free (oldp->file); if (newp->hostname == NULL && oldp->hostname != NULL) newp->hostname = oldp->hostname; else if (oldp->hostname != NULL) free (oldp->hostname); if (newp->merit_dump == NULL && oldp->merit_dump != NULL) newp->merit_dump = oldp->merit_dump; else if (oldp->merit_dump != NULL) free (oldp->merit_dump); if (newp->dns_domain == NULL && oldp->dns_domain != NULL) newp->dns_domain = oldp->dns_domain; else if (oldp->dns_domain != NULL) free (oldp->dns_domain); if (newp->root_path == NULL && oldp->root_path != NULL) newp->root_path = oldp->root_path; else if (oldp->root_path != NULL) free (oldp->root_path); if (newp->extensions_path == NULL && oldp->extensions_path != NULL) newp->extensions_path = oldp->extensions_path; else if (oldp->extensions_path != NULL) free (oldp->extensions_path); if (newp->nis_domain == NULL && oldp->nis_domain != NULL) newp->nis_domain = oldp->nis_domain; else if (oldp->nis_domain != NULL) free (oldp->nis_domain); if (newp->nb_scope == NULL && oldp->nb_scope != NULL) newp->nb_scope = oldp->nb_scope; else if (oldp->nb_scope != NULL) free (oldp->nb_scope); if (newp->errmsg == NULL && oldp->errmsg != NULL) newp->errmsg = oldp->errmsg; else if (oldp->errmsg != NULL) free (oldp->errmsg); if (newp->nisp_domain == NULL && oldp->nisp_domain != NULL) newp->nisp_domain = oldp->nisp_domain; else if (oldp->nisp_domain != NULL) free (oldp->nisp_domain); if (newp->mtu_plateau_table == NULL && oldp->mtu_plateau_table != NULL) newp->mtu_plateau_table = oldp->mtu_plateau_table; else { if (oldp->mtu_plateau_table != NULL) { if (oldp->mtu_plateau_table->shortnum != NULL) free (oldp->mtu_plateau_table->shortnum); free (oldp->mtu_plateau_table); } } if (newp->subnet_mask == NULL && oldp->subnet_mask != NULL) newp->subnet_mask = oldp->subnet_mask; else if (oldp->subnet_mask != NULL) free (oldp->subnet_mask); if (newp->swap_server == NULL && oldp->swap_server != NULL) newp->swap_server = oldp->swap_server; else if (oldp->swap_server != NULL) free (oldp->swap_server); if (newp->brdcast_addr == NULL && oldp->brdcast_addr != NULL) newp->brdcast_addr = oldp->brdcast_addr; else if (oldp->brdcast_addr != NULL) free (oldp->brdcast_addr); if (newp->router_solicit.s_addr == 0 && oldp->router_solicit.s_addr != 0) bcopy ( (char *)&oldp->router_solicit, (char *)&newp->router_solicit, sizeof (u_long)); if (newp->router == NULL && oldp->router != NULL) newp->router = oldp->router; else { if (oldp->router != NULL && oldp->router->addr != NULL) free (oldp->router->addr); if (oldp->router != NULL) free (oldp->router); } if (newp->time_server == NULL && oldp->time_server != NULL) newp->time_server = oldp->time_server; else { if (oldp->time_server != NULL && oldp->time_server->addr != NULL) free (oldp->time_server->addr); if (oldp->time_server != NULL) free (oldp->time_server); } if (newp->name_server == NULL && oldp->name_server != NULL) newp->name_server = oldp->name_server; else { if (oldp->name_server != NULL && oldp->name_server->addr != NULL) free (oldp->name_server->addr); if (oldp->name_server != NULL) free (oldp->name_server); } if (newp->dns_server == NULL && oldp->dns_server != NULL) newp->dns_server = oldp->dns_server; else { if (oldp->dns_server != NULL && oldp->dns_server->addr != NULL) free (oldp->dns_server->addr); if (oldp->dns_server != NULL) free (oldp->dns_server); } if (newp->log_server == NULL && oldp->log_server != NULL) newp->log_server = oldp->log_server; else { if (oldp->log_server != NULL && oldp->log_server->addr != NULL) free (oldp->log_server->addr); if (oldp->log_server != NULL) free (oldp->log_server); } if (newp->cookie_server == NULL && oldp->cookie_server != NULL) newp->cookie_server = oldp->cookie_server; else { if (oldp->cookie_server != NULL && oldp->cookie_server->addr != NULL) free (oldp->cookie_server->addr); if (oldp->cookie_server != NULL) free (oldp->cookie_server); } if (newp->lpr_server == NULL && oldp->lpr_server != NULL) newp->lpr_server = oldp->lpr_server; else { if (oldp->lpr_server != NULL && oldp->lpr_server->addr != NULL) free (oldp->lpr_server->addr); if (oldp->lpr_server != NULL) free (oldp->lpr_server); } if (newp->impress_server == NULL && oldp->impress_server != NULL) newp->impress_server = oldp->impress_server; else { if (oldp->impress_server != NULL && oldp->impress_server->addr != NULL) free (oldp->impress_server->addr); if (oldp->impress_server != NULL) free (oldp->impress_server); } if (newp->rls_server == NULL && oldp->rls_server != NULL) newp->rls_server = oldp->rls_server; else { if (oldp->rls_server != NULL && oldp->rls_server->addr != NULL) free (oldp->rls_server->addr); if (oldp->rls_server != NULL) free (oldp->rls_server); } if (newp->policy_filter == NULL && oldp->policy_filter != NULL) newp->policy_filter = oldp->policy_filter; else { if (oldp->policy_filter != NULL && oldp->policy_filter->addr != NULL) free (oldp->policy_filter->addr); if (oldp->policy_filter != NULL) free (oldp->policy_filter); } if (newp->static_route == NULL && oldp->static_route != NULL) newp->static_route = oldp->static_route; else { if (oldp->static_route != NULL && oldp->static_route->addr != NULL) free (oldp->static_route->addr); if (oldp->static_route != NULL) free (oldp->static_route); } if (newp->nis_server == NULL && oldp->nis_server != NULL) newp->nis_server = oldp->nis_server; else { if (oldp->nis_server != NULL && oldp->nis_server->addr != NULL) free (oldp->nis_server->addr); if (oldp->nis_server != NULL) free (oldp->nis_server); } if (newp->ntp_server == NULL && oldp->ntp_server != NULL) newp->ntp_server = oldp->ntp_server; else { if (oldp->ntp_server != NULL && oldp->ntp_server->addr != NULL) free (oldp->ntp_server->addr); if (oldp->ntp_server != NULL) free (oldp->ntp_server); } if (newp->nbn_server == NULL && oldp->nbn_server != NULL) newp->nbn_server = oldp->nbn_server; else { if (oldp->nbn_server != NULL && oldp->nbn_server->addr != NULL) free (oldp->nbn_server->addr); if (oldp->nbn_server != NULL) free (oldp->nbn_server); } if (newp->nbdd_server == NULL && oldp->nbdd_server != NULL) newp->nbdd_server = oldp->nbdd_server; else { if (oldp->nbdd_server != NULL && oldp->nbdd_server->addr != NULL) free (oldp->nbdd_server->addr); if (oldp->nbdd_server != NULL) free (oldp->nbdd_server); } if (newp->xfont_server == NULL && oldp->xfont_server != NULL) newp->xfont_server = oldp->xfont_server; else { if (oldp->xfont_server != NULL && oldp->xfont_server->addr != NULL) free (oldp->xfont_server->addr); if (oldp->xfont_server != NULL) free (oldp->xfont_server); } if (newp->xdisplay_manager == NULL && oldp->xdisplay_manager != NULL) newp->xdisplay_manager = oldp->xdisplay_manager; else { if (oldp->xdisplay_manager != NULL && oldp->xdisplay_manager->addr != NULL) free (oldp->xdisplay_manager->addr); if (oldp->xdisplay_manager != NULL) free (oldp->xdisplay_manager); } if (newp->nisp_server == NULL && oldp->nisp_server != NULL) newp->nisp_server = oldp->nisp_server; else { if (oldp->nisp_server != NULL && oldp->nisp_server->addr != NULL) free (oldp->nisp_server->addr); if (oldp->nisp_server != NULL) free (oldp->nisp_server); } if (newp->mobileip_ha == NULL && oldp->mobileip_ha != NULL) newp->mobileip_ha = oldp->mobileip_ha; else { if (oldp->mobileip_ha != NULL && oldp->mobileip_ha->addr != NULL) free (oldp->mobileip_ha->addr); if (oldp->mobileip_ha != NULL) free (oldp->mobileip_ha); } if (newp->smtp_server == NULL && oldp->smtp_server != NULL) newp->smtp_server = oldp->smtp_server; else { if (oldp->smtp_server != NULL && oldp->smtp_server->addr != NULL) free (oldp->smtp_server->addr); if (oldp->smtp_server != NULL) free (oldp->smtp_server); } if (newp->pop3_server == NULL && oldp->pop3_server != NULL) newp->pop3_server = oldp->pop3_server; else { if (oldp->pop3_server != NULL && oldp->pop3_server->addr != NULL) free (oldp->pop3_server->addr); if (oldp->pop3_server != NULL) free (oldp->pop3_server); } if (newp->nntp_server == NULL && oldp->nntp_server != NULL) newp->nntp_server = oldp->nntp_server; else { if (oldp->nntp_server != NULL && oldp->nntp_server->addr != NULL) free (oldp->nntp_server->addr); if (oldp->nntp_server != NULL) free (oldp->nntp_server); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -