GODT-1843: Wait for the currently running application on restart even while updating

This commit is contained in:
Romain LE JEUNE
2022-09-05 19:47:06 +02:00
parent 4e47e7ac2a
commit 5ae50047e0
16 changed files with 951 additions and 634 deletions

View File

@ -327,6 +327,19 @@ Status GRPCService::ForceLauncher(ServerContext *, StringValue const *request, E
}
//****************************************************************************************************************************************************
/// \param[in] request The request.
/// \return The status for the call.
//****************************************************************************************************************************************************
Status GRPCService::SetMainExecutable(ServerContext *, StringValue const *request, Empty *)
{
app().log().debug(__FUNCTION__);
app().log().info(QString("SetMainExecutable: %1").arg(QString::fromStdString(request->value())));
return Status::OK;
}
//****************************************************************************************************************************************************
/// \param[in] request The request
//****************************************************************************************************************************************************

View File

@ -65,6 +65,7 @@ public: // member functions.
grpc::Status CurrentEmailClient(::grpc::ServerContext *, ::google::protobuf::Empty const*, ::google::protobuf::StringValue *response) override;
grpc::Status ReportBug(::grpc::ServerContext *, ::grpc::ReportBugRequest const *request, ::google::protobuf::Empty *) override;
grpc::Status ForceLauncher(::grpc::ServerContext *, ::google::protobuf::StringValue const *request, ::google::protobuf::Empty *) override;
grpc::Status SetMainExecutable(::grpc::ServerContext *, ::google::protobuf::StringValue const *request, ::google::protobuf::Empty *) override;
grpc::Status Login(::grpc::ServerContext *, ::grpc::LoginRequest const *request, ::google::protobuf::Empty *) override;
grpc::Status Login2FA(::grpc::ServerContext *, ::grpc::LoginRequest const *request, ::google::protobuf::Empty *) override;
grpc::Status Login2Passwords(::grpc::ServerContext *, ::grpc::LoginRequest const *request, ::google::protobuf::Empty *) override;

View File

