Lines Matching defs:data

49 #include "util/data/dname.h"
119 struct infra_data* data = (struct infra_data*)d;
120 free(data);
158 struct rate_data* data = (struct rate_data*)d;
159 free(data);
373 /* insert config data into ratelimits */
484 /* select the pieces to hash, some OS have changing data inside */
522 k.entry.data = NULL;
526 /** init the data elements */
531 struct infra_data* data = (struct infra_data*)e->data;
532 data->ttl = timenow + infra->host_ttl;
533 rtt_init(&data->rtt);
534 data->edns_version = 0;
535 data->edns_lame_known = 0;
536 data->probedelay = 0;
537 data->isdnsseclame = 0;
538 data->rec_lame = 0;
539 data->lame_type_A = 0;
540 data->lame_other = 0;
541 data->timeout_A = 0;
542 data->timeout_AAAA = 0;
543 data->timeout_other = 0;
560 struct infra_data* data;
564 data = (struct infra_data*)malloc(sizeof(struct infra_data));
565 if(!data) {
572 free(data);
579 key->entry.data = (void*)data;
593 struct infra_data* data;
595 if(e && ((struct infra_data*)e->data)->ttl < timenow) {
597 int old = ((struct infra_data*)e->data)->rtt.rto;
598 time_t tprobe = ((struct infra_data*)e->data)->probedelay;
599 uint8_t tA = ((struct infra_data*)e->data)->timeout_A;
600 uint8_t tAAAA = ((struct infra_data*)e->data)->timeout_AAAA;
601 uint8_t tother = ((struct infra_data*)e->data)->timeout_other;
612 ((struct infra_data*)e->data)->rtt.rto
614 ((struct infra_data*)e->data)->probedelay = tprobe;
615 ((struct infra_data*)e->data)->timeout_A = tA;
616 ((struct infra_data*)e->data)->timeout_AAAA = tAAAA;
617 ((struct infra_data*)e->data)->timeout_other = tother;
625 data = (struct infra_data*)e->data;
626 *edns_vs = data->edns_version;
627 *edns_lame_known = data->edns_lame_known;
628 *to = rtt_timeout(&data->rtt);
629 slabhash_insert(infra->hosts, e->hash, e, data, NULL);
633 data = (struct infra_data*)e->data;
634 *edns_vs = data->edns_version;
635 *edns_lame_known = data->edns_lame_known;
636 *to = rtt_timeout(&data->rtt);
638 rtt_notimeout(&data->rtt)*4 <= *to)) {
647 data = (struct infra_data*)e->data;
652 data->probedelay = timenow + ((*to)+1999)/1000;
663 struct infra_data* data;
674 } else if( ((struct infra_data*)e->data)->ttl < timenow) {
679 data = (struct infra_data*)e->data;
680 /* merge data (if any) */
682 data->isdnsseclame = 1;
684 data->rec_lame = 1;
686 data->lame_type_A = 1;
688 data->lame_other = 1;
691 slabhash_insert(infra->hosts, e->hash, e, e->data, NULL);
703 struct infra_data* data;
706 data = (struct infra_data*)e->data;
707 if(data->rtt.rto >= RTT_MAX_TIMEOUT)
710 data->rtt.rto = still_useful_timeout();
721 struct infra_data* data;
729 } else if(((struct infra_data*)e->data)->ttl < timenow) {
730 oldprobedelay = ((struct infra_data*)e->data)->probedelay;
735 data = (struct infra_data*)e->data;
740 data->rtt.rto = orig_rtt;
741 data->probedelay = oldprobedelay;
743 rtt_lost(&data->rtt, orig_rtt);
745 if(data->timeout_A < TIMEOUT_COUNT_MAX)
746 data->timeout_A++;
748 if(data->timeout_AAAA < TIMEOUT_COUNT_MAX)
749 data->timeout_AAAA++;
751 if(data->timeout_other < TIMEOUT_COUNT_MAX)
752 data->timeout_other++;
758 if(rtt_unclamped(&data->rtt) >= USEFUL_SERVER_TOP_TIMEOUT)
759 rtt_init(&data->rtt);
760 rtt_update(&data->rtt, roundtrip);
761 data->probedelay = 0;
763 data->timeout_A = 0;
765 data->timeout_AAAA = 0;
766 else data->timeout_other = 0;
768 if(data->rtt.rto > 0)
769 rto = data->rtt.rto;
772 slabhash_insert(infra->hosts, e->hash, e, e->data, NULL);
784 struct infra_data* data;
787 data = (struct infra_data*)e->data;
788 if(data->ttl >= timenow) {
789 ttl = (long long)(data->ttl - timenow);
790 memmove(rtt, &data->rtt, sizeof(*rtt));
791 if(timenow < data->probedelay)
792 *delay = (int)(data->probedelay - timenow);
795 *tA = (int)data->timeout_A;
796 *tAAAA = (int)data->timeout_AAAA;
797 *tother = (int)data->timeout_other;
809 struct infra_data* data;
815 } else if(((struct infra_data*)e->data)->ttl < timenow) {
819 data = (struct infra_data*)e->data;
821 if(!(edns_version == -1 && (data->edns_version != -1 &&
822 data->edns_lame_known))) {
823 data->edns_version = edns_version;
824 data->edns_lame_known = 1;
828 slabhash_insert(infra->hosts, e->hash, e, e->data, NULL);
844 host = (struct infra_data*)e->data;
964 /** find data item in array, for write access, caller unlocks */
977 /** find data item in array for ip addresses */
990 /** create rate data item for name, number 1 in now */
1012 k->entry.data = d;
1018 /** create rate data item for ip address */
1036 k->entry.data = d;
1045 static int* infra_rate_find_second_or_none(void* data, time_t t, int should_add)
1047 struct rate_data* d = (struct rate_data*)data;
1067 static int* infra_rate_give_second(void* data, time_t t)
1069 return infra_rate_find_second_or_none(data, t, 1);
1074 static int* infra_rate_get_second(void* data, time_t t)
1076 return infra_rate_find_second_or_none(data, t, 0);
1079 int infra_rate_max(void* data, time_t now, int backoff)
1081 struct rate_data* d = (struct rate_data*)data;
1116 int premax = infra_rate_max(entry->data, timenow, backoff);
1117 int* cur = infra_rate_give_second(entry->data, timenow);
1119 max = infra_rate_max(entry->data, timenow, backoff);
1155 cur = infra_rate_get_second(entry->data, timenow);
1183 max = infra_rate_max(entry->data, timenow, backoff);
1254 int premax = infra_rate_max(entry->data, timenow, backoff);
1255 int* cur = infra_rate_give_second(entry->data, timenow);
1257 max = infra_rate_max(entry->data, timenow, backoff);
1280 struct rate_data* d = (struct rate_data*)entry->data;
1315 struct rate_data* d = (struct rate_data*)entry->data;
1336 struct rate_data* d = (struct rate_data*)entry->data;