main.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package main
  2. import (
  3. "fmt"
  4. "net/http"
  5. "golang.org/x/net/webdav"
  6. "imuslab.com/smb/driver/mod/smb"
  7. "imuslab.com/smb/driver/mod/util"
  8. )
  9. var config *smb.Config
  10. func main() {
  11. Logger := func(r *http.Request, err error) {
  12. if err != nil {
  13. } else {
  14. }
  15. }
  16. pwd := util.PWDR()
  17. anchor1 := smb.NewAnchor("TestDir1", pwd)
  18. anchor2 := smb.NewAnchor("TestDir2", pwd)
  19. config = &smb.Config{
  20. Pwd: func(name string) (string, error) {
  21. if "name" == name || name == "apple" {
  22. return "pwd", nil
  23. }
  24. return "", fmt.Errorf("not found")
  25. },
  26. Tree: func(userName string) ([]*smb.Anchor, error) {
  27. anchorIPC := smb.NewAnchor(smb.NamedPipeShareName, pwd)
  28. return []*smb.Anchor{
  29. anchor1,
  30. anchor2,
  31. anchorIPC,
  32. }, nil
  33. },
  34. Handle: func(path string) *smb.Handler {
  35. return &smb.Handler{
  36. &webdav.Handler{
  37. Logger: Logger,
  38. Prefix: "/" + anchor1.Name + "/",
  39. FileSystem: webdav.Dir("/"),
  40. LockSystem: webdav.NewMemLS(),
  41. },
  42. }
  43. },
  44. }
  45. ser := smb.NewServer(config)
  46. go ser.Start(445)
  47. fmt.Scanln()
  48. fmt.Scanln()
  49. fmt.Scanln()
  50. }
  51. func init() {
  52. }