Commit 66ebf319 authored by 黄大凯's avatar 黄大凯
Browse files

Refactor:use log instead of fmt

parent 9dc7ae7e
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ func Client() {

	conn, err := net.Dial("tcp", "101.6.8.193:873")
	if err != nil {

		// TODO
	}

	defer conn.Close()
@@ -39,7 +39,9 @@ func Client() {
	// fmt.Println(readInteger(conn))
	log.Println("HandShake OK")

	data := make(chan byte, 1024*1024)
	data := make(chan byte, 16 * 1024 * 1024)


	go rsync.DeMuxChan(conn, data)

	filelist := make(rsync.FileList, 0, 3072)
+21 −19
Original line number Diff line number Diff line
@@ -3,10 +3,9 @@ package rsync
import (
	"bytes"
	"encoding/binary"
	"fmt"
	"github.com/minio/minio-go/v6"
	"golang.org/x/crypto/md4"
	"io"
	"github.com/minio/minio-go/v6"
	//"io/ioutil"
	"log"
	"net"
@@ -44,6 +43,7 @@ func RunDeMuxer(conn net.Conn) *DeMuxer {
	}
}

// Deprecated
func DeMuxBuf(conn net.Conn, buf *bytes.Buffer)  {
	for {
		// socket read the multipex data & put them to channel
@@ -57,7 +57,7 @@ func DeMuxBuf(conn net.Conn, buf *bytes.Buffer) {
		tag := header[3]	// Little Endian
		size := (binary.LittleEndian.Uint32(header) & 0xffffff)		// TODO: zero?

		fmt.Println("TAG", tag, "SIZE", size)
		log.Println("TAG", tag, "SIZE", size)

		if tag == 7 {
			body := make([]byte, size)
@@ -77,7 +77,7 @@ func DeMuxBuf(conn net.Conn, buf *bytes.Buffer) {
	}
}


// Deprecated
func DeMultiplex(conn net.Conn) error {
	// socket read the multipex data & put them to channel
		header := make([]byte, 4)		// Header size: 4 bytes
@@ -90,7 +90,7 @@ func DeMultiplex(conn net.Conn) error {
		tag := header[3]	// Little Endian
		size := (binary.LittleEndian.Uint32(header) & 0xffffff)		// TODO: zero?

		fmt.Println("TAG", tag, "SIZE", size)
		log.Println("TAG", tag, "SIZE", size)

		if tag == 7 {
			body := make([]byte, size)
@@ -101,7 +101,7 @@ func DeMultiplex(conn net.Conn) error {
				return err
			}

			fmt.Println(body)
			log.Println(body)

			//if (body[size-1] | body[size-2] | body[size-3] | body[size-4] | body[size-5]) == 0 {
			//	fmt.Println("END")
@@ -121,6 +121,7 @@ func DeMultiplex(conn net.Conn) error {
		return nil
}

// Goroutine: Demultiplex the package, and push them to channel
// data: Buffered Channel
func DeMuxChan(conn net.Conn, data chan byte) {
	for {
@@ -135,7 +136,7 @@ func DeMuxChan(conn net.Conn, data chan byte) {
		tag := header[3]	// Little Endian
		size := (binary.LittleEndian.Uint32(header) & 0xffffff)		// TODO: zero?

		fmt.Println("*****TAG", tag, "SIZE", size, "*****")
		log.Println("*****TAG", tag, "SIZE", size, "*****")

		if tag == 7 {	// MUL_BASE + MSG_DATA
			body := make([]byte, size)
@@ -205,7 +206,7 @@ func GetFiles(data chan byte, conn net.Conn, filelist *FileList) {
		if idx == -1 {
			return
		}
		fmt.Println(idx)
		log.Println("Server send the file: ", idx)
		// TODO: idx out of range?

		GetFile(data, &((*filelist)[idx]), filelist)
@@ -215,7 +216,7 @@ func GetFiles(data chan byte, conn net.Conn, filelist *FileList) {
func lookup(size int64, filelist *FileList) {
	for i,f := range(*filelist) {
		if f.Size == size {
			fmt.Println("True File:", i, f)
			log.Println("True File:", i, f)
		}
	}
}
@@ -229,11 +230,11 @@ func GetFile(data chan byte, info *FileInfo, filelist *FileList) {
	clen := GetInteger(data)  /* checksum length */
	remainder := GetInteger(data)  /* block remainder */

	fmt.Println(path, count, blen, clen, remainder, info.Size)
	log.Println(path, count, blen, clen, remainder, info.Size)
	buf := new(bytes.Buffer)
	for {
		token := GetInteger(data)
		fmt.Println("TOKEN", token)
		log.Println("TOKEN", token)
		if token == 0 {
			break
		} else if token < 0 {
@@ -241,11 +242,11 @@ func GetFile(data chan byte, info *FileInfo, filelist *FileList) {
		} else {
			ctx := make([]byte, token)
			GetBytes(data, ctx)
			fmt.Println("Buff size:", buf.Len())
			log.Println("Buff size:", buf.Len())
			buf.Write(ctx)
		}
	}
	fmt.Println("Buff Total size:", buf.Len())
	log.Println("Buff Total size:", buf.Len())
	lookup(int64(buf.Len()), filelist)
	//ioutil.WriteFile("temp.txt", buf.Bytes(), 0644)
	WriteOS(buf, path)
@@ -254,13 +255,14 @@ func GetFile(data chan byte, info *FileInfo, filelist *FileList) {
	lmd4.Write(buf.Bytes())

	// Remote MD4
	md4 := make([]byte, 16)
	GetBytes(data, md4)
	fmt.Println("MD4", md4)
	fmt.Println("Compute MD4", lmd4.Sum(nil))
	rmd4 := make([]byte, 16)
	GetBytes(data, rmd4)
	log.Println("MD4", rmd4)
	log.Println("Compute MD4", lmd4.Sum(nil))
}

func WriteOS(buf *bytes.Buffer, fname string) {
	// For test
	endpoint := "127.0.0.1:9000"
	accessKeyID := "minioadmin"
	secretAccessKey := "minioadmin"
@@ -274,7 +276,7 @@ func WriteOS(buf *bytes.Buffer, fname string) {
	// Make a new bucket called mymusic.
	bucketName := "test"
	//location := "cn"
	fmt.Println("MakeBucket")
	log.Println("Making Bucket: test")
	err = minioClient.MakeBucket(bucketName, "us-east-1")
	if err != nil {
		// Check to see if we already own this bucket (which happens if you run this twice)
@@ -288,7 +290,7 @@ func WriteOS(buf *bytes.Buffer, fname string) {
		log.Printf("Successfully created %s\n", bucketName)
	}

	fmt.Println("Update")
	log.Println("Updating")
	// Upload the zip file
	//objectName := "golden-oldies.zip"
	contentType := "application/x-rpm"
+16 −12
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ import (
	"encoding/binary"
	"fmt"
	"io"
	"log"
	"net"
	"strings"
)
@@ -23,7 +24,7 @@ func HandShake(conn net.Conn) {

	var remote_protocol, remote_sub int
	fmt.Sscanf(version_str, "@RSYNCD: %d.%d", remote_protocol, remote_sub)
	fmt.Println(version_str)
	log.Println(version_str)

	// recv(version)
	// scanf(version, "@RSYNCD: %d.%d", )
@@ -36,7 +37,7 @@ func HandShake(conn net.Conn) {
	for {
		// Wait for '@RSYNCD: OK': until \n, then add \0
		res, _ := ReadLine(conn)
		fmt.Print(res)
		log.Print(res)
		if strings.HasPrefix(res, "@RSYNCD: OK") {
			break
		}
@@ -48,7 +49,7 @@ func HandShake(conn net.Conn) {

	// read int32 as seed
	bseed := ReadInteger(conn)
	fmt.Println("SEED", bseed)
	log.Println("SEED", bseed)

	// send filter_list, empty is 32-bit zero
	conn.Write([]byte("\x00\x00\x00\x00"))
@@ -85,7 +86,7 @@ func GetFileList(ds chan byte, filelist *FileList) error {

	var partial, pathlen uint32 = 0, 0

	fmt.Println(flags)
	log.Println(">>#{flags}<<")

	if flags == 0 {
		return io.EOF
@@ -100,7 +101,7 @@ func GetFileList(ds chan byte, filelist *FileList) error {
	 */
	if (0x20 & flags) != 0 {
		partial = uint32(GetByte(ds))
		fmt.Println("Partical", partial)
		log.Println("Partical", partial)
	}

	/* Get the (possibly-remaining) filename length. */
@@ -110,7 +111,7 @@ func GetFileList(ds chan byte, filelist *FileList) error {
	} else {
		pathlen = uint32(<-ds)
	}
	fmt.Println("PathLen", pathlen)
	log.Println("PathLen", pathlen)

	/* Allocate our full filename length. */
	/* FIXME: maximum pathname length. */
@@ -129,10 +130,10 @@ func GetFileList(ds chan byte, filelist *FileList) error {
		path = last.Path[0: partial]
	}
	path += string(p)
	fmt.Println("Path ", path)
	log.Println("Path ", path)

	size := GetVarint(ds)
	fmt.Println("Size ", size)
	log.Println("Size ", size)

	/* Read the modification time. */
	var mtime int32
@@ -142,7 +143,7 @@ func GetFileList(ds chan byte, filelist *FileList) error {
	} else {
		mtime = (*filelist)[len(*filelist) - 1].Mtime
	}
	fmt.Println("MTIME ", mtime)
	log.Println("MTIME ", mtime)

	/* Read the file mode. */
	var mode int32
@@ -152,14 +153,14 @@ func GetFileList(ds chan byte, filelist *FileList) error {
	} else {
		mode = (*filelist)[len(*filelist) - 1].Mode
	}
	fmt.Println("Mode", uint32(mode))
	log.Println("Mode", uint32(mode))

	// FIXME: Sym link
	if ((mode & 32768) != 0) && ((mode & 8192) != 0) {
		len := uint32(GetInteger(ds))
		slink := make([]byte, len)
		GetBytes(ds, slink)
		fmt.Println("Symbolic Len", len, "CTX", slink)
		log.Println("Symbolic Len", len, "CTX", slink)
	}

	*filelist = append(*filelist, FileInfo{
@@ -179,10 +180,13 @@ func Generate(conn net.Conn, filelist *FileList) {
	// Compare all local files with file list, pick up the files that has different size, mtime
	// Those files are `basis files`
	var idx int32

	// TODO: Supports multi files
	// For test: here we request a file
	for i:=0; i < len(*filelist); i++ {
		if strings.Index((*filelist)[i].Path, "0ad-data-0.0.22-1.el7.src.rpm") != -1 {	// 95533 SRPMS/Packages/z/zanata-python-client-1.5.1-1.el7.src.rpmSRPMS/Packages/0/0ad-0.0.22-1.el7.src.rpm
			idx = int32(i)
			fmt.Println("Pick:", (*filelist)[i], idx)
			log.Println("Pick:", (*filelist)[i], idx)
			break
		}
	}