Skip to content

Commit b4917ec

Browse files
committed
rec: janitor work on (geneerated) Rust code
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
1 parent 29b0f2e commit b4917ec

5 files changed

Lines changed: 39 additions & 5 deletions

File tree

pdns/recursordist/rec-rust-lib/cxxsupport.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ static void processLine(const std::string& arg, FieldMap& map, bool mainFile)
546546
::rust::String section;
547547
::rust::String fieldname;
548548
::rust::String type_name;
549-
pdns::rust::settings::rec::Value rustvalue = {false, 0, 0.0, "", {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}};
549+
pdns::rust::settings::rec::Value rustvalue = {false, 0, 0.0, "", {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}};
550550
if (pdns::settings::rec::oldKVToBridgeStruct(var, val, section, fieldname, type_name, rustvalue)) {
551551
auto overriding = !mainFile && !incremental && !simpleRustType(type_name);
552552
auto [existing, inserted] = map.emplace(std::pair{std::pair{section, fieldname}, pdns::rust::settings::rec::OldStyle{section, fieldname, var, std::move(type_name), rustvalue, overriding}});
@@ -671,6 +671,7 @@ std::string pdns::settings::rec::defaultsToYaml(bool postProcess)
671671
def("logging", "outgoing_protobuf_servers", "Vec<ProtobufServer>");
672672
def("logging", "dnstap_framestream_servers", "Vec<DNSTapFrameStreamServer>");
673673
def("logging", "dnstap_nod_framestream_servers", "Vec<DNSTapNODFrameStreamServer>");
674+
def("logging", "opentelemetry_trace_conditions", "Vec<OpenTelemetryTraceCondition>");
674675
def("recursor", "rpzs", "Vec<RPZ>");
675676
def("recursor", "sortlists", "Vec<SortList>");
676677
def("recordcache", "zonetocaches", "Vec<ZoneToCache>");

pdns/recursordist/rec-rust-lib/generate.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -454,14 +454,14 @@ def gen_rust_vec_default_functions(name, typeName, defvalue):
454454
"""Generate Rust code for the default handling of a vector for typeName"""
455455
ret = f"// DEFAULT HANDLING for {name}\n"
456456
ret += f"fn default_value_{name}() -> Vec<recsettings::{typeName}> {{\n"
457-
ret += f' let msg = "default value defined for `{name}\' should be valid YAML";'
457+
ret += f' let msg = "default value defined for `{name}\' should be valid YAML";\n'
458458
ret += (
459459
f" let deserialized: Vec<recsettings::{typeName}> = serde_yaml::from_str({quote(defvalue)}).expect(msg);\n"
460460
)
461461
ret += f" deserialized\n"
462462
ret += "}\n"
463463
ret += f"fn default_value_equal_{name}(value: &Vec<recsettings::{typeName}>)"
464-
ret += "-> bool {\n"
464+
ret += " -> bool {\n"
465465
ret += f" let def = default_value_{name}();\n"
466466
ret += " &def == value\n"
467467
ret += "}\n\n"
@@ -649,7 +649,10 @@ def gen_rust(srcdir, entries):
649649
with open(srcdir + "/rust-bridge-in.rs", mode="r", encoding="UTF-8") as bridge:
650650
file.write(" // START INCLUDE rust-bridge-in.rs\n")
651651
for line in bridge:
652-
file.write(" " + line)
652+
if len(line) <= 1:
653+
file.write(line)
654+
else:
655+
file.write(" " + line)
653656

654657
file.write(" // END INCLUDE rust-bridge-in.rs\n\n")
655658
for entry in entries:

pdns/recursordist/rec-rust-lib/rust-bridge-in.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,7 @@ struct Value {
405405
vec_forwardingcatalogzone_val: Vec<ForwardingCatalogZone>,
406406
vec_incomingwsconfig_val: Vec<IncomingWSConfig>,
407407
vec_outgoingtlsconfiguration_val: Vec<OutgoingTLSConfiguration>,
408+
vec_opentelemetrytracecondition_val: Vec<OpenTelemetryTraceCondition>,
408409
}
409410

410411
struct OldStyle {

pdns/recursordist/rec-rust-lib/rust/src/bridge.rs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -850,6 +850,28 @@ impl OutgoingTLSConfiguration {
850850
}
851851

852852
impl OpenTelemetryTraceCondition {
853+
fn to_yaml_map(&self) -> serde_yaml::Value {
854+
let mut map = serde_yaml::Mapping::new();
855+
let mut acls = serde_yaml::Sequence::new();
856+
for entry in &self.acls {
857+
acls.push(serde_yaml::Value::String(entry.to_owned()));
858+
}
859+
insertseq(&mut map, "acls", &acls);
860+
let mut qnames = serde_yaml::Sequence::new();
861+
for entry in &self.qnames {
862+
qnames.push(serde_yaml::Value::String(entry.to_owned()));
863+
}
864+
insertseq(&mut map, "qtypes", &qnames);
865+
let mut qtypes = serde_yaml::Sequence::new();
866+
for entry in &self.qtypes {
867+
qtypes.push(serde_yaml::Value::String(entry.to_owned()));
868+
}
869+
insertseq(&mut map, "qtypes", &qtypes);
870+
insertu32(&mut map, "qid", self.qid);
871+
insertb(&mut map, "edns_option_required", self.edns_option_required);
872+
insertb(&mut map, "traceid_only", self.traceid_only);
873+
serde_yaml::Value::Mapping(map)
874+
}
853875
pub fn validate(&self, field: &str) -> Result<(), ValidationError> {
854876
validate_vec(
855877
&(field.to_string() + ".acls"),
@@ -1211,6 +1233,13 @@ pub fn map_to_yaml_string(vec: &Vec<OldStyle>) -> Result<String, serde_yaml::Err
12111233
}
12121234
serde_yaml::Value::Sequence(seq)
12131235
}
1236+
"Vec<OpenTelemetryTraceCondition>" => {
1237+
let mut seq = serde_yaml::Sequence::new();
1238+
for element in &entry.value.vec_opentelemetrytracecondition_val {
1239+
seq.push(element.to_yaml_map());
1240+
}
1241+
serde_yaml::Value::Sequence(seq)
1242+
}
12141243
other => serde_yaml::Value::String(
12151244
"map_to_yaml_string: Unknown type: ".to_owned() + other,
12161245
),

pdns/recursordist/rec-rust-lib/rust/src/web.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,7 @@ fn collect_options(
463463
if !ctx.cross_origin_request_header.is_empty() {
464464
response.headers.push(rustweb::KeyValue {
465465
key: String::from("access-control-allow-origin"),
466-
value: String::from(ctx.cross_origin_request_header.clone()),
466+
value: ctx.cross_origin_request_header.clone(),
467467
});
468468
}
469469

0 commit comments

Comments
 (0)