123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /*
- * @Author: LinkLeong link@icewhale.org
- * @Date: 2022-07-27 10:35:29
- * @LastEditors: LinkLeong
- * @LastEditTime: 2022-08-01 13:56:44
- * @FilePath: /CasaOS/pkg/samba/smaba.go
- * @Description:
- * @Website: https://www.casaos.io
- * Copyright (c) 2022 by icewhale, All Rights Reserved.
- */
- package samba
- import (
- "errors"
- "net"
- "github.com/hirochachacha/go-smb2"
- )
- func ConnectSambaService(host, port, username, password, directory string) error {
- conn, err := net.Dial("tcp", host+":"+port)
- if err != nil {
- return err
- }
- defer conn.Close()
- d := &smb2.Dialer{
- Initiator: &smb2.NTLMInitiator{
- User: username,
- Password: password,
- },
- }
- s, err := d.Dial(conn)
- if err != nil {
- return err
- }
- defer s.Logoff()
- names, err := s.ListSharenames()
- if err != nil {
- return err
- }
- for _, name := range names {
- if name == directory {
- return nil
- }
- }
- return errors.New("directory not found")
- }
- //get share name list
- func GetSambaSharesList(host, port, username, password string) ([]string, error) {
- conn, err := net.Dial("tcp", host+":"+port)
- if err != nil {
- return nil, err
- }
- defer conn.Close()
- d := &smb2.Dialer{
- Initiator: &smb2.NTLMInitiator{
- User: username,
- Password: password,
- },
- }
- s, err := d.Dial(conn)
- if err != nil {
- return nil, err
- }
- defer s.Logoff()
- names, err := s.ListSharenames()
- if err != nil {
- return nil, err
- }
- return names, err
- }
|