| 
									
										
										
										
											2015-10-30 15:56:46 +01:00
										 |  |  | package net | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-15 14:34:33 +01:00
										 |  |  | import ( | 
					
						
							| 
									
										
										
										
											2016-05-24 22:41:51 +02:00
										 |  |  | 	"strings" | 
					
						
							| 
									
										
										
										
											2016-01-15 14:34:33 +01:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-20 10:44:44 +02:00
										 |  |  | func ParseNetwork(nwStr string) Network { | 
					
						
							|  |  |  | 	if network, found := Network_value[nwStr]; found { | 
					
						
							|  |  |  | 		return Network(network) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	switch strings.ToLower(nwStr) { | 
					
						
							|  |  |  | 	case "tcp": | 
					
						
							|  |  |  | 		return Network_TCP | 
					
						
							|  |  |  | 	case "udp": | 
					
						
							|  |  |  | 		return Network_UDP | 
					
						
							|  |  |  | 	default: | 
					
						
							|  |  |  | 		return Network_Unknown | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2015-10-30 15:56:46 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-22 15:15:09 +02:00
										 |  |  | func (n Network) AsList() *NetworkList { | 
					
						
							| 
									
										
										
										
											2016-09-22 12:14:50 +02:00
										 |  |  | 	return &NetworkList{ | 
					
						
							| 
									
										
										
										
											2017-08-22 15:15:09 +02:00
										 |  |  | 		Network: []Network{n}, | 
					
						
							| 
									
										
										
										
											2016-09-22 12:14:50 +02:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2016-01-17 15:20:49 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-22 15:15:09 +02:00
										 |  |  | func (n Network) SystemString() string { | 
					
						
							|  |  |  | 	switch n { | 
					
						
							| 
									
										
										
										
											2017-01-03 14:53:59 +01:00
										 |  |  | 	case Network_TCP: | 
					
						
							| 
									
										
										
										
											2016-09-20 10:44:44 +02:00
										 |  |  | 		return "tcp" | 
					
						
							| 
									
										
										
										
											2017-01-12 12:54:34 +01:00
										 |  |  | 	case Network_UDP: | 
					
						
							| 
									
										
										
										
											2016-09-20 10:44:44 +02:00
										 |  |  | 		return "udp" | 
					
						
							|  |  |  | 	default: | 
					
						
							|  |  |  | 		return "unknown" | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2016-06-04 00:38:22 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-22 15:15:09 +02:00
										 |  |  | func (n Network) URLPrefix() string { | 
					
						
							|  |  |  | 	switch n { | 
					
						
							| 
									
										
										
										
											2017-01-03 14:53:59 +01:00
										 |  |  | 	case Network_TCP: | 
					
						
							| 
									
										
										
										
											2016-09-20 11:53:05 +02:00
										 |  |  | 		return "tcp" | 
					
						
							|  |  |  | 	case Network_UDP: | 
					
						
							|  |  |  | 		return "udp" | 
					
						
							|  |  |  | 	default: | 
					
						
							|  |  |  | 		return "unknown" | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-20 11:25:05 +01:00
										 |  |  | // HasNetwork returns true if the given network is in v NetworkList. | 
					
						
							| 
									
										
										
										
											2017-08-22 15:15:09 +02:00
										 |  |  | func (l NetworkList) HasNetwork(network Network) bool { | 
					
						
							|  |  |  | 	for _, value := range l.Network { | 
					
						
							| 
									
										
										
										
											2016-01-15 14:34:33 +01:00
										 |  |  | 		if string(value) == string(network) { | 
					
						
							|  |  |  | 			return true | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	return false | 
					
						
							| 
									
										
										
										
											2015-10-30 15:56:46 +01:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2016-10-02 23:43:58 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-22 15:15:09 +02:00
										 |  |  | func (l NetworkList) Get(idx int) Network { | 
					
						
							|  |  |  | 	return l.Network[idx] | 
					
						
							| 
									
										
										
										
											2016-10-02 23:43:58 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2017-01-05 11:20:04 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-20 11:25:05 +01:00
										 |  |  | // Size returns the number of networks in this network list. | 
					
						
							| 
									
										
										
										
											2017-08-22 15:15:09 +02:00
										 |  |  | func (l NetworkList) Size() int { | 
					
						
							|  |  |  | 	return len(l.Network) | 
					
						
							| 
									
										
										
										
											2017-01-05 11:20:04 +01:00
										 |  |  | } |