improve security
This commit is contained in:
parent
d4a25b8346
commit
2cef92e61f
6 changed files with 827 additions and 824 deletions
144
SMSubServer.h
144
SMSubServer.h
|
|
@ -1,72 +1,72 @@
|
|||
/*****************************************************************************
|
||||
* smsub Server Manager Subprocess
|
||||
* Copyright (C) 2020 Syping
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* This software is provided as-is, no warranties are given to you, we are not
|
||||
* responsible for anything with use of the software, you are self responsible.
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef SMSUBSERVER_H
|
||||
#define SMSUBSERVER_H
|
||||
|
||||
#include <QWebSocketServer>
|
||||
#include <QLocalServer>
|
||||
#include <QLocalSocket>
|
||||
#include <QWebSocket>
|
||||
#include <QObject>
|
||||
|
||||
struct SMSubServerSettings
|
||||
{
|
||||
bool canRegister;
|
||||
bool isLocal;
|
||||
};
|
||||
|
||||
class SMSubServer : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
SMSubServer(SMSubServerSettings *serverSettings, const QString &socket);
|
||||
SMSubServer(SMSubServerSettings *serverSettings, const QString &serverName, const quint16 &port);
|
||||
bool isListening();
|
||||
|
||||
enum ServerType { Local, WebSocket };
|
||||
Q_ENUM(ServerType)
|
||||
|
||||
public slots:
|
||||
void writeOutput(const QByteArray &output);
|
||||
void registerToken(const QString &token);
|
||||
|
||||
private slots:
|
||||
void wsMessageReceived(const QByteArray &message);
|
||||
void lsReadyRead();
|
||||
void newConnection();
|
||||
void deleteSocket();
|
||||
|
||||
private:
|
||||
inline void debugOutput(QObject *socket, const QByteArray &message);
|
||||
inline void sendMessage(QObject *socket, const QByteArray &message);
|
||||
void messageReceived(QObject *socket, const QByteArray &message);
|
||||
SMSubServerSettings *serverSettings;
|
||||
QVector<QObject*> sockets;
|
||||
QVector<QString> tokens;
|
||||
ServerType type;
|
||||
QObject *server;
|
||||
|
||||
signals:
|
||||
void tokenRegistered(const QString &password);
|
||||
void inputWritten(const QByteArray &input);
|
||||
void killRequested();
|
||||
void stopRequested();
|
||||
};
|
||||
|
||||
#endif // SMSUBSERVER_H
|
||||
/*****************************************************************************
|
||||
* smsub Server Manager Subprocess
|
||||
* Copyright (C) 2020 Syping
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* This software is provided as-is, no warranties are given to you, we are not
|
||||
* responsible for anything with use of the software, you are self responsible.
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef SMSUBSERVER_H
|
||||
#define SMSUBSERVER_H
|
||||
|
||||
#include <QWebSocketServer>
|
||||
#include <QLocalServer>
|
||||
#include <QLocalSocket>
|
||||
#include <QWebSocket>
|
||||
#include <QObject>
|
||||
|
||||
struct SMSubServerSettings
|
||||
{
|
||||
bool canRegister;
|
||||
bool isLocal;
|
||||
};
|
||||
|
||||
class SMSubServer : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
SMSubServer(SMSubServerSettings *serverSettings, const QString &socket);
|
||||
SMSubServer(SMSubServerSettings *serverSettings, const QString &serverName, const quint16 &port);
|
||||
bool isListening();
|
||||
|
||||
enum ServerType { Local, WebSocket };
|
||||
Q_ENUM(ServerType)
|
||||
|
||||
public slots:
|
||||
void writeOutput(const QByteArray &output);
|
||||
void registerToken(const QString &token);
|
||||
|
||||
private slots:
|
||||
void wsMessageReceived(const QByteArray &message);
|
||||
void lsReadyRead();
|
||||
void newConnection();
|
||||
void deleteSocket();
|
||||
|
||||
private:
|
||||
inline void debugOutput(QObject *socket, const QByteArray &message);
|
||||
inline void sendMessage(QObject *socket, const QByteArray &message);
|
||||
bool messageReceived(QObject *socket, const QByteArray &message);
|
||||
SMSubServerSettings *serverSettings;
|
||||
QVector<QObject*> sockets;
|
||||
QVector<QString> tokens;
|
||||
ServerType type;
|
||||
QObject *server;
|
||||
|
||||
signals:
|
||||
void tokenRegistered(const QString &password);
|
||||
void inputWritten(const QByteArray &input);
|
||||
void killRequested();
|
||||
void stopRequested();
|
||||
};
|
||||
|
||||
#endif // SMSUBSERVER_H
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue