Closed wfeii1980 closed 9 months ago
- let service_name_len = ty_domain.len() - DOMAIN_LEN - 1; // exclude the leading `_` + let service_name_len = ty_domain.len() - (DOMAIN_LEN - 1); // exclude the leading `_`
Curiously, I cannot understand what the issue is, and why the diff is correct. Could you please explain a bit?
- let service_name_len = ty_domain.len() - DOMAIN_LEN - 1; // exclude the leading `_` + let service_name_len = ty_domain.len() - (DOMAIN_LEN - 1); // exclude the leading `_`
Curiously, I cannot understand what the issue is, and why the diff is correct. Could you please explain a bit?
cargo run --example register _tcp _googlecast
Compiling mdns-sd v0.10.1 (/home/wii/data/works2/usb/mdns-sd)
Finished dev [unoptimized + debuginfo] target(s) in 0.78s
Running `target/debug/examples/register _tcp _googlecast`
Registered service _googlecast._tcp.local.
thread 'mDNS_daemon' panicked at src/service_daemon.rs:2086:28:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
cargo run --example register _tcp _googlecast
The usage of this command is:
$ cargo run --example register
Finished dev [unoptimized + debuginfo] target(s) in 0.05s
Running `target/debug/examples/register`
Usage:
cargo run --example register <service_type> <instance_name> [--unregister]
Options:
--unregister: automatically unregister after 2 seconds
For example:
cargo run --example register _my-hello._udp test1
In your case, the service type should be _googlecast._tcp
, and the service instance name is missing. This command should be like:
cargo run --example register _googlecast._tcp mycast-device
(where mycast-device
is the instance name)
Does it make sense?
(Meantime, I can try to make the example code and the mentioned function more error proof. But the current logic is correct. Right? )
I've opened a PR to add a sanity check for the service type name length. If you have time, let me know that helps.
Patch is merged. Let me know if there is any issue.