mirror of
https://github.com/owncloud/ocis
synced 2026-04-25 17:25:21 +02:00
* chore(deps): bump @testing-library/jest-dom in /services/idp
Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 6.6.4 to 6.9.1.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v6.6.4...v6.9.1)
---
updated-dependencies:
- dependency-name: "@testing-library/jest-dom"
dependency-version: 6.9.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* chore(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1
Bumps [filippo.io/edwards25519](https://github.com/FiloSottile/edwards25519) from 1.1.0 to 1.1.1.
- [Commits](https://github.com/FiloSottile/edwards25519/compare/v1.1.0...v1.1.1)
---
updated-dependencies:
- dependency-name: filippo.io/edwards25519
dependency-version: 1.1.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
* Merge branch 'master' into dependabot/go_modules/github.com/russellhaering/goxmldsig-1.6.0
* build(deps): bump alpine from 3.23.3 to 3.23.4
Bumps alpine from 3.23.3 to 3.23.4.
---
updated-dependencies:
- dependency-name: alpine
dependency-version: 3.23.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump arm64v8/alpine from 3.23.3 to 3.23.4 in /ocis/docker
Bumps arm64v8/alpine from 3.23.3 to 3.23.4.
---
updated-dependencies:
- dependency-name: arm64v8/alpine
dependency-version: 3.23.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump actions/cache from 5.0.4 to 5.0.5
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.4 to 5.0.5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](668228422a...27d5ce7f10)
---
updated-dependencies:
- dependency-name: actions/cache
dependency-version: 5.0.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump github.com/go-acme/lego/v4 from 4.25.2 to 4.34.0
Bumps [github.com/go-acme/lego/v4](https://github.com/go-acme/lego) from 4.25.2 to 4.34.0.
- [Release notes](https://github.com/go-acme/lego/releases)
- [Changelog](https://github.com/go-acme/lego/blob/master/CHANGELOG.md)
- [Commits](https://github.com/go-acme/lego/compare/v4.25.2...v4.34.0)
---
updated-dependencies:
- dependency-name: github.com/go-acme/lego/v4
dependency-version: 4.34.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump github.com/go-git/go-git/v5 from 5.17.1 to 5.18.0
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.17.1 to 5.18.0.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](https://github.com/go-git/go-git/compare/v5.17.1...v5.18.0)
---
updated-dependencies:
- dependency-name: github.com/go-git/go-git/v5
dependency-version: 5.18.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
* chore: regenerate pnpm-lock.yaml
* fix(ci): replace nc-based fakeoffice with Python HTTP server
BusyBox nc -k restarts between connections leaving a gap where the
collaboration service gets ECONNRESET at startup, so healthz never
binds and the 300s wait times out. Python HTTPServer is gap-free.
---------
Signed-off-by: dependabot[bot] <support@github.com>
130 lines
3.4 KiB
Go
130 lines
3.4 KiB
Go
//go:build windows && !appengine
|
|
// +build windows,!appengine
|
|
|
|
package isatty
|
|
|
|
import (
|
|
"errors"
|
|
"strings"
|
|
"syscall"
|
|
"unicode/utf16"
|
|
"unsafe"
|
|
)
|
|
|
|
const (
|
|
objectNameInfo uintptr = 1
|
|
fileNameInfo = 2
|
|
fileTypePipe = 3
|
|
)
|
|
|
|
var (
|
|
kernel32 = syscall.NewLazyDLL("kernel32.dll")
|
|
ntdll = syscall.NewLazyDLL("ntdll.dll")
|
|
procGetConsoleMode = kernel32.NewProc("GetConsoleMode")
|
|
procGetFileInformationByHandleEx = kernel32.NewProc("GetFileInformationByHandleEx")
|
|
procGetFileType = kernel32.NewProc("GetFileType")
|
|
procNtQueryObject = ntdll.NewProc("NtQueryObject")
|
|
)
|
|
|
|
func init() {
|
|
// Check if GetFileInformationByHandleEx is available.
|
|
if procGetFileInformationByHandleEx.Find() != nil {
|
|
procGetFileInformationByHandleEx = nil
|
|
}
|
|
// Check if NtQueryObject is available.
|
|
if procNtQueryObject.Find() != nil {
|
|
procNtQueryObject = nil
|
|
}
|
|
}
|
|
|
|
// IsTerminal return true if the file descriptor is terminal.
|
|
func IsTerminal(fd uintptr) bool {
|
|
var st uint32
|
|
r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0)
|
|
return r != 0 && e == 0
|
|
}
|
|
|
|
// Check pipe name is used for cygwin/msys2 pty.
|
|
// Cygwin/MSYS2 PTY has a name like:
|
|
// \{cygwin,msys}-XXXXXXXXXXXXXXXX-ptyN-{from,to}-master
|
|
func isCygwinPipeName(name string) bool {
|
|
token := strings.Split(name, "-")
|
|
if len(token) != 5 {
|
|
return false
|
|
}
|
|
|
|
if token[0] != `\msys` &&
|
|
token[0] != `\cygwin` &&
|
|
token[0] != `\Device\NamedPipe\msys` &&
|
|
token[0] != `\Device\NamedPipe\cygwin` {
|
|
return false
|
|
}
|
|
|
|
if token[1] == "" {
|
|
return false
|
|
}
|
|
|
|
if !strings.HasPrefix(token[2], "pty") {
|
|
return false
|
|
}
|
|
|
|
if token[3] != `from` && token[3] != `to` {
|
|
return false
|
|
}
|
|
|
|
if token[4] != "master" {
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
// getFileNameByHandle use the undocumented ntdll NtQueryObject to get file full name from file handler
|
|
// since GetFileInformationByHandleEx is not available under windows Vista and still some old fashion
|
|
// guys are using Windows XP, this is a workaround for those guys, it will also work on system from
|
|
// Windows Vista to 10
|
|
// see https://stackoverflow.com/a/18792477 for details
|
|
func getFileNameByHandle(fd uintptr) (string, error) {
|
|
if procNtQueryObject == nil {
|
|
return "", errors.New("ntdll.dll: NtQueryObject not supported")
|
|
}
|
|
|
|
var buf [4 + syscall.MAX_PATH]uint16
|
|
var result int
|
|
r, _, e := syscall.Syscall6(procNtQueryObject.Addr(), 5,
|
|
fd, objectNameInfo, uintptr(unsafe.Pointer(&buf)), uintptr(2*len(buf)), uintptr(unsafe.Pointer(&result)), 0)
|
|
if r != 0 {
|
|
return "", e
|
|
}
|
|
return string(utf16.Decode(buf[4 : 4+buf[0]/2])), nil
|
|
}
|
|
|
|
// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2
|
|
// terminal.
|
|
func IsCygwinTerminal(fd uintptr) bool {
|
|
if procGetFileInformationByHandleEx == nil {
|
|
name, err := getFileNameByHandle(fd)
|
|
if err != nil {
|
|
return false
|
|
}
|
|
return isCygwinPipeName(name)
|
|
}
|
|
|
|
// Cygwin/msys's pty is a pipe.
|
|
ft, _, e := syscall.Syscall(procGetFileType.Addr(), 1, fd, 0, 0)
|
|
if ft != fileTypePipe || e != 0 {
|
|
return false
|
|
}
|
|
|
|
var buf [2 + syscall.MAX_PATH]uint16
|
|
r, _, e := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(),
|
|
4, fd, fileNameInfo, uintptr(unsafe.Pointer(&buf)),
|
|
uintptr(len(buf)*2), 0, 0)
|
|
if r == 0 || e != 0 {
|
|
return false
|
|
}
|
|
|
|
l := *(*uint32)(unsafe.Pointer(&buf))
|
|
return isCygwinPipeName(string(utf16.Decode(buf[2 : 2+l/2])))
|
|
}
|