Other: update gui tester to support latest changes in gRPC implementation.

This commit is contained in:
Xavier Michelon
2022-11-29 11:16:40 +01:00
parent 3408e8427d
commit 7533dc952d
15 changed files with 80 additions and 152 deletions

View File

@ -420,8 +420,6 @@ SPStreamEvent newDiskCachePathChangeFinishedEvent()
return wrapCacheEvent(cacheEvent);
}
SPStreamEvent newChangeMailServerSettingsFinished(); ///< Create a new ChangeMailServerSettingsFinished event.
//****************************************************************************************************************************************************
/// \param[in] errorType The error type.
/// \return The event.
@ -440,10 +438,10 @@ SPStreamEvent newMailServerSettingsErrorEvent(grpc::MailServerSettingsErrorType
/// \param[in] settings The settings.
/// \return The event.
//****************************************************************************************************************************************************
SPStreamEvent newMailServerSettingsChanged(grpc::ImapSmtpSettings *settings)
SPStreamEvent newMailServerSettingsChanged(grpc::ImapSmtpSettings const &settings)
{
auto event = new grpc::MailServerSettingsChangedEvent;
event->set_allocated_settings(settings);
event->set_allocated_settings(new grpc::ImapSmtpSettings(settings));
auto mailServerSettingsEvent = new grpc::MailServerSettingsEvent;
mailServerSettingsEvent->set_allocated_mailserversettingschanged(event);
return wrapMailServerSettingsEvent(mailServerSettingsEvent);

View File

@ -60,7 +60,7 @@ SPStreamEvent newDiskCachePathChangeFinishedEvent(); ///< Create a new DiskCache
// Mail settings related events
SPStreamEvent newMailServerSettingsErrorEvent(grpc::MailServerSettingsErrorType errorType); ///< Create a new MailSettingsErrorEvent event.
SPStreamEvent newMailServerSettingsChanged(grpc::ImapSmtpSettings settings); ///< Create a new ConnectionModeChanged event.
SPStreamEvent newMailServerSettingsChanged(grpc::ImapSmtpSettings const &settings); ///< Create a new ConnectionModeChanged event.
SPStreamEvent newChangeMailServerSettingsFinished(); ///< Create a new ChangeMailServerSettingsFinished event.
// keychain related events

View File

@ -40,14 +40,6 @@ qint64 const grpcConnectionWaitTimeoutMs = 60000; ///< Timeout for the connectio
qint64 const grpcConnectionRetryDelayMs = 10000; ///< Retry delay for the gRPC connection in milliseconds.
//****************************************************************************************************************************************************
/// return true if gRPC connection should use file socket instead of TCP socket.
//****************************************************************************************************************************************************
bool useFileSocket() {
return !onWindows();
}
} // anonymous namespace
@ -124,7 +116,7 @@ bool GRPCClient::connectToServer(GRPCConfig const &config, ProcessMonitor *serve
serverToken_ = config.token.toStdString();
QString address;
grpc::ChannelArguments chanArgs;
if (useFileSocket())
if (useFileSocketForGRPC())
{
address = QString("unix://" + config.fileSocketPath);
chanArgs.SetSslTargetNameOverride("127.0.0.1"); // for file socket, we skip name verification to avoid a confusion localhost/127.0.0.1

View File

@ -69,6 +69,14 @@ QString serverKeyFilename()
}
} // anonymous namespace
//****************************************************************************************************************************************************
/// return true if gRPC connection should use file socket instead of TCP socket.
//****************************************************************************************************************************************************
bool useFileSocketForGRPC() {
return !onWindows();
}
@ -278,4 +286,22 @@ void userToGRPC(User const &user, grpc::User &outGRPCUser)
}
//****************************************************************************************************************************************************
/// \return The path to a file that can be used for a gRPC file socket.
/// \return A null string if no path could be found.
//****************************************************************************************************************************************************
QString getAvailableFileSocketPath()
{
QDir const tempDir(QStandardPaths::writableLocation(QStandardPaths::TempLocation));
for (qint32 i = 0; i < 10000; i++) {
QString const path = tempDir.absoluteFilePath(QString("bridge_%1.sock").arg(qint32(i), 4, 10, QChar('0')));
QFile f(path);
if ((!f.exists()) || f.remove())
return path;
}
return QString();
}
} // namespace bridgepp

View File

@ -46,6 +46,8 @@ grpc::UserState userStateToGRPC(UserState state); ///< Convert a bridgepp::UserS
UserState userStateFromGRPC(grpc::UserState state); ///< Convert a grpc::UserState to a bridgepp::UserState.
void userToGRPC(User const &user, grpc::User &outGRPCUser); ///< Convert a bridgepp::User to a grpc::User.
SPUser userFromGRPC(grpc::User const &grpcUser); ///< Create a bridgepp::User from a grpc::User.
bool useFileSocketForGRPC(); ///< Check whether the Bridge gRPC service should use file sockets instead of TCP sockets.
QString getAvailableFileSocketPath(); ///< Return the path of a new available socket, or a null string if none could be found.
}