@ -332,6 +332,7 @@ int main(int argc, char *argv[])
else
{
app().log().debug(QString("Monitoring Bridge PID : %1").arg(status.pid));
connection = QObject::connect(bridgeMonitor, &ProcessMonitor::processExited, [&](int returnCode) {
bridgeExited = true;// clazy:exclude=lambda-in-connect
qGuiApp->exit(returnCode);
@ -341,7 +342,11 @@ int main(int argc, char *argv[])
int result = 0;
if (!startError)
{
// we succeed to run the bridge so we can be set as mainExecutable.
app().grpc().setMainExecutable(QString::fromLocal8Bit(argv[0]));
result = QGuiApplication::exec();
}
QObject::disconnect(connection);
app().grpc().stopEventStreamReader();

View File

@ -403,6 +403,18 @@ grpc::Status GRPCClient::forceLauncher(QString const &launcher)
}
//****************************************************************************************************************************************************
/// \return The status for the gRPC call.
//****************************************************************************************************************************************************
grpc::Status GRPCClient::setMainExecutable(QString const &exe)
{
grpc::ClientContext ctx;
StringValue s;
s.set_value(exe.toStdString());
return this->logGRPCCallStatus(stub_->SetMainExecutable(&ctx, s, &empty), __FUNCTION__);
}
//****************************************************************************************************************************************************
/// \param[in] port The port to check.
/// \param[out] outFree The result of the check.

View File

@ -71,6 +71,7 @@ public: // member functions.
grpc::Status restart(); ///< Performs the Restart gRPC call.
grpc::Status triggerReset(); ///< Performs the triggerReset gRPC call.
grpc::Status forceLauncher(QString const &launcher); ///< Performs the 'ForceLauncher' call.
grpc::Status setMainExecutable(QString const &exe); ///< Performs the 'SetMainExecutable' call.
grpc::Status isPortFree(qint32 port, bool &outFree); ///< Performs the 'IsPortFree' call.
grpc::Status showOnStartup(bool &outValue); ///< Performs the 'ShowOnStartup' call.
grpc::Status showSplashScreen(bool &outValue); ///< Performs the 'ShowSplashScreen' call.

View File

@ -46,6 +46,7 @@ static const char* Bridge_method_names[] = {
"/grpc.Bridge/CurrentEmailClient",
"/grpc.Bridge/ReportBug",
"/grpc.Bridge/ForceLauncher",
"/grpc.Bridge/SetMainExecutable",
"/grpc.Bridge/Login",
"/grpc.Bridge/Login2FA",
"/grpc.Bridge/Login2Passwords",
@ -110,37 +111,38 @@ Bridge::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, co
, rpcmethod_CurrentEmailClient_(Bridge_method_names[21], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_ReportBug_(Bridge_method_names[22], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_ForceLauncher_(Bridge_method_names[23], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_Login_(Bridge_method_names[24], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_Login2FA_(Bridge_method_names[25], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_Login2Passwords_(Bridge_method_names[26], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_LoginAbort_(Bridge_method_names[27], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_CheckUpdate_(Bridge_method_names[28], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_InstallUpdate_(Bridge_method_names[29], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_SetIsAutomaticUpdateOn_(Bridge_method_names[30], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_IsAutomaticUpdateOn_(Bridge_method_names[31], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_IsCacheOnDiskEnabled_(Bridge_method_names[32], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_DiskCachePath_(Bridge_method_names[33], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_ChangeLocalCache_(Bridge_method_names[34], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_SetIsDoHEnabled_(Bridge_method_names[35], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_IsDoHEnabled_(Bridge_method_names[36], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_SetUseSslForSmtp_(Bridge_method_names[37], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_UseSslForSmtp_(Bridge_method_names[38], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_Hostname_(Bridge_method_names[39], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_ImapPort_(Bridge_method_names[40], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_SmtpPort_(Bridge_method_names[41], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_ChangePorts_(Bridge_method_names[42], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_IsPortFree_(Bridge_method_names[43], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_AvailableKeychains_(Bridge_method_names[44], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_SetCurrentKeychain_(Bridge_method_names[45], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_CurrentKeychain_(Bridge_method_names[46], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_GetUserList_(Bridge_method_names[47], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_GetUser_(Bridge_method_names[48], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_SetUserSplitMode_(Bridge_method_names[49], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_LogoutUser_(Bridge_method_names[50], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_RemoveUser_(Bridge_method_names[51], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_ConfigureUserAppleMail_(Bridge_method_names[52], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_RunEventStream_(Bridge_method_names[53], options.suffix_for_stats(),::grpc::internal::RpcMethod::SERVER_STREAMING, channel)
, rpcmethod_StopEventStream_(Bridge_method_names[54], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_SetMainExecutable_(Bridge_method_names[24], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_Login_(Bridge_method_names[25], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_Login2FA_(Bridge_method_names[26], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_Login2Passwords_(Bridge_method_names[27], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_LoginAbort_(Bridge_method_names[28], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_CheckUpdate_(Bridge_method_names[29], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_InstallUpdate_(Bridge_method_names[30], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_SetIsAutomaticUpdateOn_(Bridge_method_names[31], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_IsAutomaticUpdateOn_(Bridge_method_names[32], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_IsCacheOnDiskEnabled_(Bridge_method_names[33], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_DiskCachePath_(Bridge_method_names[34], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_ChangeLocalCache_(Bridge_method_names[35], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_SetIsDoHEnabled_(Bridge_method_names[36], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_IsDoHEnabled_(Bridge_method_names[37], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_SetUseSslForSmtp_(Bridge_method_names[38], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_UseSslForSmtp_(Bridge_method_names[39], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_Hostname_(Bridge_method_names[40], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_ImapPort_(Bridge_method_names[41], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_SmtpPort_(Bridge_method_names[42], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_ChangePorts_(Bridge_method_names[43], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_IsPortFree_(Bridge_method_names[44], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_AvailableKeychains_(Bridge_method_names[45], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_SetCurrentKeychain_(Bridge_method_names[46], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_CurrentKeychain_(Bridge_method_names[47], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_GetUserList_(Bridge_method_names[48], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_GetUser_(Bridge_method_names[49], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_SetUserSplitMode_(Bridge_method_names[50], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_LogoutUser_(Bridge_method_names[51], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_RemoveUser_(Bridge_method_names[52], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_ConfigureUserAppleMail_(Bridge_method_names[53], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
, rpcmethod_RunEventStream_(Bridge_method_names[54], options.suffix_for_stats(),::grpc::internal::RpcMethod::SERVER_STREAMING, channel)
, rpcmethod_StopEventStream_(Bridge_method_names[55], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel)
{}
::grpc::Status Bridge::Stub::AddLogEntry(::grpc::ClientContext* context, const ::grpc::AddLogEntryRequest& request, ::google::protobuf::Empty* response) {
@ -695,6 +697,29 @@ void Bridge::Stub::async::ForceLauncher(::grpc::ClientContext* context, const ::
return result;
}
::grpc::Status Bridge::Stub::SetMainExecutable(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::google::protobuf::Empty* response) {
return ::grpc::internal::BlockingUnaryCall< ::google::protobuf::StringValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_SetMainExecutable_, context, request, response);
}
void Bridge::Stub::async::SetMainExecutable(::grpc::ClientContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response, std::function<void(::grpc::Status)> f) {
::grpc::internal::CallbackUnaryCall< ::google::protobuf::StringValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_SetMainExecutable_, context, request, response, std::move(f));
}
void Bridge::Stub::async::SetMainExecutable(::grpc::ClientContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) {
::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_SetMainExecutable_, context, request, response, reactor);
}
::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Bridge::Stub::PrepareAsyncSetMainExecutableRaw(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::grpc::CompletionQueue* cq) {
return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::google::protobuf::Empty, ::google::protobuf::StringValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_SetMainExecutable_, context, request);
}
::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* Bridge::Stub::AsyncSetMainExecutableRaw(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::grpc::CompletionQueue* cq) {
auto* result =
this->PrepareAsyncSetMainExecutableRaw(context, request, cq);
result->StartCall();
return result;
}
::grpc::Status Bridge::Stub::Login(::grpc::ClientContext* context, const ::grpc::LoginRequest& request, ::google::protobuf::Empty* response) {
return ::grpc::internal::BlockingUnaryCall< ::grpc::LoginRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_Login_, context, request, response);
}
@ -1645,12 +1670,12 @@ Bridge::Service::Service() {
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[24],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::grpc::LoginRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::StringValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
::grpc::ServerContext* ctx,
const ::grpc::LoginRequest* req,
const ::google::protobuf::StringValue* req,
::google::protobuf::Empty* resp) {
return service->Login(ctx, req, resp);
return service->SetMainExecutable(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[25],
@ -1660,7 +1685,7 @@ Bridge::Service::Service() {
::grpc::ServerContext* ctx,
const ::grpc::LoginRequest* req,
::google::protobuf::Empty* resp) {
return service->Login2FA(ctx, req, resp);
return service->Login(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[26],
@ -1670,11 +1695,21 @@ Bridge::Service::Service() {
::grpc::ServerContext* ctx,
const ::grpc::LoginRequest* req,
::google::protobuf::Empty* resp) {
return service->Login2Passwords(ctx, req, resp);
return service->Login2FA(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[27],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::grpc::LoginRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
::grpc::ServerContext* ctx,
const ::grpc::LoginRequest* req,
::google::protobuf::Empty* resp) {
return service->Login2Passwords(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[28],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::grpc::LoginAbortRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
::grpc::ServerContext* ctx,
@ -1683,7 +1718,7 @@ Bridge::Service::Service() {
return service->LoginAbort(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[28],
Bridge_method_names[29],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1693,7 +1728,7 @@ Bridge::Service::Service() {
return service->CheckUpdate(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[29],
Bridge_method_names[30],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1703,7 +1738,7 @@ Bridge::Service::Service() {
return service->InstallUpdate(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[30],
Bridge_method_names[31],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::BoolValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1713,7 +1748,7 @@ Bridge::Service::Service() {
return service->SetIsAutomaticUpdateOn(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[31],
Bridge_method_names[32],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::BoolValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1723,7 +1758,7 @@ Bridge::Service::Service() {
return service->IsAutomaticUpdateOn(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[32],
Bridge_method_names[33],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::BoolValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1733,7 +1768,7 @@ Bridge::Service::Service() {
return service->IsCacheOnDiskEnabled(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[33],
Bridge_method_names[34],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::StringValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1743,7 +1778,7 @@ Bridge::Service::Service() {
return service->DiskCachePath(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[34],
Bridge_method_names[35],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::grpc::ChangeLocalCacheRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1753,7 +1788,7 @@ Bridge::Service::Service() {
return service->ChangeLocalCache(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[35],
Bridge_method_names[36],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::BoolValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1763,7 +1798,7 @@ Bridge::Service::Service() {
return service->SetIsDoHEnabled(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[36],
Bridge_method_names[37],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::BoolValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1773,7 +1808,7 @@ Bridge::Service::Service() {
return service->IsDoHEnabled(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[37],
Bridge_method_names[38],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::BoolValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1783,7 +1818,7 @@ Bridge::Service::Service() {
return service->SetUseSslForSmtp(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[38],
Bridge_method_names[39],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::BoolValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1793,7 +1828,7 @@ Bridge::Service::Service() {
return service->UseSslForSmtp(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[39],
Bridge_method_names[40],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::StringValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1803,7 +1838,7 @@ Bridge::Service::Service() {
return service->Hostname(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[40],
Bridge_method_names[41],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::Int32Value, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1813,7 +1848,7 @@ Bridge::Service::Service() {
return service->ImapPort(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[41],
Bridge_method_names[42],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::Int32Value, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1823,7 +1858,7 @@ Bridge::Service::Service() {
return service->SmtpPort(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[42],
Bridge_method_names[43],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::grpc::ChangePortsRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1833,7 +1868,7 @@ Bridge::Service::Service() {
return service->ChangePorts(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[43],
Bridge_method_names[44],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Int32Value, ::google::protobuf::BoolValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1843,7 +1878,7 @@ Bridge::Service::Service() {
return service->IsPortFree(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[44],
Bridge_method_names[45],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::grpc::AvailableKeychainsResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1853,7 +1888,7 @@ Bridge::Service::Service() {
return service->AvailableKeychains(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[45],
Bridge_method_names[46],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::StringValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1863,7 +1898,7 @@ Bridge::Service::Service() {
return service->SetCurrentKeychain(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[46],
Bridge_method_names[47],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::StringValue, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1873,7 +1908,7 @@ Bridge::Service::Service() {
return service->CurrentKeychain(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[47],
Bridge_method_names[48],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::grpc::UserListResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1883,7 +1918,7 @@ Bridge::Service::Service() {
return service->GetUserList(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[48],
Bridge_method_names[49],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::StringValue, ::grpc::User, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1893,7 +1928,7 @@ Bridge::Service::Service() {
return service->GetUser(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[49],
Bridge_method_names[50],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::grpc::UserSplitModeRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1903,7 +1938,7 @@ Bridge::Service::Service() {
return service->SetUserSplitMode(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[50],
Bridge_method_names[51],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::StringValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1913,7 +1948,7 @@ Bridge::Service::Service() {
return service->LogoutUser(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[51],
Bridge_method_names[52],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::StringValue, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1923,7 +1958,7 @@ Bridge::Service::Service() {
return service->RemoveUser(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[52],
Bridge_method_names[53],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::grpc::ConfigureAppleMailRequest, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -1933,7 +1968,7 @@ Bridge::Service::Service() {
return service->ConfigureUserAppleMail(ctx, req, resp);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[53],
Bridge_method_names[54],
::grpc::internal::RpcMethod::SERVER_STREAMING,
new ::grpc::internal::ServerStreamingHandler< Bridge::Service, ::grpc::EventStreamRequest, ::grpc::StreamEvent>(
[](Bridge::Service* service,
@ -1943,7 +1978,7 @@ Bridge::Service::Service() {
return service->RunEventStream(ctx, req, writer);
}, this)));
AddMethod(new ::grpc::internal::RpcServiceMethod(
Bridge_method_names[54],
Bridge_method_names[55],
::grpc::internal::RpcMethod::NORMAL_RPC,
new ::grpc::internal::RpcMethodHandler< Bridge::Service, ::google::protobuf::Empty, ::google::protobuf::Empty, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(
[](Bridge::Service* service,
@ -2125,6 +2160,13 @@ Bridge::Service::~Service() {
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}
::grpc::Status Bridge::Service::SetMainExecutable(::grpc::ServerContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response) {
(void) context;
(void) request;
(void) response;
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
}
::grpc::Status Bridge::Service::Login(::grpc::ServerContext* context, const ::grpc::LoginRequest* request, ::google::protobuf::Empty* response) {
(void) context;
(void) request;

View File

@ -1467,7 +1467,7 @@ const char descriptor_table_protodef_bridge_2eproto[] PROTOBUF_SECTION_VARIABLE(
"LABLE_ERROR\020\000\022\031\n\025CACHE_CANT_MOVE_ERROR\020\001"
"\022\r\n\tDISK_FULL\020\002*A\n\025MailSettingsErrorType"
"\022\023\n\017IMAP_PORT_ISSUE\020\000\022\023\n\017SMTP_PORT_ISSUE"
"\020\0012\276\035\n\006Bridge\022\?\n\013AddLogEntry\022\030.grpc.AddL"
"\020\0012\211\036\n\006Bridge\022\?\n\013AddLogEntry\022\030.grpc.AddL"
"ogEntryRequest\032\026.google.protobuf.Empty\022:"
"\n\010GuiReady\022\026.google.protobuf.Empty\032\026.goo"
"gle.protobuf.Empty\0226\n\004Quit\022\026.google.prot"
@ -1508,62 +1508,63 @@ const char descriptor_table_protodef_bridge_2eproto[] PROTOBUF_SECTION_VARIABLE(
"ringValue\022;\n\tReportBug\022\026.grpc.ReportBugR"
"equest\032\026.google.protobuf.Empty\022E\n\rForceL"
"auncher\022\034.google.protobuf.StringValue\032\026."
"google.protobuf.Empty\0223\n\005Login\022\022.grpc.Lo"
"ginRequest\032\026.google.protobuf.Empty\0226\n\010Lo"
"gin2FA\022\022.grpc.LoginRequest\032\026.google.prot"
"obuf.Empty\022=\n\017Login2Passwords\022\022.grpc.Log"
"inRequest\032\026.google.protobuf.Empty\022=\n\nLog"
"inAbort\022\027.grpc.LoginAbortRequest\032\026.googl"
"e.protobuf.Empty\022=\n\013CheckUpdate\022\026.google"
".protobuf.Empty\032\026.google.protobuf.Empty\022"
"\?\n\rInstallUpdate\022\026.google.protobuf.Empty"
"\032\026.google.protobuf.Empty\022L\n\026SetIsAutomat"
"icUpdateOn\022\032.google.protobuf.BoolValue\032\026"
".google.protobuf.Empty\022I\n\023IsAutomaticUpd"
"ateOn\022\026.google.protobuf.Empty\032\032.google.p"
"rotobuf.BoolValue\022J\n\024IsCacheOnDiskEnable"
"google.protobuf.Empty\022I\n\021SetMainExecutab"
"le\022\034.google.protobuf.StringValue\032\026.googl"
"e.protobuf.Empty\0223\n\005Login\022\022.grpc.LoginRe"
"quest\032\026.google.protobuf.Empty\0226\n\010Login2F"
"A\022\022.grpc.LoginRequest\032\026.google.protobuf."
"Empty\022=\n\017Login2Passwords\022\022.grpc.LoginReq"
"uest\032\026.google.protobuf.Empty\022=\n\nLoginAbo"
"rt\022\027.grpc.LoginAbortRequest\032\026.google.pro"
"tobuf.Empty\022=\n\013CheckUpdate\022\026.google.prot"
"obuf.Empty\032\026.google.protobuf.Empty\022\?\n\rIn"
"stallUpdate\022\026.google.protobuf.Empty\032\026.go"
"ogle.protobuf.Empty\022L\n\026SetIsAutomaticUpd"
"ateOn\022\032.google.protobuf.BoolValue\032\026.goog"
"le.protobuf.Empty\022I\n\023IsAutomaticUpdateOn"
"\022\026.google.protobuf.Empty\032\032.google.protob"
"uf.BoolValue\022J\n\024IsCacheOnDiskEnabled\022\026.g"
"oogle.protobuf.Empty\032\032.google.protobuf.B"
"oolValue\022E\n\rDiskCachePath\022\026.google.proto"
"buf.Empty\032\034.google.protobuf.StringValue\022"
"I\n\020ChangeLocalCache\022\035.grpc.ChangeLocalCa"
"cheRequest\032\026.google.protobuf.Empty\022E\n\017Se"
"tIsDoHEnabled\022\032.google.protobuf.BoolValu"
"e\032\026.google.protobuf.Empty\022B\n\014IsDoHEnable"
"d\022\026.google.protobuf.Empty\032\032.google.proto"
"buf.BoolValue\022E\n\rDiskCachePath\022\026.google."
"protobuf.Empty\032\034.google.protobuf.StringV"
"alue\022I\n\020ChangeLocalCache\022\035.grpc.ChangeLo"
"calCacheRequest\032\026.google.protobuf.Empty\022"
"E\n\017SetIsDoHEnabled\022\032.google.protobuf.Boo"
"lValue\032\026.google.protobuf.Empty\022B\n\014IsDoHE"
"nabled\022\026.google.protobuf.Empty\032\032.google."
"protobuf.BoolValue\022F\n\020SetUseSslForSmtp\022\032"
".google.protobuf.BoolValue\032\026.google.prot"
"obuf.Empty\022C\n\rUseSslForSmtp\022\026.google.pro"
"tobuf.Empty\032\032.google.protobuf.BoolValue\022"
"@\n\010Hostname\022\026.google.protobuf.Empty\032\034.go"
"ogle.protobuf.StringValue\022\?\n\010ImapPort\022\026."
"google.protobuf.Empty\032\033.google.protobuf."
"Int32Value\022\?\n\010SmtpPort\022\026.google.protobuf"
".Empty\032\033.google.protobuf.Int32Value\022\?\n\013C"
"hangePorts\022\030.grpc.ChangePortsRequest\032\026.g"
"oogle.protobuf.Empty\022E\n\nIsPortFree\022\033.goo"
"gle.protobuf.Int32Value\032\032.google.protobu"
"f.BoolValue\022N\n\022AvailableKeychains\022\026.goog"
"le.protobuf.Empty\032 .grpc.AvailableKeycha"
"insResponse\022J\n\022SetCurrentKeychain\022\034.goog"
"le.protobuf.StringValue\032\026.google.protobu"
"f.Empty\022G\n\017CurrentKeychain\022\026.google.prot"
"obuf.Empty\032\034.google.protobuf.StringValue"
"\022=\n\013GetUserList\022\026.google.protobuf.Empty\032"
"\026.grpc.UserListResponse\0223\n\007GetUser\022\034.goo"
"gle.protobuf.StringValue\032\n.grpc.User\022F\n\020"
"SetUserSplitMode\022\032.grpc.UserSplitModeReq"
"uest\032\026.google.protobuf.Empty\022B\n\nLogoutUs"
"er\022\034.google.protobuf.StringValue\032\026.googl"
"e.protobuf.Empty\022B\n\nRemoveUser\022\034.google."
"protobuf.StringValue\032\026.google.protobuf.E"
"mpty\022Q\n\026ConfigureUserAppleMail\022\037.grpc.Co"
"nfigureAppleMailRequest\032\026.google.protobu"
"f.Empty\022\?\n\016RunEventStream\022\030.grpc.EventSt"
"reamRequest\032\021.grpc.StreamEvent0\001\022A\n\017Stop"
"EventStream\022\026.google.protobuf.Empty\032\026.go"
"ogle.protobuf.EmptyB6Z4github.com/Proton"
"Mail/proton-bridge/v2/internal/grpcb\006pro"
"to3"
"buf.BoolValue\022F\n\020SetUseSslForSmtp\022\032.goog"
"le.protobuf.BoolValue\032\026.google.protobuf."
"Empty\022C\n\rUseSslForSmtp\022\026.google.protobuf"
".Empty\032\032.google.protobuf.BoolValue\022@\n\010Ho"
"stname\022\026.google.protobuf.Empty\032\034.google."
"protobuf.StringValue\022\?\n\010ImapPort\022\026.googl"
"e.protobuf.Empty\032\033.google.protobuf.Int32"
"Value\022\?\n\010SmtpPort\022\026.google.protobuf.Empt"
"y\032\033.google.protobuf.Int32Value\022\?\n\013Change"
"Ports\022\030.grpc.ChangePortsRequest\032\026.google"
".protobuf.Empty\022E\n\nIsPortFree\022\033.google.p"
"rotobuf.Int32Value\032\032.google.protobuf.Boo"
"lValue\022N\n\022AvailableKeychains\022\026.google.pr"
"otobuf.Empty\032 .grpc.AvailableKeychainsRe"
"sponse\022J\n\022SetCurrentKeychain\022\034.google.pr"
"otobuf.StringValue\032\026.google.protobuf.Emp"
"ty\022G\n\017CurrentKeychain\022\026.google.protobuf."
"Empty\032\034.google.protobuf.StringValue\022=\n\013G"
"etUserList\022\026.google.protobuf.Empty\032\026.grp"
"c.UserListResponse\0223\n\007GetUser\022\034.google.p"
"rotobuf.StringValue\032\n.grpc.User\022F\n\020SetUs"
"erSplitMode\022\032.grpc.UserSplitModeRequest\032"
"\026.google.protobuf.Empty\022B\n\nLogoutUser\022\034."
"google.protobuf.StringValue\032\026.google.pro"
"tobuf.Empty\022B\n\nRemoveUser\022\034.google.proto"
"buf.StringValue\032\026.google.protobuf.Empty\022"
"Q\n\026ConfigureUserAppleMail\022\037.grpc.Configu"
"reAppleMailRequest\032\026.google.protobuf.Emp"
"ty\022\?\n\016RunEventStream\022\030.grpc.EventStreamR"
"equest\032\021.grpc.StreamEvent0\001\022A\n\017StopEvent"
"Stream\022\026.google.protobuf.Empty\032\026.google."
"protobuf.EmptyB6Z4github.com/ProtonMail/"
"proton-bridge/v2/internal/grpcb\006proto3"
;
static const ::_pbi::DescriptorTable* const descriptor_table_bridge_2eproto_deps[2] = {
&::descriptor_table_google_2fprotobuf_2fempty_2eproto,
@ -1571,7 +1572,7 @@ static const ::_pbi::DescriptorTable* const descriptor_table_bridge_2eproto_deps
};
static ::_pbi::once_flag descriptor_table_bridge_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_bridge_2eproto = {
false, false, 9323, descriptor_table_protodef_bridge_2eproto,
false, false, 9398, descriptor_table_protodef_bridge_2eproto,
"bridge.proto",
&descriptor_table_bridge_2eproto_once, descriptor_table_bridge_2eproto_deps, 2, 57,
schemas, file_default_instances, TableStruct_bridge_2eproto::offsets,