@ -78,76 +78,78 @@ func status() error {
resp , err := http . DefaultClient . Do ( req )
if err != nil {
return err
} else {
if resp . StatusCode != 200 {
return fmt . Errorf ( "admin api status code [%d]" , resp . StatusCode )
}
defer resp . Body . Close ( )
body , err := ioutil . ReadAll ( resp . Body )
if err != nil {
return err
}
res := & client . StatusResp { }
err = json . Unmarshal ( body , & res )
if err != nil {
return fmt . Errorf ( "unmarshal http response error: %s" , strings . TrimSpace ( string ( body ) ) )
}
}
defer resp . Body . Close ( )
if resp . StatusCode != 200 {
return fmt . Errorf ( "admin api status code [%d]" , resp . StatusCode )
}
body , err := ioutil . ReadAll ( resp . Body )
if err != nil {
return err
}
res := & client . StatusResp { }
err = json . Unmarshal ( body , & res )
if err != nil {
return fmt . Errorf ( "unmarshal http response error: %s" , strings . TrimSpace ( string ( body ) ) )
}
fmt . Println ( "Proxy Status..." )
if len ( res . Tcp ) > 0 {
fmt . Printf ( "TCP" )
tbl := table . New ( "Name" , "Status" , "LocalAddr" , "Plugin" , "RemoteAddr" , "Error" )
for _ , ps := range res . Tcp {
tbl . AddRow ( ps . Name , ps . Status , ps . LocalAddr , ps . Plugin , ps . RemoteAddr , ps . Err )
}
tbl . Print ( )
fmt . Println ( "" )
fmt . Println ( "Proxy Status..." )
if len ( res . Tcp ) > 0 {
fmt . Printf ( "TCP" )
tbl := table . New ( "Name" , "Status" , "LocalAddr" , "Plugin" , "RemoteAddr" , "Error" )
for _ , ps := range res . Tcp {
tbl . AddRow ( ps . Name , ps . Status , ps . LocalAddr , ps . Plugin , ps . RemoteAddr , ps . Err )
}
if len ( res . Udp ) > 0 {
fmt . Printf ( "UDP ")
tbl := table . New ( "Name" , "Status" , "LocalAddr" , "Plugin" , "RemoteAddr" , "Error" )
for _ , ps := range res . Udp {
tbl . AddRow ( ps . Name , ps . Status , ps . LocalAddr , ps . Plugin , ps . RemoteAddr , ps . Err )
}
tbl . Print ( )
fmt. Println ( "" )
tbl . Print ( )
fmt . Println ( "" )
}
if len ( res . Udp ) > 0 {
fmt . Printf ( "UDP" )
tbl := table . New ( "Name" , "Status" , "LocalAddr" , "Plugin" , "RemoteAddr" , "Error" )
for _ , ps := range res . Udp {
tbl. AddRow ( ps . Name , ps . Status , ps . LocalAddr , ps . Plugin , ps . RemoteAddr , ps . Err )
}
if len ( res . Http ) > 0 {
fmt . Printf ( "HTTP ")
tbl := table . New ( "Name" , "Status" , "LocalAddr" , "Plugin" , "RemoteAddr" , "Error" )
for _ , ps := range res . Http {
tbl . AddRow ( ps . Name , ps . Status , ps . LocalAddr , ps . Plugin , ps . RemoteAddr , ps . Err )
}
tbl . Print ( )
fmt. Println ( "" )
tbl . Print ( )
fmt . Println ( " ")
}
if len ( res . Http ) > 0 {
fmt . Printf ( "HTTP" )
tbl := table . New ( "Name" , "Status" , "LocalAddr" , "Plugin" , "RemoteAddr" , "Error" )
for _ , ps := range res . Http {
tbl. AddRow ( ps . Name , ps . Status , ps . LocalAddr , ps . Plugin , ps . RemoteAddr , ps . Err )
}
if len ( res . Https ) > 0 {
fmt . Printf ( "HTTPS ")
tbl := table . New ( "Name" , "Status" , "LocalAddr" , "Plugin" , "RemoteAddr" , "Error" )
for _ , ps := range res . Https {
tbl . AddRow ( ps . Name , ps . Status , ps . LocalAddr , ps . Plugin , ps . RemoteAddr , ps . Err )
}
tbl . Print ( )
fmt. Println ( "" )
tbl . Print ( )
fmt . Println ( " ")
}
if len ( res . Https ) > 0 {
fmt . Printf ( "HTTPS" )
tbl := table . New ( "Name" , "Status" , "LocalAddr" , "Plugin" , "RemoteAddr" , "Error" )
for _ , ps := range res . Https {
tbl. AddRow ( ps . Name , ps . Status , ps . LocalAddr , ps . Plugin , ps . RemoteAddr , ps . Err )
}
if len ( res . Stcp ) > 0 {
fmt . Printf ( "STCP ")
tbl := table . New ( "Name" , "Status" , "LocalAddr" , "Plugin" , "RemoteAddr" , "Error" )
for _ , ps := range res . Stcp {
tbl . AddRow ( ps . Name , ps . Status , ps . LocalAddr , ps . Plugin , ps . RemoteAddr , ps . Err )
}
tbl . Print ( )
fmt. Println ( "" )
tbl . Print ( )
fmt . Println ( " ")
}
if len ( res . Stcp ) > 0 {
fmt . Printf ( "STCP" )
tbl := table . New ( "Name" , "Status" , "LocalAddr" , "Plugin" , "RemoteAddr" , "Error" )
for _ , ps := range res . Stcp {
tbl. AddRow ( ps . Name , ps . Status , ps . LocalAddr , ps . Plugin , ps . RemoteAddr , ps . Err )
}
if len ( res . Xtcp ) > 0 {
fmt . Printf ( "XTCP ")
tbl := table . New ( "Name" , "Status" , "LocalAddr" , "Plugin" , "RemoteAddr" , "Error" )
for _ , ps := range res . Xtcp {
tbl . AddRow ( ps . Name , ps . Status , ps . LocalAddr , ps . Plugin , ps . RemoteAddr , ps . Err )
}
tbl . Print ( )
fmt. Println ( "" )
tbl . Print ( )
fmt . Println ( " ")
}
if len ( res . Xtcp ) > 0 {
fmt . Printf ( "XTCP" )
tbl := table . New ( "Name" , "Status" , "LocalAddr" , "Plugin" , "RemoteAddr" , "Error" )
for _ , ps := range res . Xtcp {
tbl. AddRow ( ps . Name , ps . Status , ps . LocalAddr , ps . Plugin , ps . RemoteAddr , ps . Err )
}
tbl . Print ( )
fmt . Println ( "" )
}
return nil
}