Lines Matching defs:config
499 struct dhcp_config *config;
501 for (config = configs; config; config = config->next)
502 if ((config->flags & CONFIG_ADDR) && config->addr.s_addr == addr.s_addr)
503 return config;
640 static int is_addr_in_context(struct dhcp_context *context, struct dhcp_config *config)
644 if (!(config->flags & CONFIG_ADDR))
647 if (is_same_net(config->addr, context->start, context->netmask))
653 int config_has_mac(struct dhcp_config *config, unsigned char *hwaddr, int len, int type)
657 for (conf_addr = config->hwaddr; conf_addr; conf_addr = conf_addr->next)
674 struct dhcp_config *config, *candidate;
678 for (config = configs; config; config = config->next)
679 if (config->flags & CONFIG_CLID)
681 if (config->clid_len == clid_len &&
682 memcmp(config->clid, clid, clid_len) == 0 &&
683 is_addr_in_context(context, config))
684 return config;
688 if (*clid == 0 && config->clid_len == clid_len-1 &&
689 memcmp(config->clid, clid+1, clid_len-1) == 0 &&
690 is_addr_in_context(context, config))
691 return config;
695 for (config = configs; config; config = config->next)
696 if (config_has_mac(config, hwaddr, hw_len, hw_type) &&
697 is_addr_in_context(context, config))
698 return config;
701 for (config = configs; config; config = config->next)
702 if ((config->flags & CONFIG_NAME) &&
703 hostname_isequal(config->hostname, hostname) &&
704 is_addr_in_context(context, config))
705 return config;
708 for (candidate = NULL, count = 0, config = configs; config; config = config->next)
709 if (is_addr_in_context(context, config))
710 for (conf_addr = config->hwaddr; conf_addr; conf_addr = conf_addr->next)
717 candidate = config;
732 struct dhcp_config *config;
744 for (up = &daemon->dhcp_conf, config = daemon->dhcp_conf; config; config = tmp)
746 tmp = config->next;
747 if (config->flags & CONFIG_FROM_ETHERS)
751 if (config->flags & CONFIG_NAME)
752 free(config->hostname);
753 free(config->hwaddr);
754 free(config);
757 up = &config->next;
796 for (config = daemon->dhcp_conf; config; config = config->next)
797 if ((config->flags & CONFIG_ADDR) && config->addr.s_addr == addr.s_addr)
813 for (config = daemon->dhcp_conf; config; config = config->next)
814 if ((config->flags & CONFIG_NAME) && hostname_isequal(config->hostname, host))
818 if (config && (config->flags & CONFIG_FROM_ETHERS))
824 if (!config)
826 for (config = daemon->dhcp_conf; config; config = config->next)
828 struct hwaddr_config *conf_addr = config->hwaddr;
838 if (!config)
840 if (!(config = whine_malloc(sizeof(struct dhcp_config))))
842 config->flags = CONFIG_FROM_ETHERS;
843 config->hwaddr = NULL;
844 config->domain = NULL;
845 config->next = daemon->dhcp_conf;
846 daemon->dhcp_conf = config;
849 config->flags |= flags;
853 config->hostname = host;
858 config->addr = addr;
861 config->flags |= CONFIG_NOCLID;
862 if (!config->hwaddr)
863 config->hwaddr = whine_malloc(sizeof(struct hwaddr_config));
864 if (config->hwaddr)
866 memcpy(config->hwaddr->hwaddr, hwaddr, ETHER_ADDR_LEN);
867 config->hwaddr->hwaddr_len = ETHER_ADDR_LEN;
868 config->hwaddr->hwaddr_type = ARPHRD_ETHER;
869 config->hwaddr->wildcard_mask = 0;
870 config->hwaddr->next = NULL;
885 /* If the same IP appears in more than one host config, then DISCOVER
902 die(_("duplicate IP address %s in dhcp-config directive."),
920 This goes through /etc/hosts and sets static addresses for any DHCP config
926 struct dhcp_config *config;
929 for (config = configs; config; config = config->next)
930 if (config->flags & CONFIG_ADDR_HOSTS)
931 config->flags &= ~(CONFIG_ADDR | CONFIG_ADDR_HOSTS);
935 for (config = configs; config; config = config->next)
936 if (!(config->flags & CONFIG_ADDR) &&
937 (config->flags & CONFIG_NAME) &&
938 (crec = cache_find_by_name(NULL, config->hostname, 0, F_IPV4)) &&
941 if (cache_find_by_name(crec, config->hostname, 0, F_IPV4))
945 crec = cache_find_by_name(crec, config->hostname, 0, F_IPV4);
949 config->hostname, inet_ntoa(crec->addr.addr.addr.addr4));
953 my_syslog(MS_DHCP | LOG_WARNING, _("duplicate IP address %s (%s) in dhcp-config directive"),
954 inet_ntoa(crec->addr.addr.addr.addr4), config->hostname);
957 config->addr = crec->addr.addr.addr.addr4;
958 config->flags |= CONFIG_ADDR | CONFIG_ADDR_HOSTS;