1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package weed_server
- import (
- "bufio"
- "github.com/chrislusf/seaweedfs/weed/glog"
- "io"
- "net"
- )
- func (vs *VolumeServer) HandleUdpConnection(c net.Conn) {
- defer c.Close()
- bufReader := bufio.NewReaderSize(c, 1024*1024)
- bufWriter := bufio.NewWriterSize(c, 1024*1024)
- for {
- cmd, err := bufReader.ReadString('\n')
- if err != nil {
- if err != io.EOF {
- // glog.Errorf("read command from: %v", err)
- }
- return
- }
- println("received", cmd)
- cmd = cmd[:len(cmd)-1]
- switch cmd[0] {
- case '+':
- fileId := cmd[1:]
- err = vs.handleTcpPut(fileId, bufReader)
- if err != nil {
- glog.Errorf("put %s: %v", fileId, err)
- }
- case '-':
- fileId := cmd[1:]
- err = vs.handleTcpDelete(fileId)
- if err != nil {
- glog.Errorf("del %s: %v", fileId, err)
- }
- case '?':
- fileId := cmd[1:]
- err = vs.handleTcpGet(fileId, bufWriter)
- case '!':
- }
- }
- }
|