Question about sshFxpOpendirPacket packet
Dear, I noticed that the SFTP server bundle in the library uses an sshFxpOpenPacket to respond to an sshFxpOpendirPacket. Since I need to handle files and directories differently, I replaced the response packet with sshFxpOpenDPacket.
It seems to be working well, but I would like to ask you if this change could cause any issues.
Regards
This package has two separate server implementations. I’m confused about which precisely you’re talking about.
Maybe if you give an example of the code you changed, I could give you some feedback.
Dear,
I changed a line in the server.go:
case *sshFxpOpendirPacket: lp := s.toLocalPath(p.Path)
s.logQueue <- logmodel.LogMsg{
Level: "INFO",
Stdo: false,
Uuid: s.cUuid,
Msg: fmt.Sprintf("BROWSE folder: %s", lp)}
if stat, err := os.Stat(lp); err != nil {
rpkt = statusFromError(p.ID, err)
} else if !stat.IsDir() {
rpkt = statusFromError(p.ID, &os.PathError{
Path: lp, Err: syscall.ENOTDIR,
})
} else {
//rpkt = (&sshFxpOpenPacket{ <========= Original line
rpkt = (&sshFxpOpenDPacket{
ID: p.ID,
Path: p.Path,
Pflags: sshFxfRead,
}).respond(s)
}
Regards
This is where my confusion is coming from: there is not defined an OpenDPacket. No less, the corresponding packet name SSH_FXP_OPEN_D_PACKET does not exist in the standard: https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-02#section-3
This code also appears to be in the server.go which is the direct local-filesystem implementation, where ReadDir operates on the *os.File type https://pkg.go.dev/[email protected]#File.ReadDir and therefore, its functionality should be properly performed by sshFxpOpenPacket
uhm, certainly my mistake. I'll check the code better. Thanks for the quick reply.
Regards
Il giorno lun 29 apr 2024 alle ore 11:19 Cassondra Foesch < @.***> ha scritto:
This is where my confusion is coming from: there is not defined an OpenDPacket. No less, the corresponding packet name SSH_FXP_OPEN_D_PACKET does not exist in the standard: https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-02#section-3
This code also appears to be in the server.go which is the direct local-filesystem implementation, where ReadDir operates on the os.File type @.**#File.ReadDir and therefore, its functionality should be properly performed by sshFxpOpenPacket
— Reply to this email directly, view it on GitHub https://github.com/pkg/sftp/issues/585#issuecomment-2082240483, or unsubscribe https://github.com/notifications/unsubscribe-auth/AL7ZDKD2XNNBLTC6FBL3LJLY7YGA5AVCNFSM6AAAAABG25MYUCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBSGI2DANBYGM . You are receiving this because you authored the thread.Message ID: @.***>
--
Quando cambi il modo di guardare le cose, le cose che guardi cambieranno !! (Max Planck)