Golang - модуль smb2 + основы c понимание Golang - PullRequest
0 голосов
/ 16 апреля 2020

Я пытался использовать модуль: https://godoc.org/github.com/hirochachacha/go-smb2#RemoteFile .ReadAt Для аутентификации на моем smb2 на компьютере windows процесс аутентификации идет хорошо, но их не так много. примеров сценариев там ..

Моя функция:

func connect_client(host string, port string, share string) {
    //Checks for a connection on port

    conn, err := net.Dial("tcp", host+":"+port)
    if err != nil {
        panic(err)
    }
    defer conn.Close()

    //smb auth
    d := &smb2.Dialer{
        Initiator: &smb2.NTLMInitiator{
            User:     "Testing",
            Password: "password123",
            Domain:   "win10",
        },
    }
    client, err := d.Dial(conn)
    if err != nil {
        fmt.Println("Connection failed")
    } else {
        fmt.Println("Connection Succeeded")
    }
    defer client.Logoff()
    //escape the liternal strings
    host = `\\` + host + `\` + share
    fmt.Println(host)
    fs, err := client.Mount(host)
    if err != nil {
        panic(err)
    }
    defer fs.Umount()
    fmt.Println(fs)
}

как только я распечатаю fs (* RemoteFileSystem) Я пытаюсь понять, что это значит и как я может вернуть его значение, чтобы я мог использовать его в других функциях, кроме локальной, где распознается «fs».

В конечном итоге мне нужно перечислить все доступные каталоги (например, smbclient) и проверить разрешения для их.

Из приведенного выше синтаксиса я получаю следующий вывод: & {0xc000048650 0xc0000160d8}

Может кто-нибудь объяснить мне, что это значит, и как я могу использовать это значение, чтобы вернуть его для других функций?

Спасибо!

1 Ответ

0 голосов
/ 16 апреля 2020

Итак, основываясь на комментариях, я хотел, чтобы функция возвращала значение указателя, что я сделал со следующим:

func connect_client(host string, port string, share string) *smb2.RemoteFileSystem {
 (function from above)
 return fs
}

Теперь я могу использовать этот указатель в других функциях, чтобы заставить другие функции модуля работать с ним

...