Lines Matching defs:rule
145 struct relay_rule *rule;
185 while ((rule = TAILQ_FIRST(&proto->rules)) != NULL)
186 rule_delete(&proto->rules, rule);
646 struct relay_rule *rule;
660 TAILQ_FOREACH(rule, &proto->rules, rule_entry) {
661 rule->rule_protoid = proto->id;
662 bzero(&rule->rule_ctl, sizeof(rule->rule_ctl));
664 iov[c].iov_base = rule;
665 iov[c++].iov_len = sizeof(*rule);
667 if (rule->rule_kv[i].kv_key != NULL) {
668 rule->rule_ctl.kvlen[i].key =
669 strlen(rule->rule_kv[i].kv_key);
671 rule->rule_kv[i].kv_key;
673 rule->rule_ctl.kvlen[i].key;
675 rule->rule_ctl.kvlen[i].key = -1;
676 if (rule->rule_kv[i].kv_value != NULL) {
677 rule->rule_ctl.kvlen[i].value =
678 strlen(rule->rule_kv[i].kv_value);
680 rule->rule_kv[i].kv_value;
682 rule->rule_ctl.kvlen[i].value;
684 rule->rule_ctl.kvlen[i].value = -1;
737 struct relay_rule *rule;
742 if ((rule = calloc(1, sizeof(*rule))) == NULL)
745 IMSG_SIZE_CHECK(imsg, rule);
746 memcpy(rule, p, sizeof(*rule));
747 s = sizeof(*rule);
750 if ((proto = proto_find(env, rule->rule_protoid)) == NULL) {
751 free(rule);
756 if (rule->rule_ctl.kvlen[_n]._f >= 0) { \
758 if ((len < rule->rule_ctl.kvlen[_n]._f) || \
759 (rule->rule_kv[_n].kv_##_f = \
761 rule->rule_ctl.kvlen[_n]._f)) == NULL) { \
762 free(rule); \
765 s += rule->rule_ctl.kvlen[_n]._f; \
766 len -= rule->rule_ctl.kvlen[_n]._f; \
769 #_n, #_f, rule->rule_ctl.kvlen[_n]._f, \
770 rule->rule_kv[_n].kv_option, \
771 rule->rule_kv[_n].kv_##_f); \
775 memset(&rule->rule_kv[0], 0, sizeof(struct kv));
777 TAILQ_INIT(&rule->rule_kv[i].kv_children);
782 if (rule->rule_labelname[0])
783 rule->rule_label = label_name2id(rule->rule_labelname);
785 if (rule->rule_tagname[0])
786 rule->rule_tag = tag_name2id(rule->rule_tagname);
788 if (rule->rule_taggedname[0])
789 rule->rule_tagged = tag_name2id(rule->rule_taggedname);
791 rule->rule_id = proto->rulecount++;
793 TAILQ_INSERT_TAIL(&proto->rules, rule, rule_entry);
795 DPRINTF("%s: %s %d received rule %u for protocol %s", __func__,
797 rule->rule_id, proto->name);