Skip to content

Commit b13ae0f

Browse files
authored
feat: Add mDNS/LLMNR network options (#591)
1 parent cc94e79 commit b13ae0f

File tree

3 files changed

+34
-0
lines changed

3 files changed

+34
-0
lines changed

cmd/network.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ func ip6PrivacyCompletions(cmd *cobra.Command, args []string, toComplete string)
3636
return []string{"disabled", "enabled-prefer-public", "enabled", "default"}, cobra.ShellCompDirectiveNoFileComp
3737
}
3838

39+
func mdnsCompletions(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
40+
return []string{"default", "off", "resolve", "announce"}, cobra.ShellCompDirectiveNoFileComp
41+
}
42+
3943
func networkInterfaceCompletions(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
4044
if len(args) != 0 {
4145
return nil, cobra.ShellCompDirectiveNoFileComp

cmd/network_update.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ Update network interface settings of a specific adapter.
4848
// Wifi
4949
helperWifiConfig(cmd, options)
5050

51+
// mDNS / LLMNR
52+
helperMdnsConfig(cmd, options)
53+
5154
disabled, err := cmd.Flags().GetBool("disabled")
5255
if err == nil {
5356
options["enabled"] = !disabled
@@ -89,6 +92,9 @@ func init() {
8992

9093
networkUpdateCmd.Flags().BoolP("disabled", "e", false, "Disable interface")
9194

95+
networkUpdateCmd.Flags().String("mdns", "", "mDNS mode: default|off|resolve|announce")
96+
networkUpdateCmd.Flags().String("llmnr", "", "LLMNR mode: default|off|resolve|announce")
97+
9298
networkUpdateCmd.RegisterFlagCompletionFunc("ipv4-address", cobra.NoFileCompletions)
9399
networkUpdateCmd.RegisterFlagCompletionFunc("ipv4-gateway", cobra.NoFileCompletions)
94100
networkUpdateCmd.RegisterFlagCompletionFunc("ipv4-method", ipMethodCompletions)
@@ -112,6 +118,9 @@ func init() {
112118

113119
networkUpdateCmd.RegisterFlagCompletionFunc("disabled", boolCompletions)
114120

121+
networkUpdateCmd.RegisterFlagCompletionFunc("mdns", mdnsCompletions)
122+
networkUpdateCmd.RegisterFlagCompletionFunc("llmnr", mdnsCompletions)
123+
115124
networkCmd.AddCommand(networkUpdateCmd)
116125
}
117126

@@ -172,3 +181,15 @@ func helperWifiConfig(cmd *cobra.Command, options map[string]any) {
172181
options["wifi"] = wifiConfig
173182
}
174183
}
184+
185+
func helperMdnsConfig(cmd *cobra.Command, options map[string]any) {
186+
mdns, err := cmd.Flags().GetString("mdns")
187+
if err == nil && mdns != "" {
188+
options["mdns"] = mdns
189+
}
190+
191+
llmnr, err := cmd.Flags().GetString("llmnr")
192+
if err == nil && llmnr != "" {
193+
options["llmnr"] = llmnr
194+
}
195+
}

cmd/network_vlan.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ This function works only on an ethernet interface!
4848
helperIpConfig("ipv4", cmd, options)
4949
helperIpConfig("ipv6", cmd, options)
5050

51+
// mDNS / LLMNR
52+
helperMdnsConfig(cmd, options)
53+
5154
if len(options) > 0 {
5255
log.WithField("options", options).Debug("Request body")
5356
request.SetBody(options)
@@ -79,6 +82,9 @@ func init() {
7982
networkVlanCmd.Flags().String("ipv6-privacy", "", "IPv6 privacy extensions: disabled|enabled-prefer-public|enabled|default")
8083
networkVlanCmd.Flags().StringArray("ipv6-nameserver", []string{}, "IPv6 address for upstream DNS servers. Use multiple times for multiple servers.")
8184

85+
networkVlanCmd.Flags().String("mdns", "", "mDNS mode: default|off|resolve|announce")
86+
networkVlanCmd.Flags().String("llmnr", "", "LLMNR mode: default|off|resolve|announce")
87+
8288
networkVlanCmd.RegisterFlagCompletionFunc("ipv4-address", cobra.NoFileCompletions)
8389
networkVlanCmd.RegisterFlagCompletionFunc("ipv4-gateway", cobra.NoFileCompletions)
8490
networkVlanCmd.RegisterFlagCompletionFunc("ipv4-method", ipMethodCompletions)
@@ -91,5 +97,8 @@ func init() {
9197
networkVlanCmd.RegisterFlagCompletionFunc("ipv6-privacy", ip6PrivacyCompletions)
9298
networkVlanCmd.RegisterFlagCompletionFunc("ipv6-nameserver", cobra.NoFileCompletions)
9399

100+
networkVlanCmd.RegisterFlagCompletionFunc("mdns", mdnsCompletions)
101+
networkVlanCmd.RegisterFlagCompletionFunc("llmnr", mdnsCompletions)
102+
94103
networkCmd.AddCommand(networkVlanCmd)
95104
}

0 commit comments

Comments
 (0)