mirror of
https://gitlab.com/fabinfra/fabaccess/borepin.git
synced 2025-03-13 07:11:56 +01:00
Fixed: Android Deadlock from RPC Connection
This commit is contained in:
parent
bf091e4818
commit
65ea3ef6e9
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -4,3 +4,6 @@
|
|||||||
[submodule "external/SASL"]
|
[submodule "external/SASL"]
|
||||||
path = external/SASL
|
path = external/SASL
|
||||||
url = https://github.com/kjkriegel/S22.Sasl.git
|
url = https://github.com/kjkriegel/S22.Sasl.git
|
||||||
|
[submodule "external/CapnProto"]
|
||||||
|
path = external/CapnProto
|
||||||
|
url = git@github.com:c80k/capnproto-dotnetcore.git
|
||||||
|
28
Borepin.sln
28
Borepin.sln
@ -23,7 +23,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FabAccessAPI", "FabAccessAP
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "S22.Sasl", "external\SASL\S22.Sasl.csproj", "{7FEC3D5E-C240-41B6-BBFA-895C4F4D45CA}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "S22.Sasl", "external\SASL\S22.Sasl.csproj", "{7FEC3D5E-C240-41B6-BBFA-895C4F4D45CA}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FabAccessAPI_Test", "FabAccessAPI_Test\FabAccessAPI_Test.csproj", "{1C85978A-9FC0-4064-8399-FA2455C5EC2A}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FabAccessAPI_Test", "FabAccessAPI_Test\FabAccessAPI_Test.csproj", "{1C85978A-9FC0-4064-8399-FA2455C5EC2A}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Capnp.Net.Runtime", "external\CapnProto\Capnp.Net.Runtime\Capnp.Net.Runtime.csproj", "{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@ -353,6 +355,30 @@ Global
|
|||||||
{1C85978A-9FC0-4064-8399-FA2455C5EC2A}.Release|x64.Build.0 = Release|Any CPU
|
{1C85978A-9FC0-4064-8399-FA2455C5EC2A}.Release|x64.Build.0 = Release|Any CPU
|
||||||
{1C85978A-9FC0-4064-8399-FA2455C5EC2A}.Release|x86.ActiveCfg = Release|Any CPU
|
{1C85978A-9FC0-4064-8399-FA2455C5EC2A}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{1C85978A-9FC0-4064-8399-FA2455C5EC2A}.Release|x86.Build.0 = Release|Any CPU
|
{1C85978A-9FC0-4064-8399-FA2455C5EC2A}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Release|iPhone.Build.0 = Release|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{2B1EB47B-C63B-4C0D-AFB4-F6C98823CF93}.Release|x86.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
using Android.App;
|
using Android.App;
|
||||||
using Android.Content.PM;
|
using Android.Content.PM;
|
||||||
using Android.Runtime;
|
|
||||||
using Android.Views;
|
|
||||||
using Android.Widget;
|
|
||||||
using Android.OS;
|
using Android.OS;
|
||||||
|
|
||||||
namespace Borepin.Droid
|
namespace Borepin.Droid
|
||||||
|
@ -3,4 +3,5 @@
|
|||||||
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
|
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
|
||||||
<application android:theme="@style/MainTheme" android:label="FabAccess"></application>
|
<application android:theme="@style/MainTheme" android:label="FabAccess"></application>
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
</manifest>
|
</manifest>
|
@ -1,5 +1,4 @@
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using Android.App;
|
using Android.App;
|
||||||
|
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
using Android.App;
|
using Android.App;
|
||||||
using Android.OS;
|
|
||||||
using Android.Support.V7.App;
|
using Android.Support.V7.App;
|
||||||
using Android.Content;
|
using Android.Content;
|
||||||
using Android.Util;
|
|
||||||
|
|
||||||
namespace Borepin.Droid
|
namespace Borepin.Droid
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
// Allgemeine Informationen über eine Assembly werden über die folgenden
|
// Allgemeine Informationen über eine Assembly werden über die folgenden
|
||||||
|
@ -1,18 +1,8 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Runtime.InteropServices.WindowsRuntime;
|
|
||||||
using Windows.ApplicationModel;
|
using Windows.ApplicationModel;
|
||||||
using Windows.ApplicationModel.Activation;
|
using Windows.ApplicationModel.Activation;
|
||||||
using Windows.Foundation;
|
|
||||||
using Windows.Foundation.Collections;
|
|
||||||
using Windows.UI.Xaml;
|
using Windows.UI.Xaml;
|
||||||
using Windows.UI.Xaml.Controls;
|
using Windows.UI.Xaml.Controls;
|
||||||
using Windows.UI.Xaml.Controls.Primitives;
|
|
||||||
using Windows.UI.Xaml.Data;
|
|
||||||
using Windows.UI.Xaml.Input;
|
|
||||||
using Windows.UI.Xaml.Media;
|
|
||||||
using Windows.UI.Xaml.Navigation;
|
using Windows.UI.Xaml.Navigation;
|
||||||
|
|
||||||
namespace Borepin.UWP
|
namespace Borepin.UWP
|
||||||
|
@ -1,19 +1,4 @@
|
|||||||
using System;
|
namespace Borepin.UWP
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Runtime.InteropServices.WindowsRuntime;
|
|
||||||
using Windows.Foundation;
|
|
||||||
using Windows.Foundation.Collections;
|
|
||||||
using Windows.UI.Xaml;
|
|
||||||
using Windows.UI.Xaml.Controls;
|
|
||||||
using Windows.UI.Xaml.Controls.Primitives;
|
|
||||||
using Windows.UI.Xaml.Data;
|
|
||||||
using Windows.UI.Xaml.Input;
|
|
||||||
using Windows.UI.Xaml.Media;
|
|
||||||
using Windows.UI.Xaml.Navigation;
|
|
||||||
|
|
||||||
namespace Borepin.UWP
|
|
||||||
{
|
{
|
||||||
public sealed partial class MainPage
|
public sealed partial class MainPage
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
// General Information about an assembly is controlled through the following
|
// General Information about an assembly is controlled through the following
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
using Foundation;
|
using Foundation;
|
||||||
using UIKit;
|
using UIKit;
|
||||||
|
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
using UIKit;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
using Foundation;
|
|
||||||
using UIKit;
|
|
||||||
|
|
||||||
namespace Borepin.iOS
|
namespace Borepin.iOS
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
// General Information about an assembly is controlled through the following
|
// General Information about an assembly is controlled through the following
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
using Foundation;
|
using Foundation;
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Platform.MacOS;
|
using Xamarin.Forms.Platform.MacOS;
|
||||||
using Borepin;
|
|
||||||
|
|
||||||
namespace Borepin.macOS
|
namespace Borepin.macOS
|
||||||
{
|
{
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace Borepin.Model
|
namespace Borepin.Model
|
||||||
{
|
{
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using Borepin.Model;
|
using Borepin.Service.BFFH;
|
||||||
using Borepin.Service.BFFH;
|
|
||||||
using Borepin.Service.Connections;
|
using Borepin.Service.Connections;
|
||||||
using Prism.Mvvm;
|
using Prism.Mvvm;
|
||||||
using Prism.Navigation;
|
using Prism.Navigation;
|
||||||
@ -63,7 +62,7 @@ namespace Borepin.PageModel
|
|||||||
builder.Port = 59661;
|
builder.Port = 59661;
|
||||||
}
|
}
|
||||||
|
|
||||||
Connection connection = new Connection()
|
Model.Connection connection = new Model.Connection()
|
||||||
{
|
{
|
||||||
Address = builder.Uri
|
Address = builder.Uri
|
||||||
};
|
};
|
||||||
@ -71,7 +70,7 @@ namespace Borepin.PageModel
|
|||||||
await _BFFHService.Connect(connection);
|
await _BFFHService.Connect(connection);
|
||||||
|
|
||||||
INavigationResult result = await _NavigationService.NavigateAsync("LoginChoosePage");
|
INavigationResult result = await _NavigationService.NavigateAsync("LoginChoosePage");
|
||||||
if (!result.Success)
|
if(!result.Success)
|
||||||
{
|
{
|
||||||
System.Diagnostics.Debugger.Break();
|
System.Diagnostics.Debugger.Break();
|
||||||
}
|
}
|
||||||
@ -87,7 +86,7 @@ namespace Borepin.PageModel
|
|||||||
private void DetectHostCommandExecuted()
|
private void DetectHostCommandExecuted()
|
||||||
{
|
{
|
||||||
// Use Demo Host
|
// Use Demo Host
|
||||||
Host = "127.0.0.1:59661";
|
Host = "192.168.178.20:59661";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
using Prism.Mvvm;
|
using Prism.Mvvm;
|
||||||
using Prism.Navigation;
|
using Prism.Navigation;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
using Borepin.Model;
|
using Borepin.Model;
|
||||||
using Borepin.Service.BFFH;
|
using Borepin.Service.BFFH;
|
||||||
using Borepin.Service.Connections;
|
using Borepin.Service.Connections;
|
||||||
|
using Prism.Commands;
|
||||||
using Prism.Mvvm;
|
using Prism.Mvvm;
|
||||||
using Prism.Navigation;
|
using Prism.Navigation;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
using Xamarin.Forms;
|
|
||||||
|
|
||||||
namespace Borepin.PageModel
|
namespace Borepin.PageModel
|
||||||
{
|
{
|
||||||
@ -21,7 +21,7 @@ namespace Borepin.PageModel
|
|||||||
_BFFHService = bffhService;
|
_BFFHService = bffhService;
|
||||||
_ConnectionService = connectionService;
|
_ConnectionService = connectionService;
|
||||||
|
|
||||||
AuthenticateCommand = new Command(AuthenticateCommandExecuted);
|
AuthenticateCommand = new DelegateCommand(async () => await AuthenticateCommandExecuted());
|
||||||
|
|
||||||
Task.Run(LoadData);
|
Task.Run(LoadData);
|
||||||
}
|
}
|
||||||
@ -52,17 +52,18 @@ namespace Borepin.PageModel
|
|||||||
set => SetProperty(ref _AuthenticateCommand, value);
|
set => SetProperty(ref _AuthenticateCommand, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void AuthenticateCommandExecuted()
|
private async Task AuthenticateCommandExecuted()
|
||||||
{
|
{
|
||||||
Connection connection_update = _BFFHService.ActiveConnection;
|
Connection connection_update = _BFFHService.ActiveConnection;
|
||||||
|
|
||||||
connection_update.Username = Username;
|
connection_update.Username = Username;
|
||||||
|
|
||||||
await _BFFHService.Authenticate(connection_update, Password);
|
await _BFFHService.Authenticate(connection_update, Password);
|
||||||
|
|
||||||
await _ConnectionService.AddConnection(_BFFHService.ActiveConnection);
|
await _ConnectionService.AddConnection(_BFFHService.ActiveConnection);
|
||||||
await _ConnectionService.LogConnect(_BFFHService.ActiveConnection);
|
await _ConnectionService.LogConnect(_BFFHService.ActiveConnection);
|
||||||
|
|
||||||
var result = await _NavigationService.NavigateAsync("/MainPage/NavigationPage/MachinesPage");
|
var result = await _NavigationService.NavigateAsync("/MainPage/NavigationPage/MachineListPage");
|
||||||
|
|
||||||
if (!result.Success)
|
if (!result.Success)
|
||||||
{
|
{
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
using Borepin.Model;
|
using Borepin.Model;
|
||||||
using Borepin.Service.BFFH;
|
|
||||||
using Prism.Commands;
|
using Prism.Commands;
|
||||||
using Prism.Mvvm;
|
using Prism.Mvvm;
|
||||||
using Prism.Navigation;
|
using Prism.Navigation;
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
using Xamarin.Forms;
|
|
||||||
using static FabAccessAPI.Schema.Machine.WriteInterface;
|
using static FabAccessAPI.Schema.Machine.WriteInterface;
|
||||||
|
|
||||||
namespace Borepin.PageModel
|
namespace Borepin.PageModel
|
||||||
|
@ -6,6 +6,7 @@ using Prism.Commands;
|
|||||||
using Prism.Mvvm;
|
using Prism.Mvvm;
|
||||||
using Prism.Navigation;
|
using Prism.Navigation;
|
||||||
using Prism.Services.Dialogs;
|
using Prism.Services.Dialogs;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
|
|
||||||
namespace Borepin.PageModel
|
namespace Borepin.PageModel
|
||||||
@ -27,7 +28,7 @@ namespace Borepin.PageModel
|
|||||||
_BFFHService = bffhService;
|
_BFFHService = bffhService;
|
||||||
_CredentialService = credentialService;
|
_CredentialService = credentialService;
|
||||||
|
|
||||||
ConnectCommand = new DelegateCommand(ConnectCommandExecuted);
|
ConnectCommand = new DelegateCommand(async () => await ConnectCommandExecuted());
|
||||||
DeleteCommand = new DelegateCommand(DeleteCommandExecuted);
|
DeleteCommand = new DelegateCommand(DeleteCommandExecuted);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,7 +56,7 @@ namespace Borepin.PageModel
|
|||||||
set => SetProperty(ref _ConnectCommand, value);
|
set => SetProperty(ref _ConnectCommand, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void ConnectCommandExecuted()
|
private async Task ConnectCommandExecuted()
|
||||||
{
|
{
|
||||||
if(IsConnected)
|
if(IsConnected)
|
||||||
{
|
{
|
||||||
|
@ -3,6 +3,8 @@ using Borepin.Service.Credentials;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Capnp.Rpc;
|
using Capnp.Rpc;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Threading;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace Borepin.Service.BFFH
|
namespace Borepin.Service.BFFH
|
||||||
{
|
{
|
||||||
@ -32,13 +34,8 @@ namespace Borepin.Service.BFFH
|
|||||||
|
|
||||||
rpcClient.Connect(connection.Address.Host, connection.Address.Port);
|
rpcClient.Connect(connection.Address.Host, connection.Address.Port);
|
||||||
|
|
||||||
await Task.Run(async () =>
|
// IMPORTANT: without ConfigureAwait(false) every Call for CapnProto Runtime deadlocks on Android
|
||||||
{
|
await rpcClient.WhenConnected.ConfigureAwait(false);
|
||||||
while (rpcClient.State == ConnectionState.Initializing)
|
|
||||||
{
|
|
||||||
await Task.Delay(100);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
FabAccessAPI.Connection connection_test = new FabAccessAPI.Connection(rpcClient);
|
FabAccessAPI.Connection connection_test = new FabAccessAPI.Connection(rpcClient);
|
||||||
|
|
||||||
@ -62,7 +59,7 @@ namespace Borepin.Service.BFFH
|
|||||||
{
|
{
|
||||||
string password = await _CredentialService.GetPasswordAsync(ActiveConnection);
|
string password = await _CredentialService.GetPasswordAsync(ActiveConnection);
|
||||||
|
|
||||||
await _Connection.Auth("PLAIN", new Dictionary<string, object> { { "Username", ActiveConnection.Username }, { "Password", password } });
|
await _Connection.Auth("PLAIN", new Dictionary<string, object> { { "Username", ActiveConnection.Username }, { "Password", "secret" } });
|
||||||
|
|
||||||
return await Task.FromResult(true);
|
return await Task.FromResult(true);
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
using Borepin.Model;
|
using Prism.Mvvm;
|
||||||
using FabAccessAPI;
|
|
||||||
using Prism.Mvvm;
|
|
||||||
|
|
||||||
namespace Borepin.ViewModel
|
namespace Borepin.ViewModel
|
||||||
{
|
{
|
||||||
|
@ -1,14 +1,12 @@
|
|||||||
using Capnp;
|
using FabAccessAPI.Schema;
|
||||||
using FabAccessAPI.Schema;
|
|
||||||
using S22.Sasl;
|
using S22.Sasl;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Exception = System.Exception;
|
using Exception = System.Exception;
|
||||||
|
|
||||||
namespace FabAccessAPI {
|
namespace FabAccessAPI
|
||||||
|
{
|
||||||
/// Authentication Identity
|
/// Authentication Identity
|
||||||
///
|
///
|
||||||
/// Under the hood a string because the form depends heavily on the method
|
/// Under the hood a string because the form depends heavily on the method
|
||||||
|
@ -3,6 +3,7 @@ using FabAccessAPI.Schema;
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace FabAccessAPI {
|
namespace FabAccessAPI {
|
||||||
@ -37,18 +38,18 @@ namespace FabAccessAPI {
|
|||||||
/// <param name="mech">The desired authentication mechanism</param>
|
/// <param name="mech">The desired authentication mechanism</param>
|
||||||
/// <param name="kvs">Key-Value data specific to the mechanism</param>
|
/// <param name="kvs">Key-Value data specific to the mechanism</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task Auth(string mech, Dictionary<string, object> kvs) {
|
public async Task Auth(string mech, Dictionary<string, object> kvs, CancellationToken cancellationToken_ = default) {
|
||||||
// _bootstrapCap = await _bootstrapCap.Unwrap();
|
// _bootstrapCap = await _bootstrapCap.Unwrap();
|
||||||
var authCap = await _bootstrapCap.Auth();
|
var authCap = await _bootstrapCap.Auth(cancellationToken_);
|
||||||
_auth = new Auth(authCap);
|
_auth = new Auth(authCap);
|
||||||
var mechs = await _auth.GetMechanisms().ConfigureAwait(false);
|
var mechs = await _auth.GetMechanisms();
|
||||||
_Log.Debug($"The Server supports the following auth mechs: {string.Join(", ", mechs)}");
|
_Log.Debug($"The Server supports the following auth mechs: {string.Join(", ", mechs)}");
|
||||||
|
|
||||||
if (!mechs.Contains(mech)) {
|
if (!mechs.Contains(mech)) {
|
||||||
throw new UnsupportedMechanismException();
|
throw new UnsupportedMechanismException();
|
||||||
}
|
}
|
||||||
|
|
||||||
await _auth.Authenticate(mech, kvs).ConfigureAwait(false);
|
await _auth.Authenticate(mech, kvs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -56,7 +57,7 @@ namespace FabAccessAPI {
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>A wrapped capability to interact with machines</returns>
|
/// <returns>A wrapped capability to interact with machines</returns>
|
||||||
public async Task<Machines> AccessMachines() {
|
public async Task<Machines> AccessMachines() {
|
||||||
_machines ??= new Machines((await _bootstrapCap.Machines().ConfigureAwait(false)));
|
_machines ??= new Machines(await _bootstrapCap.Machines());
|
||||||
return _machines;
|
return _machines;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,13 +11,14 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Capnp.Net.Runtime" Version="1.3.118" />
|
|
||||||
<PackageReference Include="CapnpC.CSharp.MsBuild.Generation" Version="1.3.118" />
|
<PackageReference Include="CapnpC.CSharp.MsBuild.Generation" Version="1.3.118" />
|
||||||
<PackageReference Include="log4net" Version="2.0.12" />
|
<PackageReference Include="log4net" Version="2.0.12" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="5.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="5.0.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\capnproto-dotnetcore\Capnp.Net.Runtime\Capnp.Net.Runtime.csproj" />
|
||||||
|
<ProjectReference Include="..\external\CapnProto\Capnp.Net.Runtime\Capnp.Net.Runtime.csproj" />
|
||||||
<ProjectReference Include="..\external\SASL\S22.Sasl.csproj" />
|
<ProjectReference Include="..\external\SASL\S22.Sasl.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
using FabAccessAPI.Schema;
|
using FabAccessAPI.Schema;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace FabAccessAPI {
|
namespace FabAccessAPI
|
||||||
|
{
|
||||||
|
|
||||||
public class MachineException : Exception { }
|
public class MachineException : Exception { }
|
||||||
|
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
using System;
|
//This is where the permissions subsystem will live
|
||||||
using System.Collections.Generic;
|
namespace FabAccessAPI
|
||||||
using System.Text;
|
{
|
||||||
|
|
||||||
|
|
||||||
//This is where the permissions subsystem will live
|
|
||||||
namespace FabAccessAPI {
|
|
||||||
public class Permissions {
|
public class Permissions {
|
||||||
#region Log
|
#region Log
|
||||||
private static readonly log4net.ILog _Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly log4net.ILog _Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace NFC_Unit_Test.Crypto
|
namespace NFC_Unit_Test.Crypto
|
||||||
{
|
{
|
||||||
|
1
external/CapnProto
vendored
Submodule
1
external/CapnProto
vendored
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit c2d17d689cd262bf9bf03366f1364d80c864b862
|
Loading…
x
Reference in New Issue
Block a user