Commit aa93c6a
committed
a8bd087 feat: [#279] add domain support for UDP trackers (Jose Celano)
Pull request description:
## Summary
Closes #279
Add optional `domain` field to UDP tracker configuration to allow domain names in announce URLs instead of IP addresses. This feature mirrors the existing domain support in HTTP trackers.
## Changes
### Domain Layer (`src/domain/tracker/config/udp.rs`)
- Add `domain: Option<DomainName>` field to `UdpTrackerConfig`
- Include proper serde attributes for optional field serialization
### Application Layer
- **`udp_tracker_section.rs`**: Add `domain: Option<String>` field with validation using `DomainName::new()`
- **`show/info/tracker.rs`**: Update to use domain for UDP URLs when available
### Infrastructure Layer
- Update all test fixtures with `domain: None` for existing UDP tracker constructions
### Schema & Config
- Regenerate JSON schema with new `domain` field description
- Update `envs/manual-https-test.json` with example UDP domain
## Testing
- ✅ All unit tests pass (including 16 new tests for domain serialization)
- ✅ E2E infrastructure lifecycle tests pass
- ✅ E2E deployment workflow tests pass
- ✅ All linting checks pass (clippy, rustfmt, markdownlint, yamllint, shellcheck)
- ✅ Pre-commit verification complete
## Example Usage
```json
{
"trackers": [
{
"name": "udp1",
"udp": {
"bind_port": 6969,
"public_port": 6969,
"domain": "udp1.tracker.example.com"
}
}
]
}
```
## Before/After
**Before**: UDP URLs used IP addresses only
```
UDP announce URLs:
Public IPv4: udp://10.123.219.117:6969
Public IPv6: Not available
```
**After**: UDP URLs use domain when configured
```
UDP announce URLs:
Public IPv4: udp://udp1.tracker.local:6969
Public IPv6: Not available
```
ACKs for top commit:
josecelano:
ACK a8bd087
Tree-SHA512: cbb85da09e46e4df152089f33235aa25bcbfad653343e82a3a170884f07985039b3b7a832f332ace0c942913002d6bb00995b0c62768d03130f8c954dcbd9026
11 files changed
Lines changed: 212 additions & 13 deletions
File tree
- schemas
- src
- application/command_handlers
- create/config
- tracker
- show/info
- domain/tracker
- config
- infrastructure/templating
- ansible/template/wrappers/variables
- tracker/template
- renderer
- wrapper/tracker_config
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
1 | 3 | | |
2 | 4 | | |
3 | 5 | | |
| |||
460 | 462 | | |
461 | 463 | | |
462 | 464 | | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
463 | 472 | | |
464 | 473 | | |
465 | 474 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
504 | 504 | | |
505 | 505 | | |
506 | 506 | | |
| 507 | + | |
507 | 508 | | |
508 | 509 | | |
509 | 510 | | |
| |||
1407 | 1408 | | |
1408 | 1409 | | |
1409 | 1410 | | |
| 1411 | + | |
1410 | 1412 | | |
1411 | 1413 | | |
1412 | 1414 | | |
| |||
1482 | 1484 | | |
1483 | 1485 | | |
1484 | 1486 | | |
| 1487 | + | |
1485 | 1488 | | |
1486 | 1489 | | |
1487 | 1490 | | |
| |||
1573 | 1576 | | |
1574 | 1577 | | |
1575 | 1578 | | |
| 1579 | + | |
1576 | 1580 | | |
1577 | 1581 | | |
1578 | 1582 | | |
| |||
Lines changed: 7 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
| 128 | + | |
128 | 129 | | |
129 | 130 | | |
130 | 131 | | |
| |||
161 | 162 | | |
162 | 163 | | |
163 | 164 | | |
| 165 | + | |
164 | 166 | | |
165 | 167 | | |
166 | 168 | | |
| |||
205 | 207 | | |
206 | 208 | | |
207 | 209 | | |
| 210 | + | |
208 | 211 | | |
209 | 212 | | |
210 | 213 | | |
| 214 | + | |
211 | 215 | | |
212 | 216 | | |
213 | 217 | | |
| |||
248 | 252 | | |
249 | 253 | | |
250 | 254 | | |
| 255 | + | |
251 | 256 | | |
252 | 257 | | |
253 | 258 | | |
| |||
279 | 284 | | |
280 | 285 | | |
281 | 286 | | |
| 287 | + | |
282 | 288 | | |
283 | 289 | | |
284 | 290 | | |
| |||
378 | 384 | | |
379 | 385 | | |
380 | 386 | | |
| 387 | + | |
381 | 388 | | |
382 | 389 | | |
383 | 390 | | |
| |||
Lines changed: 99 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
12 | 23 | | |
13 | 24 | | |
14 | 25 | | |
| |||
18 | 29 | | |
19 | 30 | | |
20 | 31 | | |
| 32 | + | |
21 | 33 | | |
22 | 34 | | |
23 | 35 | | |
| |||
34 | 46 | | |
35 | 47 | | |
36 | 48 | | |
37 | | - | |
38 | | - | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
39 | 66 | | |
40 | 67 | | |
41 | 68 | | |
| |||
47 | 74 | | |
48 | 75 | | |
49 | 76 | | |
| 77 | + | |
50 | 78 | | |
51 | 79 | | |
52 | 80 | | |
| |||
57 | 85 | | |
58 | 86 | | |
59 | 87 | | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
60 | 127 | | |
61 | 128 | | |
62 | 129 | | |
63 | 130 | | |
64 | 131 | | |
65 | 132 | | |
| 133 | + | |
66 | 134 | | |
67 | 135 | | |
68 | 136 | | |
| |||
79 | 147 | | |
80 | 148 | | |
81 | 149 | | |
| 150 | + | |
82 | 151 | | |
83 | 152 | | |
84 | 153 | | |
| |||
92 | 161 | | |
93 | 162 | | |
94 | 163 | | |
95 | | - | |
| 164 | + | |
96 | 165 | | |
97 | 166 | | |
| 167 | + | |
98 | 168 | | |
99 | 169 | | |
100 | 170 | | |
101 | 171 | | |
102 | 172 | | |
| 173 | + | |
| 174 | + | |
103 | 175 | | |
104 | 176 | | |
105 | 177 | | |
106 | | - | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
107 | 193 | | |
108 | 194 | | |
109 | 195 | | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
110 | 205 | | |
111 | 206 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
124 | 124 | | |
125 | 125 | | |
126 | 126 | | |
| 127 | + | |
127 | 128 | | |
128 | 129 | | |
129 | 130 | | |
| |||
132 | 133 | | |
133 | 134 | | |
134 | 135 | | |
135 | | - | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
136 | 143 | | |
137 | 144 | | |
138 | 145 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
70 | | - | |
| 70 | + | |
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| |||
274 | 274 | | |
275 | 275 | | |
276 | 276 | | |
277 | | - | |
| 277 | + | |
278 | 278 | | |
279 | 279 | | |
280 | 280 | | |
| |||
537 | 537 | | |
538 | 538 | | |
539 | 539 | | |
| 540 | + | |
540 | 541 | | |
541 | 542 | | |
542 | 543 | | |
| |||
629 | 630 | | |
630 | 631 | | |
631 | 632 | | |
| 633 | + | |
632 | 634 | | |
633 | 635 | | |
634 | 636 | | |
| |||
730 | 732 | | |
731 | 733 | | |
732 | 734 | | |
| 735 | + | |
733 | 736 | | |
734 | 737 | | |
735 | 738 | | |
| |||
764 | 767 | | |
765 | 768 | | |
766 | 769 | | |
| 770 | + | |
767 | 771 | | |
768 | 772 | | |
769 | 773 | | |
| 774 | + | |
770 | 775 | | |
771 | 776 | | |
772 | 777 | | |
| |||
960 | 965 | | |
961 | 966 | | |
962 | 967 | | |
| 968 | + | |
963 | 969 | | |
964 | 970 | | |
965 | 971 | | |
| |||
0 commit comments