mirror of https://github.com/aria2/aria2
Refactored DSCP-related code a bit
parent
924feb12b0
commit
46a251e346
|
@ -184,6 +184,7 @@ Context::Context(bool standalone,
|
||||||
// when none of network interface has IPv4 address.
|
// when none of network interface has IPv4 address.
|
||||||
setDefaultAIFlags(0);
|
setDefaultAIFlags(0);
|
||||||
}
|
}
|
||||||
|
SocketCore::setIpDscp(op->getAsInt(PREF_DSCP));
|
||||||
net::checkAddrconfig();
|
net::checkAddrconfig();
|
||||||
// Bind interface
|
// Bind interface
|
||||||
if(!op->get(PREF_INTERFACE).empty()) {
|
if(!op->get(PREF_INTERFACE).empty()) {
|
||||||
|
|
|
@ -41,7 +41,6 @@
|
||||||
#include "prefs.h"
|
#include "prefs.h"
|
||||||
#include "SocketCore.h"
|
#include "SocketCore.h"
|
||||||
#include "Logger.h"
|
#include "Logger.h"
|
||||||
#include "Option.h"
|
|
||||||
#include "LogFactory.h"
|
#include "LogFactory.h"
|
||||||
#include "Peer.h"
|
#include "Peer.h"
|
||||||
#include "BtRuntime.h"
|
#include "BtRuntime.h"
|
||||||
|
@ -84,7 +83,7 @@ bool PeerInitiateConnectionCommand::executeInternal() {
|
||||||
createSocket();
|
createSocket();
|
||||||
getSocket()->establishConnection(getPeer()->getIPAddress(),
|
getSocket()->establishConnection(getPeer()->getIPAddress(),
|
||||||
getPeer()->getPort(), false);
|
getPeer()->getPort(), false);
|
||||||
getSocket()->setIpDscp(requestGroup_->getOption()->getAsInt(PREF_DSCP));
|
getSocket()->applyIpDscp();
|
||||||
if(mseHandshakeEnabled_) {
|
if(mseHandshakeEnabled_) {
|
||||||
auto c = make_unique<InitiatorMSEHandshakeCommand>
|
auto c = make_unique<InitiatorMSEHandshakeCommand>
|
||||||
(getCuid(), requestGroup_, getPeer(),
|
(getCuid(), requestGroup_, getPeer(),
|
||||||
|
|
|
@ -44,7 +44,6 @@
|
||||||
#include "message.h"
|
#include "message.h"
|
||||||
#include "ReceiverMSEHandshakeCommand.h"
|
#include "ReceiverMSEHandshakeCommand.h"
|
||||||
#include "Logger.h"
|
#include "Logger.h"
|
||||||
#include "Option.h"
|
|
||||||
#include "LogFactory.h"
|
#include "LogFactory.h"
|
||||||
#include "SocketCore.h"
|
#include "SocketCore.h"
|
||||||
#include "SimpleRandomizer.h"
|
#include "SimpleRandomizer.h"
|
||||||
|
@ -111,7 +110,7 @@ bool PeerListenCommand::execute() {
|
||||||
std::shared_ptr<SocketCore> peerSocket;
|
std::shared_ptr<SocketCore> peerSocket;
|
||||||
try {
|
try {
|
||||||
peerSocket = socket_->acceptConnection();
|
peerSocket = socket_->acceptConnection();
|
||||||
peerSocket->setIpDscp(e_->getOption()->getAsInt(PREF_DSCP));
|
peerSocket->applyIpDscp();
|
||||||
std::pair<std::string, uint16_t> peerInfo;
|
std::pair<std::string, uint16_t> peerInfo;
|
||||||
peerSocket->getPeerInfo(peerInfo);
|
peerSocket->getPeerInfo(peerInfo);
|
||||||
|
|
||||||
|
|
|
@ -129,6 +129,7 @@ enum TlsState {
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
int SocketCore::protocolFamily_ = AF_UNSPEC;
|
int SocketCore::protocolFamily_ = AF_UNSPEC;
|
||||||
|
int SocketCore::ipDscp_ = 0;
|
||||||
|
|
||||||
std::vector<std::pair<sockaddr_union, socklen_t> >
|
std::vector<std::pair<sockaddr_union, socklen_t> >
|
||||||
SocketCore::bindAddrs_;
|
SocketCore::bindAddrs_;
|
||||||
|
@ -532,9 +533,9 @@ void SocketCore::setTcpNodelay(bool f)
|
||||||
setSockOpt(IPPROTO_TCP, TCP_NODELAY, &val, sizeof(val));
|
setSockOpt(IPPROTO_TCP, TCP_NODELAY, &val, sizeof(val));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SocketCore::setIpDscp(int32_t dscp)
|
void SocketCore::applyIpDscp()
|
||||||
{
|
{
|
||||||
setSockOpt(IPPROTO_IP, IP_TOS, &dscp, sizeof(dscp));
|
setSockOpt(IPPROTO_IP, IP_TOS, &ipDscp_, sizeof(ipDscp_));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SocketCore::setNonBlockingMode()
|
void SocketCore::setNonBlockingMode()
|
||||||
|
|
|
@ -66,6 +66,7 @@ private:
|
||||||
sock_t sockfd_;
|
sock_t sockfd_;
|
||||||
|
|
||||||
static int protocolFamily_;
|
static int protocolFamily_;
|
||||||
|
static int ipDscp_;
|
||||||
|
|
||||||
static std::vector<std::pair<sockaddr_union, socklen_t> > bindAddrs_;
|
static std::vector<std::pair<sockaddr_union, socklen_t> > bindAddrs_;
|
||||||
|
|
||||||
|
@ -121,7 +122,11 @@ public:
|
||||||
void setTcpNodelay(bool f);
|
void setTcpNodelay(bool f);
|
||||||
|
|
||||||
// Set DSCP byte
|
// Set DSCP byte
|
||||||
void setIpDscp(int32_t);
|
void applyIpDscp();
|
||||||
|
static void setIpDscp(int ipDscp)
|
||||||
|
{
|
||||||
|
ipDscp_ = ipDscp;
|
||||||
|
}
|
||||||
|
|
||||||
void create(int family, int protocol = 0);
|
void create(int family, int protocol = 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue