Commit 37393a8e authored by 黄大凯's avatar 黄大凯
Browse files

Add file generator & receiver

parent b903c8dd
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -92,6 +92,10 @@ func Client() {
	fmt.Println("IOERR", ioerr)

	// Generate target file list
	rsync.Generate(conn, &filelist)

	//fmt.Println(<-data)
	rsync.GetFiles(data, &filelist)

}

+45 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ import (
	"encoding/binary"
	"fmt"
	"io"
	"io/ioutil"
	"net"
)

@@ -194,3 +195,47 @@ func GetVarint(data chan byte) int64 {

	return GetLong(data)
}

func GetFiles(data chan byte, filelist *[]FileInfo) {
	for {
		idx := GetInteger(data)
		if idx == -1 {
			return
		}
		fmt.Println(idx)
		// idx out of range?
		GetFile(data, &((*filelist)[idx]))
	}
}

func GetFile(data chan byte, info *FileInfo) {

	path := info.Path

	count := GetInteger(data)  /* block count */
	blen := GetInteger(data)  /* block length */
	clen := GetInteger(data)  /* checksum length */
	remainder := GetInteger(data)  /* block remainder */

	fmt.Println(path, count, blen, clen, remainder)

	for {
		t := GetInteger(data)

		if t == 0 {
			break
		} else if t < 0 {
			// Reference
		} else {
			ctx := make([]byte, t)
			GetBytes(data, ctx)
			fmt.Println(ctx)
			ioutil.WriteFile("temp.txt", ctx, 0644)
		}
	}

	// Remote MD4
	md4 := make([]byte, 16)
	GetBytes(data, md4)
	fmt.Println("MD4", md4)
}
 No newline at end of file