Change module name to go.fd.io/govpp
[govpp.git] / extras / libmemif / examples / icmp-responder / icmp-responder.go
index 5e9f2e0..85ec8e3 100644 (file)
@@ -50,7 +50,7 @@ import (
        "github.com/google/gopacket"
        "github.com/google/gopacket/layers"
 
-       "git.fd.io/govpp.git/extras/libmemif"
+       "go.fd.io/govpp/extras/libmemif"
 )
 
 const (
@@ -155,7 +155,7 @@ func IcmpResponder(memif *libmemif.Memif, queueID uint8) {
                                        break
                                }
                                // Generate response for each supported request.
-                               responses := []libmemif.RawPacketData{}
+                               var responses []libmemif.RawPacketData
                                for _, packet := range packets {
                                        fmt.Println("Received new packet:")
                                        DumpPacket(packet)
@@ -325,7 +325,7 @@ func main() {
 
        hwAddr, err = net.ParseMAC(MAC)
        if err != nil {
-               fmt.Println("Failed to parse the MAC address: %v", err)
+               fmt.Printf("Failed to parse the MAC address: %v", err)
                return
        }
 
@@ -334,7 +334,7 @@ func main() {
                ipAddr = ip.To4()
        }
        if ipAddr == nil {
-               fmt.Println("Failed to parse the IP address: %v", err)
+               fmt.Printf("Failed to parse the IP address: %v", err)
                return
        }
 
@@ -399,5 +399,13 @@ func main() {
        // Wait until an interrupt signal is received.
        sigChan := make(chan os.Signal, 1)
        signal.Notify(sigChan, os.Interrupt)
-       <-sigChan
+       var intErrch = memif.GetInterruptErrorChan()
+       select {
+       case err = <-intErrch:
+               fmt.Printf("Exit due to interface error: %v\n", err)
+               return
+       case <-sigChan:
+               fmt.Printf("Exit by os.Interrupt")
+               return
+       }
 }