mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
Merge pull request #98 from haganbmj/request-logging
General: Toggle to log incoming requests
This commit is contained in:
commit
35cb506d6e
10
Config.cpp
10
Config.cpp
@ -27,6 +27,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
|
|||||||
#define SECTION_NAME "WebsocketAPI"
|
#define SECTION_NAME "WebsocketAPI"
|
||||||
#define PARAM_ENABLE "ServerEnabled"
|
#define PARAM_ENABLE "ServerEnabled"
|
||||||
#define PARAM_PORT "ServerPort"
|
#define PARAM_PORT "ServerPort"
|
||||||
|
#define PARAM_DEBUG "DebugEnabled"
|
||||||
#define PARAM_AUTHREQUIRED "AuthRequired"
|
#define PARAM_AUTHREQUIRED "AuthRequired"
|
||||||
#define PARAM_SECRET "AuthSecret"
|
#define PARAM_SECRET "AuthSecret"
|
||||||
#define PARAM_SALT "AuthSalt"
|
#define PARAM_SALT "AuthSalt"
|
||||||
@ -38,6 +39,8 @@ Config::Config()
|
|||||||
// Default settings
|
// Default settings
|
||||||
ServerEnabled = true;
|
ServerEnabled = true;
|
||||||
ServerPort = 4444;
|
ServerPort = 4444;
|
||||||
|
|
||||||
|
DebugEnabled = false;
|
||||||
|
|
||||||
AuthRequired = false;
|
AuthRequired = false;
|
||||||
Secret = "";
|
Secret = "";
|
||||||
@ -52,6 +55,9 @@ Config::Config()
|
|||||||
SECTION_NAME, PARAM_ENABLE, ServerEnabled);
|
SECTION_NAME, PARAM_ENABLE, ServerEnabled);
|
||||||
config_set_default_uint(obs_config,
|
config_set_default_uint(obs_config,
|
||||||
SECTION_NAME, PARAM_PORT, ServerPort);
|
SECTION_NAME, PARAM_PORT, ServerPort);
|
||||||
|
|
||||||
|
config_set_default_bool(obs_config,
|
||||||
|
SECTION_NAME, PARAM_DEBUG, DebugEnabled);
|
||||||
|
|
||||||
config_set_default_bool(obs_config,
|
config_set_default_bool(obs_config,
|
||||||
SECTION_NAME, PARAM_AUTHREQUIRED, AuthRequired);
|
SECTION_NAME, PARAM_AUTHREQUIRED, AuthRequired);
|
||||||
@ -81,6 +87,8 @@ void Config::Load()
|
|||||||
|
|
||||||
ServerEnabled = config_get_bool(obs_config, SECTION_NAME, PARAM_ENABLE);
|
ServerEnabled = config_get_bool(obs_config, SECTION_NAME, PARAM_ENABLE);
|
||||||
ServerPort = config_get_uint(obs_config, SECTION_NAME, PARAM_PORT);
|
ServerPort = config_get_uint(obs_config, SECTION_NAME, PARAM_PORT);
|
||||||
|
|
||||||
|
DebugEnabled = config_get_bool(obs_config, SECTION_NAME, PARAM_DEBUG);
|
||||||
|
|
||||||
AuthRequired = config_get_bool(obs_config, SECTION_NAME, PARAM_AUTHREQUIRED);
|
AuthRequired = config_get_bool(obs_config, SECTION_NAME, PARAM_AUTHREQUIRED);
|
||||||
Secret = config_get_string(obs_config, SECTION_NAME, PARAM_SECRET);
|
Secret = config_get_string(obs_config, SECTION_NAME, PARAM_SECRET);
|
||||||
@ -93,6 +101,8 @@ void Config::Save()
|
|||||||
|
|
||||||
config_set_bool(obs_config, SECTION_NAME, PARAM_ENABLE, ServerEnabled);
|
config_set_bool(obs_config, SECTION_NAME, PARAM_ENABLE, ServerEnabled);
|
||||||
config_set_uint(obs_config, SECTION_NAME, PARAM_PORT, ServerPort);
|
config_set_uint(obs_config, SECTION_NAME, PARAM_PORT, ServerPort);
|
||||||
|
|
||||||
|
config_set_bool(obs_config, SECTION_NAME, PARAM_DEBUG, DebugEnabled);
|
||||||
|
|
||||||
config_set_bool(obs_config, SECTION_NAME, PARAM_AUTHREQUIRED, AuthRequired);
|
config_set_bool(obs_config, SECTION_NAME, PARAM_AUTHREQUIRED, AuthRequired);
|
||||||
config_set_string(obs_config, SECTION_NAME, PARAM_SECRET, Secret);
|
config_set_string(obs_config, SECTION_NAME, PARAM_SECRET, Secret);
|
||||||
|
2
Config.h
2
Config.h
@ -38,6 +38,8 @@ class Config
|
|||||||
|
|
||||||
bool ServerEnabled;
|
bool ServerEnabled;
|
||||||
uint64_t ServerPort;
|
uint64_t ServerPort;
|
||||||
|
|
||||||
|
bool DebugEnabled;
|
||||||
|
|
||||||
bool AuthRequired;
|
bool AuthRequired;
|
||||||
const char *Secret;
|
const char *Secret;
|
||||||
|
11
WSEvents.cpp
11
WSEvents.cpp
@ -20,6 +20,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
|
|||||||
#include <util/platform.h>
|
#include <util/platform.h>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
|
#include "Config.h"
|
||||||
#include "Utils.h"
|
#include "Utils.h"
|
||||||
#include "WSEvents.h"
|
#include "WSEvents.h"
|
||||||
#include "obs-websocket.h"
|
#include "obs-websocket.h"
|
||||||
@ -213,9 +214,15 @@ void WSEvents::broadcastUpdate(const char* updateType, obs_data_t* additionalFie
|
|||||||
if (additionalFields != NULL)
|
if (additionalFields != NULL)
|
||||||
obs_data_apply(update, additionalFields);
|
obs_data_apply(update, additionalFields);
|
||||||
|
|
||||||
_srv->broadcast(obs_data_get_json(update));
|
const char *json = obs_data_get_json(update);
|
||||||
|
|
||||||
obs_data_release(update);
|
obs_data_release(update);
|
||||||
|
|
||||||
|
if (Config::Current()->DebugEnabled)
|
||||||
|
{
|
||||||
|
blog(LOG_DEBUG, "Update << '%s'", json);
|
||||||
|
}
|
||||||
|
|
||||||
|
_srv->broadcast(json);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WSEvents::connectTransitionSignals(obs_source_t* transition)
|
void WSEvents::connectTransitionSignals(obs_source_t* transition)
|
||||||
|
@ -114,6 +114,11 @@ void WSRequestHandler::processIncomingMessage(QString textMessage)
|
|||||||
SendErrorResponse("invalid JSON payload");
|
SendErrorResponse("invalid JSON payload");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Config::Current()->DebugEnabled)
|
||||||
|
{
|
||||||
|
blog(LOG_DEBUG, "Request >> '%s'", msg);
|
||||||
|
}
|
||||||
|
|
||||||
if (!hasField("request-type") ||
|
if (!hasField("request-type") ||
|
||||||
!hasField("message-id"))
|
!hasField("message-id"))
|
||||||
@ -156,9 +161,7 @@ void WSRequestHandler::SendOKResponse(obs_data_t* additionalFields)
|
|||||||
if (additionalFields)
|
if (additionalFields)
|
||||||
obs_data_apply(response, additionalFields);
|
obs_data_apply(response, additionalFields);
|
||||||
|
|
||||||
_client->sendTextMessage(obs_data_get_json(response));
|
SendResponse(response);
|
||||||
|
|
||||||
obs_data_release(response);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void WSRequestHandler::SendErrorResponse(const char* errorMessage)
|
void WSRequestHandler::SendErrorResponse(const char* errorMessage)
|
||||||
@ -168,9 +171,20 @@ void WSRequestHandler::SendErrorResponse(const char* errorMessage)
|
|||||||
obs_data_set_string(response, "error", errorMessage);
|
obs_data_set_string(response, "error", errorMessage);
|
||||||
obs_data_set_string(response, "message-id", _messageId);
|
obs_data_set_string(response, "message-id", _messageId);
|
||||||
|
|
||||||
_client->sendTextMessage(obs_data_get_json(response));
|
SendResponse(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WSRequestHandler::SendResponse(obs_data_t* response)
|
||||||
|
{
|
||||||
|
const char *json = obs_data_get_json(response);
|
||||||
obs_data_release(response);
|
obs_data_release(response);
|
||||||
|
|
||||||
|
if (Config::Current()->DebugEnabled)
|
||||||
|
{
|
||||||
|
blog(LOG_DEBUG, "Response << '%s'", json);
|
||||||
|
}
|
||||||
|
|
||||||
|
_client->sendTextMessage(json);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WSRequestHandler::hasField(const char* name)
|
bool WSRequestHandler::hasField(const char* name)
|
||||||
|
@ -45,6 +45,7 @@ class WSRequestHandler : public QObject
|
|||||||
|
|
||||||
void SendOKResponse(obs_data_t* additionalFields = NULL);
|
void SendOKResponse(obs_data_t* additionalFields = NULL);
|
||||||
void SendErrorResponse(const char* errorMessage);
|
void SendErrorResponse(const char* errorMessage);
|
||||||
|
void SendResponse(obs_data_t* response);
|
||||||
|
|
||||||
static void HandleGetVersion(WSRequestHandler* req);
|
static void HandleGetVersion(WSRequestHandler* req);
|
||||||
static void HandleGetAuthRequired(WSRequestHandler* req);
|
static void HandleGetAuthRequired(WSRequestHandler* req);
|
||||||
|
@ -4,6 +4,7 @@ OBSWebsocket.Settings.ServerEnable="Enable Websocket server"
|
|||||||
OBSWebsocket.Settings.ServerPort="Server Port"
|
OBSWebsocket.Settings.ServerPort="Server Port"
|
||||||
OBSWebsocket.Settings.AuthRequired="Enable authentication"
|
OBSWebsocket.Settings.AuthRequired="Enable authentication"
|
||||||
OBSWebsocket.Settings.Password="Password"
|
OBSWebsocket.Settings.Password="Password"
|
||||||
|
OBSWebsocket.Settings.DebugEnable="Enable debug logging"
|
||||||
OBSWebsocket.ConnectNotify.Connected="New WebSocket connection"
|
OBSWebsocket.ConnectNotify.Connected="New WebSocket connection"
|
||||||
OBSWebsocket.ConnectNotify.Disconnected="WebSocket client disconnected"
|
OBSWebsocket.ConnectNotify.Disconnected="WebSocket client disconnected"
|
||||||
OBSWebsocket.ConnectNotify.ClientIP="Client Address:"
|
OBSWebsocket.ConnectNotify.ClientIP="Client Address:"
|
@ -47,6 +47,8 @@ void SettingsDialog::showEvent(QShowEvent* event)
|
|||||||
|
|
||||||
ui->serverEnabled->setChecked(conf->ServerEnabled);
|
ui->serverEnabled->setChecked(conf->ServerEnabled);
|
||||||
ui->serverPort->setValue(conf->ServerPort);
|
ui->serverPort->setValue(conf->ServerPort);
|
||||||
|
|
||||||
|
ui->debugEnabled->setChecked(conf->DebugEnabled);
|
||||||
|
|
||||||
ui->authRequired->setChecked(conf->AuthRequired);
|
ui->authRequired->setChecked(conf->AuthRequired);
|
||||||
ui->password->setText(CHANGE_ME);
|
ui->password->setText(CHANGE_ME);
|
||||||
@ -74,6 +76,8 @@ void SettingsDialog::FormAccepted()
|
|||||||
|
|
||||||
conf->ServerEnabled = ui->serverEnabled->isChecked();
|
conf->ServerEnabled = ui->serverEnabled->isChecked();
|
||||||
conf->ServerPort = ui->serverPort->value();
|
conf->ServerPort = ui->serverPort->value();
|
||||||
|
|
||||||
|
conf->DebugEnabled = ui->debugEnabled->isChecked();
|
||||||
|
|
||||||
if (ui->authRequired->isChecked())
|
if (ui->authRequired->isChecked())
|
||||||
{
|
{
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>407</width>
|
<width>407</width>
|
||||||
<height>155</height>
|
<height>175</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -79,6 +79,16 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="5" column="1">
|
||||||
|
<widget class="QCheckBox" name="debugEnabled">
|
||||||
|
<property name="text">
|
||||||
|
<string>OBSWebsocket.Settings.DebugEnable</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@ -103,11 +113,11 @@
|
|||||||
<hints>
|
<hints>
|
||||||
<hint type="sourcelabel">
|
<hint type="sourcelabel">
|
||||||
<x>248</x>
|
<x>248</x>
|
||||||
<y>254</y>
|
<y>274</y>
|
||||||
</hint>
|
</hint>
|
||||||
<hint type="destinationlabel">
|
<hint type="destinationlabel">
|
||||||
<x>157</x>
|
<x>157</x>
|
||||||
<y>274</y>
|
<y>294</y>
|
||||||
</hint>
|
</hint>
|
||||||
</hints>
|
</hints>
|
||||||
</connection>
|
</connection>
|
||||||
@ -119,11 +129,11 @@
|
|||||||
<hints>
|
<hints>
|
||||||
<hint type="sourcelabel">
|
<hint type="sourcelabel">
|
||||||
<x>316</x>
|
<x>316</x>
|
||||||
<y>260</y>
|
<y>280</y>
|
||||||
</hint>
|
</hint>
|
||||||
<hint type="destinationlabel">
|
<hint type="destinationlabel">
|
||||||
<x>286</x>
|
<x>286</x>
|
||||||
<y>274</y>
|
<y>294</y>
|
||||||
</hint>
|
</hint>
|
||||||
</hints>
|
</hints>
|
||||||
</connection>
|
</connection>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user