Working FT rejecting
This commit is contained in:
parent
260262c393
commit
46f5c51d00
6 changed files with 29 additions and 1 deletions
|
@ -108,7 +108,7 @@ else()
|
|||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE MATCHES Debug)
|
||||
ADD_DEFINITIONS(-O3)
|
||||
ADD_DEFINITIONS(-O0)
|
||||
ADD_DEFINITIONS(-ggdb)
|
||||
ADD_DEFINITIONS(-DDEBUG)
|
||||
ADD_DEFINITIONS(-Wall)
|
||||
|
|
|
@ -829,6 +829,14 @@ class SpectrumNetworkPlugin : public NetworkPlugin {
|
|||
}
|
||||
}
|
||||
|
||||
void handleFTFinishRequest(const std::string &user, const std::string &buddyName, const std::string &fileName, unsigned long size, unsigned long ftID) {
|
||||
PurpleXfer *xfer = m_unhandledXfers[user + fileName + buddyName];
|
||||
if (xfer) {
|
||||
m_unhandledXfers.erase(user + fileName + buddyName);
|
||||
purple_xfer_request_denied(xfer);
|
||||
}
|
||||
}
|
||||
|
||||
void handleFTPauseRequest(unsigned long ftID) {
|
||||
PurpleXfer *xfer = m_xfers[ftID];
|
||||
if (!xfer)
|
||||
|
|
|
@ -80,6 +80,7 @@ void MyOutgoingSIFileTransfer::finish(boost::optional<FileTransferError> error)
|
|||
ibbSession.reset();
|
||||
}
|
||||
socksServer->removeReadBytestream(id, from, to);
|
||||
onStateChange(FileTransfer::State(FileTransfer::State::Canceled));
|
||||
onFinished(error);
|
||||
}
|
||||
|
||||
|
|
|
@ -216,6 +216,7 @@ class NetworkPlugin {
|
|||
virtual void handleAttentionRequest(const std::string &/*user*/, const std::string &/*buddyName*/, const std::string &/*message*/) {}
|
||||
|
||||
virtual void handleFTStartRequest(const std::string &/*user*/, const std::string &/*buddyName*/, const std::string &/*fileName*/, unsigned long size, unsigned long ftID) {}
|
||||
virtual void handleFTFinishRequest(const std::string &/*user*/, const std::string &/*buddyName*/, const std::string &/*fileName*/, unsigned long size, unsigned long ftID) {}
|
||||
virtual void handleFTPauseRequest(unsigned long ftID) {}
|
||||
virtual void handleFTContinueRequest(unsigned long ftID) {}
|
||||
|
||||
|
@ -236,6 +237,7 @@ class NetworkPlugin {
|
|||
void handleChatStatePayload(const std::string &payload, Swift::ChatState::ChatStateType type);
|
||||
void handleAttentionPayload(const std::string &payload);
|
||||
void handleFTStartPayload(const std::string &payload);
|
||||
void handleFTFinishPayload(const std::string &payload);
|
||||
void handleFTPausePayload(const std::string &payload);
|
||||
void handleFTContinuePayload(const std::string &payload);
|
||||
void handleDataRead(boost::shared_ptr<Swift::SafeByteArray> data);
|
||||
|
|
|
@ -373,6 +373,16 @@ void NetworkPlugin::handleFTStartPayload(const std::string &data) {
|
|||
handleFTStartRequest(payload.username(), payload.buddyname(), payload.filename(), payload.size(), payload.ftid());
|
||||
}
|
||||
|
||||
void NetworkPlugin::handleFTFinishPayload(const std::string &data) {
|
||||
pbnetwork::File payload;
|
||||
if (payload.ParseFromString(data) == false) {
|
||||
// TODO: ERROR
|
||||
return;
|
||||
}
|
||||
|
||||
handleFTFinishRequest(payload.username(), payload.buddyname(), payload.filename(), payload.size(), payload.ftid());
|
||||
}
|
||||
|
||||
void NetworkPlugin::handleFTPausePayload(const std::string &data) {
|
||||
pbnetwork::FileTransferData payload;
|
||||
if (payload.ParseFromString(data) == false) {
|
||||
|
@ -543,6 +553,9 @@ void NetworkPlugin::handleDataRead(boost::shared_ptr<Swift::SafeByteArray> data)
|
|||
case pbnetwork::WrapperMessage_Type_TYPE_FT_START:
|
||||
handleFTStartPayload(wrapper.payload());
|
||||
break;
|
||||
case pbnetwork::WrapperMessage_Type_TYPE_FT_FINISH:
|
||||
handleFTFinishPayload(wrapper.payload());
|
||||
break;
|
||||
case pbnetwork::WrapperMessage_Type_TYPE_FT_PAUSE:
|
||||
handleFTPausePayload(wrapper.payload());
|
||||
break;
|
||||
|
|
|
@ -1252,6 +1252,7 @@ void NetworkPluginServer::handleFTRejected(User *user, const std::string &buddyN
|
|||
f.set_buddyname(buddyName);
|
||||
f.set_filename(fileName);
|
||||
f.set_size(size);
|
||||
f.set_ftid(0);
|
||||
|
||||
std::string message;
|
||||
f.SerializeToString(&message);
|
||||
|
@ -1273,6 +1274,9 @@ void NetworkPluginServer::handleFTStateChanged(Swift::FileTransfer::State state,
|
|||
if (state.state == Swift::FileTransfer::State::Transferring) {
|
||||
handleFTAccepted(user, buddyName, fileName, size, id);
|
||||
}
|
||||
else if (state.state == Swift::FileTransfer::State::Canceled) {
|
||||
handleFTRejected(user, buddyName, fileName, size);
|
||||
}
|
||||
}
|
||||
|
||||
void NetworkPluginServer::sendPing(Backend *c) {
|
||||
|
|
Loading…
Add table
Reference in a new issue