forked from TrueCloudLab/rclone
vendor: update github.com/t3rm1n4l/go-mega to fix mega "illegal base64 data at input byte 22"
Thanks to Ajaja for figuring this out. See: https://forum.rclone.org/t/problem-to-login-with-mega/12276
This commit is contained in:
parent
87c844bce1
commit
92662baceb
41 changed files with 643 additions and 5107 deletions
19
vendor/github.com/t3rm1n4l/go-mega/mega.go
generated
vendored
19
vendor/github.com/t3rm1n4l/go-mega/mega.go
generated
vendored
|
@ -704,11 +704,20 @@ func (m *Mega) addFSNode(itm FSNode) (*Node, error) {
|
|||
switch {
|
||||
case itm.T == FOLDER || itm.T == FILE:
|
||||
args := strings.Split(itm.Key, ":")
|
||||
if len(args) < 2 {
|
||||
return nil, fmt.Errorf("not enough : in item.Key: %q", itm.Key)
|
||||
}
|
||||
itemUser, itemKey := args[0], args[1]
|
||||
itemKeyParts := strings.Split(itemKey, "/")
|
||||
if len(itemKeyParts) >= 2 {
|
||||
itemKey = itemKeyParts[0]
|
||||
// the other part is maybe a share key handle?
|
||||
}
|
||||
|
||||
switch {
|
||||
// File or folder owned by current user
|
||||
case args[0] == itm.User:
|
||||
buf, err := base64urldecode(args[1])
|
||||
case itemUser == itm.User:
|
||||
buf, err := base64urldecode(itemKey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -736,7 +745,7 @@ func (m *Mega) addFSNode(itm FSNode) (*Node, error) {
|
|||
}
|
||||
|
||||
m.FS.skmap[itm.Hash] = itm.SKey
|
||||
buf, err := base64urldecode(args[1])
|
||||
buf, err := base64urldecode(itemKey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -750,7 +759,7 @@ func (m *Mega) addFSNode(itm FSNode) (*Node, error) {
|
|||
}
|
||||
// Shared file
|
||||
default:
|
||||
k := m.FS.skmap[args[0]]
|
||||
k := m.FS.skmap[itemUser]
|
||||
b, err := base64urldecode(k)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -763,7 +772,7 @@ func (m *Mega) addFSNode(itm FSNode) (*Node, error) {
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
buf, err := base64urldecode(args[1])
|
||||
buf, err := base64urldecode(itemKey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue