mirror of
https://github.com/schollz/croc.git
synced 2025-10-11 13:21:00 +02:00
excahnge machine id
This commit is contained in:
parent
ef76aa67aa
commit
3170737aa5
1 changed files with 31 additions and 4 deletions
|
@ -87,6 +87,7 @@ type Client struct {
|
||||||
|
|
||||||
bar *progressbar.ProgressBar
|
bar *progressbar.ProgressBar
|
||||||
spinner *spinner.Spinner
|
spinner *spinner.Spinner
|
||||||
|
machineID string
|
||||||
|
|
||||||
mutex *sync.Mutex
|
mutex *sync.Mutex
|
||||||
quit chan bool
|
quit chan bool
|
||||||
|
@ -121,6 +122,8 @@ type RemoteFileRequest struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type SenderInfo struct {
|
type SenderInfo struct {
|
||||||
|
MachineID string
|
||||||
|
FilesToTransfer []FileInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m Message) String() string {
|
func (m Message) String() string {
|
||||||
|
@ -274,6 +277,7 @@ func (c *Client) transfer(options TransferOptions) (err error) {
|
||||||
if len(machID) > 6 {
|
if len(machID) > 6 {
|
||||||
machID = machID[:6]
|
machID = machID[:6]
|
||||||
}
|
}
|
||||||
|
c.machineID = machID
|
||||||
fmt.Fprintf(os.Stderr, "Sending %s (%s) from your machine, '%s'\n", fname, utils.ByteCountDecimal(totalFilesSize), machID)
|
fmt.Fprintf(os.Stderr, "Sending %s (%s) from your machine, '%s'\n", fname, utils.ByteCountDecimal(totalFilesSize), machID)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -388,10 +392,25 @@ func (c *Client) processMessage(m Message) (err error) {
|
||||||
c.Step1ChannelSecured = true
|
c.Step1ChannelSecured = true
|
||||||
}
|
}
|
||||||
case "fileinfo":
|
case "fileinfo":
|
||||||
err = json.Unmarshal(m.Bytes, &c.FilesToTransfer)
|
var senderInfo SenderInfo
|
||||||
|
err = json.Unmarshal(m.Bytes, &senderInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
log.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
c.FilesToTransfer = senderInfo.FilesToTransfer
|
||||||
|
fname := fmt.Sprintf("%d files", len(c.FilesToTransfer))
|
||||||
|
if len(c.FilesToTransfer) == 1 {
|
||||||
|
fname = fmt.Sprintf("'%s'", c.FilesToTransfer[0].Name)
|
||||||
|
}
|
||||||
|
totalSize := int64(0)
|
||||||
|
for _, fi := range c.FilesToTransfer {
|
||||||
|
totalSize += fi.Size
|
||||||
|
}
|
||||||
|
c.spinner.Stop()
|
||||||
|
fmt.Fprintf(os.Stderr, "\rAccept %s (%s) from machine '%s'? (y/n) ", fname, utils.ByteCountDecimal(totalSize), senderInfo.MachineID)
|
||||||
|
utils.GetInput("")
|
||||||
|
// TODO: accept file question?
|
||||||
c.log.Debug(c.FilesToTransfer)
|
c.log.Debug(c.FilesToTransfer)
|
||||||
c.Step2FileInfoTransfered = true
|
c.Step2FileInfoTransfered = true
|
||||||
case "recipientready":
|
case "recipientready":
|
||||||
|
@ -470,7 +489,15 @@ func (c *Client) processMessage(m Message) (err error) {
|
||||||
|
|
||||||
func (c *Client) updateState() (err error) {
|
func (c *Client) updateState() (err error) {
|
||||||
if c.IsSender && c.Step1ChannelSecured && !c.Step2FileInfoTransfered {
|
if c.IsSender && c.Step1ChannelSecured && !c.Step2FileInfoTransfered {
|
||||||
b, _ := json.Marshal(c.FilesToTransfer)
|
var b []byte
|
||||||
|
b, err = json.Marshal(SenderInfo{
|
||||||
|
MachineID: c.machineID,
|
||||||
|
FilesToTransfer: c.FilesToTransfer,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
log.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
err = c.redisdb.Publish(c.nameOutChannel, Message{
|
err = c.redisdb.Publish(c.nameOutChannel, Message{
|
||||||
Type: "fileinfo",
|
Type: "fileinfo",
|
||||||
Bytes: b,
|
Bytes: b,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue