| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | 
							- package libbox
 
- import (
 
- 	"encoding/binary"
 
- 	"net"
 
- )
 
- type SystemProxyStatus struct {
 
- 	Available bool
 
- 	Enabled   bool
 
- }
 
- func (c *CommandClient) GetSystemProxyStatus() (*SystemProxyStatus, error) {
 
- 	conn, err := c.directConnectWithRetry()
 
- 	if err != nil {
 
- 		return nil, err
 
- 	}
 
- 	defer conn.Close()
 
- 	err = binary.Write(conn, binary.BigEndian, uint8(CommandGetSystemProxyStatus))
 
- 	if err != nil {
 
- 		return nil, err
 
- 	}
 
- 	var status SystemProxyStatus
 
- 	err = binary.Read(conn, binary.BigEndian, &status.Available)
 
- 	if err != nil {
 
- 		return nil, err
 
- 	}
 
- 	if status.Available {
 
- 		err = binary.Read(conn, binary.BigEndian, &status.Enabled)
 
- 		if err != nil {
 
- 			return nil, err
 
- 		}
 
- 	}
 
- 	return &status, nil
 
- }
 
- func (s *CommandServer) handleGetSystemProxyStatus(conn net.Conn) error {
 
- 	status := s.handler.GetSystemProxyStatus()
 
- 	err := binary.Write(conn, binary.BigEndian, status.Available)
 
- 	if err != nil {
 
- 		return err
 
- 	}
 
- 	if status.Available {
 
- 		err = binary.Write(conn, binary.BigEndian, status.Enabled)
 
- 		if err != nil {
 
- 			return err
 
- 		}
 
- 	}
 
- 	return nil
 
- }
 
- func (c *CommandClient) SetSystemProxyEnabled(isEnabled bool) error {
 
- 	conn, err := c.directConnect()
 
- 	if err != nil {
 
- 		return err
 
- 	}
 
- 	defer conn.Close()
 
- 	err = binary.Write(conn, binary.BigEndian, uint8(CommandSetSystemProxyEnabled))
 
- 	if err != nil {
 
- 		return err
 
- 	}
 
- 	err = binary.Write(conn, binary.BigEndian, isEnabled)
 
- 	if err != nil {
 
- 		return err
 
- 	}
 
- 	return readError(conn)
 
- }
 
- func (s *CommandServer) handleSetSystemProxyEnabled(conn net.Conn) error {
 
- 	var isEnabled bool
 
- 	err := binary.Read(conn, binary.BigEndian, &isEnabled)
 
- 	if err != nil {
 
- 		return err
 
- 	}
 
- 	err = s.handler.SetSystemProxyEnabled(isEnabled)
 
- 	if err != nil {
 
- 		return writeError(conn, err)
 
- 	}
 
- 	return writeError(conn, nil)
 
- }
 
 
  |