("Tried to set mask of length %d IP address\n", hfi->type.length);
DPRINTF("Tried to set mask of length %d IP address\n", hfi->type.length);
void aggregateTemplateData(Hashtable* ht, TemplateInfo* ti, FieldData* data){	int i;	/* Create data block to be inserted into buffer... */	FieldData* htdata = (FieldData*)malloc(ht->fieldLength);	for (i = 0; i < ht->dataTemplate->fieldCount; i++) {		FieldInfo* hfi = &ht->dataTemplate->fieldInfo[i];		FieldInfo* tfi = getTemplateFieldInfo(ti, &hfi->type);		if(!tfi) {			DPRINTF("Flow to be buffered did not contain %s field\n", typeid2string(hfi->type.id));			continue;		}		copyData(&hfi->type, htdata + hfi->offset, &tfi->type, data + tfi->offset, ht->fieldModifier[i]);		/* copy associated mask, should there be one */		switch (hfi->type.id) {		case IPFIX_TYPEID_sourceIPv4Address:			tfi = getTemplateFieldInfo(ti, &(FieldType){.id = IPFIX_TYPEID_sourceIPv4Mask, .eid = 0});			if(tfi) {				if(hfi->type.length != 5) {					DPRINTF("Tried to set mask of length %d IP address\n", hfi->type.length);				} else {					if(tfi->type.length == 1) {						*(uint8_t*)(htdata + hfi->offset + 4) = *(uint8_t*)(data + tfi->offset);					} else {						DPRINTF("Cannot process associated mask with invalid length %d\n", tfi->type.length);					}				}			}			break;		case IPFIX_TYPEID_destinationIPv4Address:			tfi = getTemplateFieldInfo(ti, &(FieldType){.id = IPFIX_TYPEID_destinationIPv4Mask, .eid = 0});			if(tfi) {				if(hfi->type.length != 5) {					("Tried to set mask of length %d IP address\n", hfi->type.length);				} else {					if(tfi->type.length == 1) {						*(uint8_t*)(htdata + hfi->offset + 4) = *(uint8_t*)(data + tfi->offset);					} else {						DPRINTF("Cannot process associated mask with invalid length %d\n", tfi->type.length);					}				}			}			break;		default:			break;		}	}	/* ...then buffer it */	bufferDataBlock(ht, htdata);}