aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorjet2tlf <jet2tlf@gmail.com>2024-06-03 05:04:02 +0000
committerjet2tlf <jet2tlf@gmail.com>2024-06-03 05:04:02 +0000
commit747d0b3ec57e31196922b7a4d512e36621cb67fc (patch)
tree906bf022f3c4de1b6873c9d812ab6afb71912128 /app
parent96d3b97a49b82860445e5eef11a354fdc750fb9b (diff)
downloaddns-server-go-747d0b3ec57e31196922b7a4d512e36621cb67fc.tar.gz
dns-server-go-747d0b3ec57e31196922b7a4d512e36621cb67fc.zip
codecrafters submit [skip ci]
Diffstat (limited to 'app')
-rw-r--r--app/main.go73
1 files changed, 33 insertions, 40 deletions
diff --git a/app/main.go b/app/main.go
index 36c8519..46da46d 100644
--- a/app/main.go
+++ b/app/main.go
@@ -2,47 +2,40 @@ package main
import (
"fmt"
- // Uncomment this block to pass the first stage
- // "net"
+ "net"
)
func main() {
- // You can use print statements as follows for debugging, they'll be visible when running tests.
- fmt.Println("Logs from your program will appear here!")
-
- // Uncomment this block to pass the first stage
- //
- // udpAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:2053")
- // if err != nil {
- // fmt.Println("Failed to resolve UDP address:", err)
- // return
- // }
- //
- // udpConn, err := net.ListenUDP("udp", udpAddr)
- // if err != nil {
- // fmt.Println("Failed to bind to address:", err)
- // return
- // }
- // defer udpConn.Close()
- //
- // buf := make([]byte, 512)
- //
- // for {
- // size, source, err := udpConn.ReadFromUDP(buf)
- // if err != nil {
- // fmt.Println("Error receiving data:", err)
- // break
- // }
- //
- // receivedData := string(buf[:size])
- // fmt.Printf("Received %d bytes from %s: %s\n", size, source, receivedData)
- //
- // // Create an empty response
- // response := []byte{}
- //
- // _, err = udpConn.WriteToUDP(response, source)
- // if err != nil {
- // fmt.Println("Failed to send response:", err)
- // }
- // }
+ udpAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:2053")
+ if err != nil {
+ fmt.Println("Failed to resolve UDP address:", err)
+ return
+ }
+
+ udpConn, err := net.ListenUDP("udp", udpAddr)
+ if err != nil {
+ fmt.Println("Failed to bind to address:", err)
+ return
+ }
+ defer udpConn.Close()
+
+ buf := make([]byte, 512)
+
+ for {
+ size, source, err := udpConn.ReadFromUDP(buf)
+ if err != nil {
+ fmt.Println("Error receiving data:", err)
+ break
+ }
+
+ receivedData := string(buf[:size])
+ fmt.Printf("Received %d bytes from %s: %s\n", size, source, receivedData)
+
+ response := []byte{}
+
+ _, err = udpConn.WriteToUDP(response, source)
+ if err != nil {
+ fmt.Println("Failed to send response:", err)
+ }
+ }
}