mirror of
https://github.com/cwinfo/yggdrasil-go.git
synced 2024-11-22 14:10:28 +00:00
Show information about individual active queues
This commit is contained in:
parent
2674e1cb8b
commit
b530916044
@ -527,7 +527,17 @@ func (a *admin) getData_getSwitchQueues() admin_nodeInfo {
|
|||||||
var peerInfos admin_nodeInfo
|
var peerInfos admin_nodeInfo
|
||||||
switchTable := a.core.switchTable
|
switchTable := a.core.switchTable
|
||||||
getSwitchQueues := func() {
|
getSwitchQueues := func() {
|
||||||
|
queues := make([]map[string]interface{}, 0)
|
||||||
|
for k, v := range switchTable.queues.bufs {
|
||||||
|
queue := map[string]interface{}{
|
||||||
|
"queue_id": k,
|
||||||
|
"queue_size": v.size,
|
||||||
|
"queue_packets": len(v.packets),
|
||||||
|
}
|
||||||
|
queues = append(queues, queue)
|
||||||
|
}
|
||||||
peerInfos = admin_nodeInfo{
|
peerInfos = admin_nodeInfo{
|
||||||
|
{"queues", queues},
|
||||||
{"queues_count", len(switchTable.queues.bufs)},
|
{"queues_count", len(switchTable.queues.bufs)},
|
||||||
{"queues_size", switchTable.queues.size},
|
{"queues_size", switchTable.queues.size},
|
||||||
{"max_queues_count", switchTable.queues.maxbufs},
|
{"max_queues_count", switchTable.queues.maxbufs},
|
||||||
|
@ -699,12 +699,12 @@ func (t *switchTable) doWorker() {
|
|||||||
if t.queues.size > t.queues.maxsize {
|
if t.queues.size > t.queues.maxsize {
|
||||||
t.queues.maxsize = t.queues.size
|
t.queues.maxsize = t.queues.size
|
||||||
}
|
}
|
||||||
|
t.queues.bufs[streamID] = buf
|
||||||
if !bufExists {
|
if !bufExists {
|
||||||
if len(t.queues.bufs) > t.queues.maxbufs {
|
if len(t.queues.bufs) > t.queues.maxbufs {
|
||||||
t.queues.maxbufs = len(t.queues.bufs)
|
t.queues.maxbufs = len(t.queues.bufs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
t.queues.bufs[streamID] = buf
|
|
||||||
t.queues.cleanup(t)
|
t.queues.cleanup(t)
|
||||||
}
|
}
|
||||||
case port := <-t.idleIn:
|
case port := <-t.idleIn:
|
||||||
|
@ -162,8 +162,8 @@ func (iface *tcpInterface) call(saddr string, socksaddr *string, sintf string) {
|
|||||||
if sintf != "" {
|
if sintf != "" {
|
||||||
ief, err := net.InterfaceByName(sintf)
|
ief, err := net.InterfaceByName(sintf)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if ief.Flags & net.FlagUp == 0 {
|
if ief.Flags&net.FlagUp == 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
addrs, err := ief.Addrs()
|
addrs, err := ief.Addrs()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
@ -197,6 +197,20 @@ func main() {
|
|||||||
if maxqueuesize, ok := v["max_queues_size"].(float64); ok {
|
if maxqueuesize, ok := v["max_queues_size"].(float64); ok {
|
||||||
fmt.Printf("Maximum queue size: %d\n", uint(maxqueuesize))
|
fmt.Printf("Maximum queue size: %d\n", uint(maxqueuesize))
|
||||||
}
|
}
|
||||||
|
if queues, ok := v["queues"].([]interface{}); ok {
|
||||||
|
if len(queues) == 0 {
|
||||||
|
fmt.Println("No active queues")
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
fmt.Println("Active queues:")
|
||||||
|
for k, v := range queues {
|
||||||
|
fmt.Printf("[%d] - Queue '%v', size: %d, packets: %d\n", k+1,
|
||||||
|
v.(map[string]interface{})["queue_id"].([]byte),
|
||||||
|
uint(v.(map[string]interface{})["queue_size"].(float64)),
|
||||||
|
uint(v.(map[string]interface{})["queue_packets"].(float64)))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
case "addpeer", "removepeer", "addallowedencryptionpublickey", "removeallowedencryptionpublickey":
|
case "addpeer", "removepeer", "addallowedencryptionpublickey", "removeallowedencryptionpublickey":
|
||||||
if _, ok := res["added"]; ok {
|
if _, ok := res["added"]; ok {
|
||||||
for _, v := range res["added"].([]interface{}) {
|
for _, v := range res["added"].([]interface{}) {
|
||||||
|
Loading…
Reference in New Issue
Block a user