Loading rsync/multiplex.go +24 −11 Original line number Diff line number Diff line Loading @@ -204,11 +204,19 @@ func GetFiles(data chan byte, filelist *[]FileInfo) { } fmt.Println(idx) // idx out of range? GetFile(data, &((*filelist)[idx])) GetFile(data, &((*filelist)[idx]), filelist) } } func GetFile(data chan byte, info *FileInfo) { func lookup(size int64, filelist *[]FileInfo) { for i,f := range(*filelist) { if f.Size == size { fmt.Println("True File:", i, f) } } } func GetFile(data chan byte, info *FileInfo, filelist *[]FileInfo) { path := info.Path Loading @@ -217,22 +225,27 @@ func GetFile(data chan byte, info *FileInfo) { clen := GetInteger(data) /* checksum length */ remainder := GetInteger(data) /* block remainder */ fmt.Println(path, count, blen, clen, remainder) fmt.Println(path, count, blen, clen, remainder, info.Size) buf := new(bytes.Buffer) for { t := GetInteger(data) if t == 0 { token := GetInteger(data) fmt.Println("TOKEN", token) if token == 0 { break } else if t < 0 { } else if token < 0 { // Reference } else { ctx := make([]byte, t) ctx := make([]byte, token) GetBytes(data, ctx) fmt.Println(ctx) ioutil.WriteFile("temp.txt", ctx, 0644) fmt.Println("Buff size:", buf.Len()) buf.Write(ctx) } } fmt.Println("Buff Total size:", buf.Len()) lookup(int64(buf.Len()), filelist) ioutil.WriteFile("temp.txt", buf.Bytes(), 0644) // Remote MD4 md4 := make([]byte, 16) Loading rsync/receiver.go +16 −12 Original line number Diff line number Diff line package rsync import ( "bytes" "encoding/binary" "fmt" "io" Loading Loading @@ -126,25 +125,30 @@ func Generate(conn net.Conn, filelist *[]FileInfo) { // Those files are `basis files` var idx int32 for i:=0; i < len(*filelist); i++ { if strings.Index((*filelist)[i].Path, "src.rpm") != -1 { if strings.Index((*filelist)[i].Path, "SRPMS/Packages/p/PyXB-1.2.4-2.el7.src.rpm") != -1 { // 95533 SRPMS/Packages/z/zanata-python-client-1.5.1-1.el7.src.rpm idx = int32(i) fmt.Println("Pick:", (*filelist)[i].Path) fmt.Println("Pick:", (*filelist)[i].Path, idx) break } } buf := new(bytes.Buffer) binary.Write(buf, binary.LittleEndian, idx) fmt.Println(buf.Bytes()) conn.Write(buf.Bytes()) //buf := new(bytes.Buffer) binary.Write(conn, binary.LittleEndian, idx) //fmt.Println(buf.Bytes()) //conn.Write(buf.Bytes()) //binary.Write(conn, binary.LittleEndian, uint16(0x8000)) empty := []byte{0,0,0,0} // identifier, block count, block length, checksum length, block remainder, blocks(short+long) conn.Write(empty) binary.Write(conn, binary.LittleEndian, int32(32768)) binary.Write(conn, binary.LittleEndian, int32(2)) conn.Write(empty) conn.Write(empty) conn.Write(empty) // Empty checksum buf.Reset() binary.Write(buf, binary.LittleEndian, -1) conn.Write(buf.Bytes()) //buf.Reset() binary.Write(conn, binary.LittleEndian, int32(-1)) //conn.Write(buf.Bytes()) } Loading Loading
rsync/multiplex.go +24 −11 Original line number Diff line number Diff line Loading @@ -204,11 +204,19 @@ func GetFiles(data chan byte, filelist *[]FileInfo) { } fmt.Println(idx) // idx out of range? GetFile(data, &((*filelist)[idx])) GetFile(data, &((*filelist)[idx]), filelist) } } func GetFile(data chan byte, info *FileInfo) { func lookup(size int64, filelist *[]FileInfo) { for i,f := range(*filelist) { if f.Size == size { fmt.Println("True File:", i, f) } } } func GetFile(data chan byte, info *FileInfo, filelist *[]FileInfo) { path := info.Path Loading @@ -217,22 +225,27 @@ func GetFile(data chan byte, info *FileInfo) { clen := GetInteger(data) /* checksum length */ remainder := GetInteger(data) /* block remainder */ fmt.Println(path, count, blen, clen, remainder) fmt.Println(path, count, blen, clen, remainder, info.Size) buf := new(bytes.Buffer) for { t := GetInteger(data) if t == 0 { token := GetInteger(data) fmt.Println("TOKEN", token) if token == 0 { break } else if t < 0 { } else if token < 0 { // Reference } else { ctx := make([]byte, t) ctx := make([]byte, token) GetBytes(data, ctx) fmt.Println(ctx) ioutil.WriteFile("temp.txt", ctx, 0644) fmt.Println("Buff size:", buf.Len()) buf.Write(ctx) } } fmt.Println("Buff Total size:", buf.Len()) lookup(int64(buf.Len()), filelist) ioutil.WriteFile("temp.txt", buf.Bytes(), 0644) // Remote MD4 md4 := make([]byte, 16) Loading
rsync/receiver.go +16 −12 Original line number Diff line number Diff line package rsync import ( "bytes" "encoding/binary" "fmt" "io" Loading Loading @@ -126,25 +125,30 @@ func Generate(conn net.Conn, filelist *[]FileInfo) { // Those files are `basis files` var idx int32 for i:=0; i < len(*filelist); i++ { if strings.Index((*filelist)[i].Path, "src.rpm") != -1 { if strings.Index((*filelist)[i].Path, "SRPMS/Packages/p/PyXB-1.2.4-2.el7.src.rpm") != -1 { // 95533 SRPMS/Packages/z/zanata-python-client-1.5.1-1.el7.src.rpm idx = int32(i) fmt.Println("Pick:", (*filelist)[i].Path) fmt.Println("Pick:", (*filelist)[i].Path, idx) break } } buf := new(bytes.Buffer) binary.Write(buf, binary.LittleEndian, idx) fmt.Println(buf.Bytes()) conn.Write(buf.Bytes()) //buf := new(bytes.Buffer) binary.Write(conn, binary.LittleEndian, idx) //fmt.Println(buf.Bytes()) //conn.Write(buf.Bytes()) //binary.Write(conn, binary.LittleEndian, uint16(0x8000)) empty := []byte{0,0,0,0} // identifier, block count, block length, checksum length, block remainder, blocks(short+long) conn.Write(empty) binary.Write(conn, binary.LittleEndian, int32(32768)) binary.Write(conn, binary.LittleEndian, int32(2)) conn.Write(empty) conn.Write(empty) conn.Write(empty) // Empty checksum buf.Reset() binary.Write(buf, binary.LittleEndian, -1) conn.Write(buf.Bytes()) //buf.Reset() binary.Write(conn, binary.LittleEndian, int32(-1)) //conn.Write(buf.Bytes()) } Loading