( msg message.Message, storage storage.Writer, startTime int64, ip string, country string, username *string, )
| 74 | } |
| 75 | |
| 76 | func (e *encoder) storeMetadata( |
| 77 | msg message.Message, |
| 78 | storage storage.Writer, |
| 79 | startTime int64, |
| 80 | ip string, |
| 81 | country string, |
| 82 | username *string, |
| 83 | ) (string, string, *string) { |
| 84 | switch msg.MessageType { |
| 85 | case message.TypeConnect: |
| 86 | remoteAddr := msg.Payload.(message.PayloadConnect).RemoteAddr |
| 87 | ip = remoteAddr |
| 88 | country := e.geoIPProvider.Lookup(net.ParseIP(ip)) |
| 89 | storage.SetMetadata(startTime/1000000000, ip, country, username) |
| 90 | case message.TypeAuthPasswordSuccessful: |
| 91 | u := msg.Payload.(message.PayloadAuthPassword).Username |
| 92 | username = &u |
| 93 | storage.SetMetadata(startTime/1000000000, ip, country, username) |
| 94 | case message.TypeAuthPubKeySuccessful: |
| 95 | payload := msg.Payload.(message.PayloadAuthPubKey) |
| 96 | username = &payload.Username |
| 97 | storage.SetMetadata(startTime/1000000000, ip, country, username) |
| 98 | case message.TypeHandshakeSuccessful: |
| 99 | payload := msg.Payload.(message.PayloadHandshakeSuccessful) |
| 100 | username = &payload.Username |
| 101 | storage.SetMetadata(startTime/1000000000, ip, country, username) |
| 102 | } |
| 103 | |
| 104 | return ip, country, username |
| 105 | } |
no test coverage detected