fix servers with no auth

improve theme view column calculation
This commit is contained in:
neon443
2025-06-30 12:11:33 +01:00
parent 24d4ecbdf0
commit c877b14ad5
2 changed files with 30 additions and 21 deletions

View File

@@ -66,7 +66,11 @@ class SSHHandler: @unchecked Sendable, ObservableObject {
return return
} }
try? authWithNone() do {
try authWithNone()
} catch {
}
getAuthMethods() getAuthMethods()
if self.host.key != getHostkey() { if self.host.key != getHostkey() {
@@ -74,20 +78,22 @@ class SSHHandler: @unchecked Sendable, ObservableObject {
return return
} }
if !host.password.isEmpty { if state != .authorized {
do { try authWithPw() } catch { if !host.password.isEmpty {
print("pw auth error") do { try authWithPw() } catch {
print(error.localizedDescription) print("pw auth error")
} print(error.localizedDescription)
} else { }
do { } else {
if let publicKey = host.publicKey, do {
let privateKey = host.privateKey { if let publicKey = host.publicKey,
try authWithPubkey(pub: publicKey, priv: privateKey, pass: host.passphrase) let privateKey = host.privateKey {
try authWithPubkey(pub: publicKey, priv: privateKey, pass: host.passphrase)
}
} catch {
print("error with pubkey auth")
print(error.localizedDescription)
} }
} catch {
print("error with pubkey auth")
print(error.localizedDescription)
} }
} }
@@ -342,7 +348,6 @@ class SSHHandler: @unchecked Sendable, ObservableObject {
return return
} }
//always unknown idk why
func getAuthMethods() { func getAuthMethods() {
var recievedMethod: CInt var recievedMethod: CInt
recievedMethod = ssh_userauth_list(session, nil) recievedMethod = ssh_userauth_list(session, nil)

View File

@@ -18,18 +18,22 @@ struct ThemeManagerView: View {
@State var themeToRename: Theme? @State var themeToRename: Theme?
@State var rename: String = "" @State var rename: String = ""
let grid: GridItem = GridItem( var minColWidth: CGFloat {150}
.flexible(minimum: 150, maximum: 250), var spacing: CGFloat {8}
spacing: 8, var grid: GridItem {
alignment: .center GridItem(
) .flexible(minimum: minColWidth, maximum: 250),
spacing: spacing,
alignment: .center
)
}
var body: some View { var body: some View {
ZStack { ZStack {
hostsManager.selectedTheme.background.suiColor.opacity(0.7) hostsManager.selectedTheme.background.suiColor.opacity(0.7)
.ignoresSafeArea(.all) .ignoresSafeArea(.all)
GeometryReader { geo in GeometryReader { geo in
let columns: Int = Int(geo.size.width)/200 let columns: Int = max(1, Int((geo.size.width + 8) / (minColWidth + spacing)))
let layout = Array(repeating: grid, count: columns) let layout = Array(repeating: grid, count: columns)
ScrollView { ScrollView {
if hostsManager.themes.isEmpty { if hostsManager.themes.isEmpty {