diff options
-rw-r--r-- | client-qt/udm-client-qt/client_session.cpp | 16 | ||||
-rw-r--r-- | client-qt/udm-client-qt/connect_widget.cpp | 3 | ||||
-rw-r--r-- | client-qt/udm-client-qt/downloads_model.cpp | 67 | ||||
-rw-r--r-- | client-qt/udm-client-qt/downloads_model.h | 47 | ||||
-rw-r--r-- | client-qt/udm-client-qt/filters_model.cpp | 62 | ||||
-rw-r--r-- | client-qt/udm-client-qt/filters_model.h | 45 | ||||
-rw-r--r-- | client-qt/udm-client-qt/udm-client-qt.pro | 8 | ||||
-rw-r--r-- | client-qt/udm-client-qt/udm_main.cpp | 89 | ||||
-rw-r--r-- | client-qt/udm-client-qt/udm_main.h | 12 | ||||
-rw-r--r-- | protocol/udm.proto | 150 | ||||
-rw-r--r-- | server/src/server_session.cpp | 6 |
11 files changed, 458 insertions, 47 deletions
diff --git a/client-qt/udm-client-qt/client_session.cpp b/client-qt/udm-client-qt/client_session.cpp index 45e93b9..9cb951c 100644 --- a/client-qt/udm-client-qt/client_session.cpp +++ b/client-qt/udm-client-qt/client_session.cpp @@ -26,7 +26,7 @@ #include <QMetaType> Q_DECLARE_METATYPE(server_msg); -int shit = qRegisterMetaType <server_msg> ("server_msg"); +int server_msg_metatype__useless_id = qRegisterMetaType <server_msg> ("server_msg"); std::shared_ptr<char*> pack_data(const std::string &buf, int *size_) { @@ -221,11 +221,11 @@ void client_session::handle_connect(const boost::system::error_code &e) { emit client_connected(true, QString::fromUtf8(e.message().c_str())); //TODO: something better ? - {// for now hust send auth request message + {// for now just send auth request message client_msg msg; msg.set_type(CLIENT_MSG_TYPE::CLIENT_AUTH_REQUEST); - msg.mutable_auth_info()->set_hash_type(PASSWD_HASH_TYPE::HASH_SHA512); - msg.mutable_auth_info()->set_password(password_sha512.data()); + msg.mutable_auth_request()->set_hash_type(PASSWD_HASH_TYPE::HASH_SHA512); + msg.mutable_auth_request()->set_password(password_sha512.data()); send_message(msg); } //listen for messages from server @@ -305,11 +305,11 @@ void client_session::handle_write(const boost::system::error_code& error) client_session::~client_session() { //TODO: correct thread termination, reimplement - io_service_.stop(); +// io_service_.stop(); delete socket_; - boost::asio::io_service *s = &io_service_; - delete s; - //emit terminate_thread(); +// boost::asio::io_service *s = &io_service_; +// delete s; + emit terminate_thread(); } /*boost::asio::io_service &client_session::io_service() diff --git a/client-qt/udm-client-qt/connect_widget.cpp b/client-qt/udm-client-qt/connect_widget.cpp index 2c35ea2..ee17b3c 100644 --- a/client-qt/udm-client-qt/connect_widget.cpp +++ b/client-qt/udm-client-qt/connect_widget.cpp @@ -33,8 +33,9 @@ connect_widget::connect_widget(QWidget *parent) : QWidget(parent) { edit_host = new QLineEdit(this), edit_port = new QLineEdit(this), edit_passwd = new QLineEdit(this); + edit_host->setText("127.0.0.1"); edit_port->setInputMask("D0000"); - edit_port->setText("1"); + edit_port->setText("6613"); edit_passwd->setEchoMode(QLineEdit::Password); lbl_host = new QLabel(tr("host") + ":", this); lbl_port = new QLabel(tr("port") + ":", this); diff --git a/client-qt/udm-client-qt/downloads_model.cpp b/client-qt/udm-client-qt/downloads_model.cpp new file mode 100644 index 0000000..2dadc0f --- /dev/null +++ b/client-qt/udm-client-qt/downloads_model.cpp @@ -0,0 +1,67 @@ +/* + Copyright © 2015 Gluzskiy Alexandr (sss) + + This file is part of Unknown Download Manager (UDM). + + UDM is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + UDM is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with UDM. If not, see <http://www.gnu.org/licenses/>. + +*/ + + +#include "downloads_model.h" + +downloads_model::downloads_model(QObject *parent) +{ + +} + +int downloads_model::rowCount(const QModelIndex &parent) const +{ + return 0; +} + +QVariant downloads_model::data(const QModelIndex &index, int role) const +{ + if(!index.isValid()) + return QVariant(); +} + +QVariant downloads_model::headerData(int section, Qt::Orientation orientation, int role) const +{ + return QVariant(); +} + +int downloads_model::columnCount ( const QModelIndex & parent) const +{ + return 1; +} + +bool downloads_model::insertRows(int position, int rows, const QModelIndex &index) +{ + beginInsertRows(QModelIndex(), position, position+rows-1); + endInsertRows(); + return true; +} + +bool downloads_model::removeRows(int position, int rows, const QModelIndex &index) +{ + beginRemoveRows(QModelIndex(), position, position+rows-1); + endRemoveRows(); + return true; +} + +void downloads_model::sort ( int column, Qt::SortOrder order) +{ + +} diff --git a/client-qt/udm-client-qt/downloads_model.h b/client-qt/udm-client-qt/downloads_model.h new file mode 100644 index 0000000..5a27e90 --- /dev/null +++ b/client-qt/udm-client-qt/downloads_model.h @@ -0,0 +1,47 @@ +/* + Copyright © 2015 Gluzskiy Alexandr (sss) + + This file is part of Unknown Download Manager (UDM). + + UDM is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + UDM is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with UDM. If not, see <http://www.gnu.org/licenses/>. + +*/ + + + +#ifndef DOWNLOADS_MODEL_H +#define DOWNLOADS_MODEL_H + +#include <QAbstractItemModel> + +class downloads_model : public QAbstractTableModel +{ + Q_OBJECT +public: + downloads_model(QObject *parent = 0); + int rowCount(const QModelIndex &parent = QModelIndex()) const; + QVariant data(const QModelIndex &index, int role) const; + QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + int columnCount ( const QModelIndex & parent = QModelIndex() ) const; + bool insertRows(int position, int rows, const QModelIndex &index = QModelIndex()); + bool removeRows(int position, int rows, const QModelIndex &index = QModelIndex()); + void sort ( int column, Qt::SortOrder order = Qt::AscendingOrder ); + + +signals: + +public slots: +}; + +#endif // DOWNLOADS_MODEL_H diff --git a/client-qt/udm-client-qt/filters_model.cpp b/client-qt/udm-client-qt/filters_model.cpp new file mode 100644 index 0000000..d69a4be --- /dev/null +++ b/client-qt/udm-client-qt/filters_model.cpp @@ -0,0 +1,62 @@ +/* + Copyright © 2015 Gluzskiy Alexandr (sss) + + This file is part of Unknown Download Manager (UDM). + + UDM is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + UDM is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with UDM. If not, see <http://www.gnu.org/licenses/>. + +*/ + + +#include "filters_model.h" + + + +filters_model::filters_model(QObject *parent) +{ + +} + +int filters_model::columnCount(const QModelIndex &parent) const +{ + return 1; +} + +QVariant filters_model::data(const QModelIndex& index, int role) const +{ + if (!index.isValid()) + return QVariant(); + if(role != Qt::DisplayRole) + return QVariant(); +} + +QModelIndex filters_model::index(int row, int column, const QModelIndex& parent) const +{ + if (!hasIndex(row, column, parent)) + return QModelIndex(); +} + +QModelIndex filters_model::parent(const QModelIndex& index) const +{ + if (!index.isValid()) + return QModelIndex(); +} + +int filters_model::rowCount(const QModelIndex& parent) const +{ + if (parent.column() > 0) + return 0; + return 0; + +} diff --git a/client-qt/udm-client-qt/filters_model.h b/client-qt/udm-client-qt/filters_model.h new file mode 100644 index 0000000..e22abee --- /dev/null +++ b/client-qt/udm-client-qt/filters_model.h @@ -0,0 +1,45 @@ +/* + Copyright © 2015 Gluzskiy Alexandr (sss) + + This file is part of Unknown Download Manager (UDM). + + UDM is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + UDM is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with UDM. If not, see <http://www.gnu.org/licenses/>. + +*/ + + +#ifndef FILTERS_MODEL_H +#define FILTERS_MODEL_H + +#include <QAbstractItemModel> + +class filters_model : public QAbstractTableModel +{ + Q_OBJECT +public: + filters_model(QObject *parent = 0); + virtual int columnCount(const QModelIndex &parent=QModelIndex()) const; + virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const; + + virtual QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const; + virtual QModelIndex parent(const QModelIndex& index) const; + virtual int rowCount(const QModelIndex& parent = QModelIndex()) const; + + +signals: + +public slots: +}; + +#endif // FILTERS_MODEL_H diff --git a/client-qt/udm-client-qt/udm-client-qt.pro b/client-qt/udm-client-qt/udm-client-qt.pro index 3a7be9a..d64ebe4 100644 --- a/client-qt/udm-client-qt/udm-client-qt.pro +++ b/client-qt/udm-client-qt/udm-client-qt.pro @@ -39,8 +39,12 @@ SOURCES += main.cpp\ udm_main.cpp \ client_session.cpp \ connect_widget.cpp \ - ../../protocol/udm.pb.cc + ../../protocol/udm.pb.cc \ + downloads_model.cpp \ + filters_model.cpp HEADERS += udm_main.h \ client_session.h \ - connect_widget.h + connect_widget.h \ + downloads_model.h \ + filters_model.h diff --git a/client-qt/udm-client-qt/udm_main.cpp b/client-qt/udm-client-qt/udm_main.cpp index 0089a45..17744aa 100644 --- a/client-qt/udm-client-qt/udm_main.cpp +++ b/client-qt/udm-client-qt/udm_main.cpp @@ -25,14 +25,25 @@ #include <QMessageBox> #include <QStatusBar> #include <QLabel> +#include <QTableView> +#include <QTreeView> +#include <QTabWidget> +#include <QHeaderView> +#include <QSplitter> +#include <QStackedLayout> #include "connect_widget.h" #include "client_session.h" +#include "downloads_model.h" +#include "filters_model.h" udm_main::udm_main(QWidget *parent) : QMainWindow(parent) { + io_service_ = nullptr; + thread_client_session = nullptr; + //session = nullptr; auto menu_main = this->menuBar()->addMenu(tr("Main")); auto action_connect = menu_main->addAction(tr("Connect")); connect(action_connect, SIGNAL(triggered()), this, SLOT(show_connect_widget())); @@ -41,10 +52,55 @@ udm_main::udm_main(QWidget *parent) lbl_state = new QLabel; lbl_state->setText(tr("State") + ": " + tr("Offline")); this->statusBar()->addPermanentWidget(lbl_state); + + tbl_downloads = new QTableView; + tbl_downloads->setShowGrid(false); + mdl_downloads = new downloads_model; + tbl_downloads->setModel(mdl_downloads); + tbl_downloads->setSelectionBehavior(QAbstractItemView::SelectRows); + tbl_downloads->setSortingEnabled(true); + tbl_downloads->horizontalHeader()->setHighlightSections(false); + tbl_downloads->horizontalHeader()->setMovable(true); + tbl_downloads->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft); + tbl_downloads->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); + + tree_filters = new QTreeView; + mdl_filters = new filters_model; + tree_filters->setModel(mdl_filters); + tree_filters->header()->hide(); + tree_filters->setSelectionMode(QAbstractItemView::ExtendedSelection); + tree_filters->setSelectionBehavior(QAbstractItemView::SelectRows); + tree_filters->setIndentation(10); + + spl_hor = new QSplitter(Qt::Horizontal); + spl_hor->addWidget(tree_filters); + spl_hor->addWidget(tbl_downloads); + + spl_hor->setStretchFactor(0, 2); + spl_hor->setStretchFactor(1, 10); + + tabs_info = new QTabWidget; + + + + + spl_vert = new QSplitter(Qt::Vertical); + spl_vert->addWidget(spl_hor); + spl_vert->addWidget(tabs_info); + + spl_vert->setStretchFactor(0, 3); + spl_vert->setStretchFactor(1, 1); + setCentralWidget(spl_vert); + } udm_main::~udm_main() { + if(thread_client_session) + { + thread_client_session->quit(); + delete thread_client_session; + } //TODO: clear all remaining data } @@ -59,15 +115,30 @@ void udm_main::show_connect_widget() void udm_main::client_pre_connect_init() { + if(thread_client_session) + { + delete thread_client_session; + thread_client_session = nullptr; + } thread_client_session = new QThread(this); + if(io_service_) + { + delete io_service_; + io_service_ = nullptr; + } io_service_ = new boost::asio::io_service; +/* if(session) //crashing + { + delete session; + session = nullptr; + } */ session = new client_session(0, io_service_); //parent must be 0 here connect(session, SIGNAL(server_message_received(server_msg)), this, SLOT(server_message_received(server_msg))); connect(session, SIGNAL(client_connected(bool,QString)), this, SLOT(client_connected(bool,QString))); } void udm_main::client_connect_finalize() { - //connect(session, SIGNAL(terminate_thread()), thread_client_session, SLOT(terminate())); + connect(session, SIGNAL(terminate_thread()), thread_client_session, SLOT(quit())); session->moveToThread(thread_client_session); thread_client_session->start(); } @@ -99,6 +170,22 @@ void udm_main::server_message_received(server_msg msg) auth_token = msg.auth_reply().auth_token().c_str(); //TODO: update client status lbl_state->setText(tr("State") + ": " + tr("Connected") + ", " + tr("Authenticated")); + //request modules and settings here + { + client_msg msg; + msg.set_type(CLIENT_MSG_TYPE::CLIENT_CORE_SETTINGS_REQUEST); + session->send_message(msg); + } + { + client_msg msg; + msg.set_type(CLIENT_MSG_TYPE::CLIENT_MODULES_REQUEST); + session->send_message(msg); + } + { + client_msg msg; + msg.set_type(CLIENT_MSG_TYPE::CLIENT_DOWNLOADS_LIST_REQUEST); + session->send_message(msg); + } } else { diff --git a/client-qt/udm-client-qt/udm_main.h b/client-qt/udm-client-qt/udm_main.h index 8861403..9d56822 100644 --- a/client-qt/udm-client-qt/udm_main.h +++ b/client-qt/udm-client-qt/udm_main.h @@ -29,6 +29,12 @@ class client_session; class QLabel; +class QTableView; +class QTreeView; +class QTabWidget; +class downloads_model; +class filters_model; +class QSplitter; namespace boost { namespace asio { @@ -63,6 +69,12 @@ private: boost::asio::io_service *io_service_; QString auth_token; QLabel *lbl_state; + QTableView *tbl_downloads; + QTreeView *tree_filters; + QTabWidget *tabs_info; + downloads_model *mdl_downloads; + filters_model *mdl_filters; + QSplitter *spl_hor, *spl_vert; }; #endif // UDM_MAIN_H diff --git a/protocol/udm.proto b/protocol/udm.proto index 1ecb076..44f805c 100644 --- a/protocol/udm.proto +++ b/protocol/udm.proto @@ -32,26 +32,33 @@ enum MODULE_UI_ELEMENT_TYPE { UI_GROUP = 5; //empty ui element to group children together in ui (tabs can be implemented using this type) } -message module_ui_element_info { +message module_download_ui_element_info { optional MODULE_UI_ELEMENT_TYPE type = 1 [default = UI_EMPTY]; - repeated module_ui_element_info children = 2; + repeated module_download_ui_element_info children = 2; required string id = 3; //internal element id used to get element value (should be unique for every loaded module) optional string name = 4 [default = "not set"]; //can be non unique } -message server_ui_element_data { - required string id = 1; //should be unique for every loaded module + +message module_download_ui_element_data { + required string ui_id = 1; //should be unique for every loaded module required string data = 2; } -message server_ui_data_reply { +message module_download_ui_data { + repeated module_download_ui_element_data data = 1; + required string download_id = 2; +} + +message server_download_ui_data_reply { required string module_name = 1; - repeated server_ui_element_data data = 2; + required module_download_ui_data data = 2; } -message client_ui_data_request { +message client_download_ui_data_request { required string module_name = 1; - repeated string id = 2; //should be unique for for every loaded module + required string download_id = 2; + repeated string ui_id = 3; //should be unique for for every loaded module } @@ -61,36 +68,91 @@ message client_ui_data_request { //ui subscriptions begin -message ui_subscription_info_requiest { - required string module_name = 1; - repeated string id = 2; +message download_ui_subscription_info { + optional client_download_ui_data_request download_ui_data = 1; optional bool one_shot = 3 [default = false]; required int64 interval = 4; } -message ui_unsubscription_info { - repeated string id = 1; //unsubscript from all updates for given id's +message download_ui_unsubscription_info { + required string id = 1; //unsubscript from all updates for given id's } //ui subscriptions end +//TODO: downloads related proto part + +//dowloads proto part begin + +message client_download_request { + required string id = 1; + optional bool with_content = 2 [default = false]; +} + +enum DOWNLOAD_CONTENT_ENTRY_TYPE { + DOWNLOAD_CONTENT_ENTRY_TYPE_FILE = 0; + DOWNLOAD_CONTENT_ENTRY_TYPE_DIRECTORY = 1; +} + +message download_content_entry { + required string name = 1; + optional DOWNLOAD_CONTENT_ENTRY_TYPE type = 2 [default = DOWNLOAD_CONTENT_ENTRY_TYPE_FILE]; + repeated download_content_entry children = 3; + optional int64 size = 4 [default = 0]; +} + + +message download { + required string id = 1; + required string name = 2; + optional download_content_entry content = 3; + required int64 size = 4; + required int64 downloaded = 5; +} + +message server_downloads_reply { + required download download = 1; +} + + +//downloads proto part end + // event subscription part begin enum SUBSCRIPTION_TYPE { SUBSCRIPTION_UI_CHANGE = 0; SUBSCRIPTION_SETTING_CHANGE = 1; } -message event_subscription_info { - repeated SUBSCRIPTION_TYPE type = 1; //subscript to one ore more event type - optional ui_subscription_info_requiest ui_info = 2; +message client_event_subscription_request { + required SUBSCRIPTION_TYPE type = 1; + required string module_name = 2; + optional download_ui_subscription_info download_ui_info = 3; } -message event_unsubscription_info { - repeated SUBSCRIPTION_TYPE type = 1; //unsubscript from one ore more event type - optional ui_unsubscription_info ui_info = 2; +message client_event_unsubscription_request { + required SUBSCRIPTION_TYPE type = 1; + required string module_name = 2; + optional download_ui_unsubscription_info ui_info = 3; } +message server_event_subscription_reply { + required SUBSCRIPTION_TYPE type = 1; + required string module_name = 2; + optional download_ui_subscription_info ui_info = 3; + + required bool status = 10; + optional string status_description = 11; +} + +message server_event_unsubscription_reply { + required SUBSCRIPTION_TYPE type = 1; + required string module_name = 2; + optional download_ui_unsubscription_info ui_info = 3; + + required bool status = 10; + optional string status_description = 11; +} //event subscription part end @@ -117,17 +179,23 @@ message setting { //settings common proto part end -//TODO: settings transfer proto part (read, write, notifications ?) //module related messages begin +enum SERVER_MODULE_TYPE { + SERVER_MODULE_CORE = 0; + SERVER_MODULE_DOWNLOADER = 1; + SERVER_MODULE_METADATA_STORAGE = 2; +} + message module_info { - required string name = 1; //unique (used as module id) - required string version = 2; - optional string decription = 3 [default = "no description specified"]; - repeated setting_info settings = 4; //may be ampty - repeated module_ui_element_info ui = 5; //always complete here + required SERVER_MODULE_TYPE type = 1; + required string name = 2; //unique (used as module id) + required string version = 3; + optional string decription = 4 [default = "no description specified"]; + repeated setting_info settings = 5; //may be ampty + repeated module_download_ui_element_info ui = 6; //always complete here } //module related messages end @@ -142,12 +210,12 @@ enum PASSWD_HASH_TYPE { HASH_SHA512 = 3; } -message client_auth_info { +message client_auth_request { required bytes password = 1; optional PASSWD_HASH_TYPE hash_type = 2 [default = HASH_NONE]; } -message server_auth_info { +message server_auth_reply { required bool status = 1; //true == success, false == error optional string auth_token = 2; //must be set if no error optional string error_description = 3; //readable description must be set on error @@ -155,7 +223,7 @@ message server_auth_info { //auth proto part end -//TODO: datatransfer proto part +//TODO: large datatransfer proto part // it should be in separate connection // it should be very simple // it should have as small overhead as possible, better none at all @@ -177,13 +245,21 @@ enum CLIENT_MSG_TYPE { CLIENT_AUTH_REQUEST = 0; CLIENT_DATA_TRANSFER_REQUEST = 1; CLIENT_UI_DATA_REQUEST = 2; + CLIENT_MODULES_REQUEST = 3; + CLIENT_CORE_SETTINGS_REQUEST = 4; + CLIENT_SUBSCRIPTIONS_REQUEST = 5; + CLIENT_UNSUBSCRIPTIONS_REQUEST = 6; + CLIENT_DOWNLOADS_LIST_REQUEST = 7; } message client_msg { required CLIENT_MSG_TYPE type = 1; optional string auth_token = 2; //this must be set in all message type's except CLIENT_AUTH_REQUEST - optional client_auth_info auth_info = 3; - optional client_ui_data_request ui_data_request = 4; + optional client_auth_request auth_request = 3; + repeated client_download_ui_data_request download_ui_data_request = 4; + repeated client_event_subscription_request subscription_request = 5; + repeated client_event_unsubscription_request unsubscription_request = 6; + repeated client_download_request downloads_request = 7; } @@ -191,14 +267,24 @@ message client_msg { enum SERVER_MSG_TYPE { SERVER_AUTH_REPLY = 0; SERVER_UI_DATA_REPLY = 1; + SERVER_MODULES_REPLY = 2; + SERVER_CORE_SETTINGS_REPLY = 3; + SERVER_SUBSCRIPTIONS_REPLY = 4; + SERVER_UNSUBSCRIPTIONS_REPLY = 5; + SERVER_DOWNLOADS_LIST_REPLY = 6; } message server_msg { required SERVER_MSG_TYPE type = 1; - optional server_ui_data_reply ui_data_reply = 2; - optional server_auth_info auth_reply = 3; + optional server_download_ui_data_reply download_ui_data_reply = 2; + optional server_auth_reply auth_reply = 3; + repeated module_info server_modules_reply = 4; + optional module_info server_core_settings_reply = 5; + repeated server_event_subscription_reply subscription_reply = 6; + repeated server_event_unsubscription_reply unsubscription_reply = 7; + optional server_downloads_reply downloads = 8; } //top level messages end diff --git a/server/src/server_session.cpp b/server/src/server_session.cpp index d8c4f07..25e7820 100644 --- a/server/src/server_session.cpp +++ b/server/src/server_session.cpp @@ -130,11 +130,11 @@ void server_session::handle_command(client_msg *msg) m.mutable_auth_reply()->set_status(true); else { - switch(msg->auth_info().hash_type()) + switch(msg->auth_request().hash_type()) { case PASSWD_HASH_TYPE::HASH_NONE: { - if(msg->auth_info().password() != server_password) + if(msg->auth_request().password() != server_password) { m.mutable_auth_reply()->set_status(false); m.mutable_auth_reply()->set_error_description("wrong password"); @@ -157,7 +157,7 @@ void server_session::handle_command(client_msg *msg) { unsigned char hash[64]; SHA512((unsigned char*)server_password.c_str(), server_password.length(), hash); - if(msg->auth_info().password() != std::string((const char*)hash)) + if(msg->auth_request().password() != std::string((const char*)hash)) { m.mutable_auth_reply()->set_status(false); m.mutable_auth_reply()->set_error_description("wrong password"); |