mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2024-12-22 14:22:23 +00:00
Removed terminology changes
This commit is contained in:
parent
76f1ab33f0
commit
bd3d9ee356
@ -114,7 +114,7 @@ class TcpConnection
|
||||
{
|
||||
public:
|
||||
|
||||
uint64_t accept_canary;
|
||||
uint64_t accept_token;
|
||||
|
||||
bool pending, listening;
|
||||
int pid, idx;
|
||||
@ -530,18 +530,18 @@ void NetconEthernetTap::phyOnUnixData(PhySocket *sock,void **uptr,void *data,uns
|
||||
|
||||
// STREAM
|
||||
else {
|
||||
int data_start = -1, data_end = -1, canary_pos = -1, padding_pos = -1;
|
||||
int data_start = -1, data_end = -1, token_pos = -1, padding_pos = -1;
|
||||
char padding[] = {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89};
|
||||
dwr(MSG_DEBUG," <%x> stream data, len = %d\n", sock, len);
|
||||
// Look for padding
|
||||
std::string padding_pattern(padding, padding+CANARY_PADDING_SIZE);
|
||||
std::string buffer(buf, buf + len);
|
||||
padding_pos = buffer.find(padding_pattern);
|
||||
canary_pos = padding_pos-CANARY_SIZE;
|
||||
token_pos = padding_pos-CANARY_SIZE;
|
||||
dwr(MSG_DEBUG, " <%x> padding_pos = %d\n", sock, padding_pos);
|
||||
// Grab canary, next we'll use it to look up an RPC job
|
||||
if(canary_pos > -1) {
|
||||
memcpy(&CANARY_num, buf+canary_pos, CANARY_SIZE);
|
||||
// Grab token, next we'll use it to look up an RPC job
|
||||
if(token_pos > -1) {
|
||||
memcpy(&CANARY_num, buf+token_pos, CANARY_SIZE);
|
||||
if(CANARY_num != 0) { // TODO: Added to address CANARY_num==0 bug, last seeen 20160108
|
||||
// Find job
|
||||
sockdata = jobmap[CANARY_num];
|
||||
@ -561,31 +561,31 @@ void NetconEthernetTap::phyOnUnixData(PhySocket *sock,void **uptr,void *data,uns
|
||||
if(padding_pos == -1) { // [DATA]
|
||||
memcpy(&conn->buf[conn->idx], buf, wlen);
|
||||
}
|
||||
else { // Padding found, implies a canary is present
|
||||
// [CANARY]
|
||||
if(len == CANARY_SIZE && canary_pos == 0) {
|
||||
else { // Padding found, implies a token is present
|
||||
// [TOKEN]
|
||||
if(len == TOKEN_SIZE && token_pos == 0) {
|
||||
wlen = 0; // Nothing to write
|
||||
}
|
||||
else {
|
||||
// [CANARY] + [DATA]
|
||||
if(len > CANARY_SIZE && canary_pos == 0) {
|
||||
wlen = len - CANARY_SIZE;
|
||||
// [TOKEN] + [DATA]
|
||||
if(len > TOKEN_SIZE && token_pos == 0) {
|
||||
wlen = len - TOKEN_SIZE;
|
||||
data_start = padding_pos+CANARY_PADDING_SIZE;
|
||||
memcpy((&conn->buf)+conn->idx, buf+data_start, wlen);
|
||||
}
|
||||
// [DATA] + [CANARY]
|
||||
if(len > CANARY_SIZE && canary_pos > 0 && canary_pos == len - CANARY_SIZE) {
|
||||
wlen = len - CANARY_SIZE;
|
||||
// [DATA] + [TOKEN]
|
||||
if(len > TOKEN_SIZE && token_pos > 0 && token_pos == len - TOKEN_SIZE) {
|
||||
wlen = len - TOKEN_SIZE;
|
||||
data_start = 0;
|
||||
memcpy((&conn->buf)+conn->idx, buf+data_start, wlen);
|
||||
}
|
||||
// [DATA] + [CANARY] + [DATA]
|
||||
if(len > CANARY_SIZE && canary_pos > 0 && len > (canary_pos + CANARY_SIZE)) {
|
||||
wlen = len - CANARY_SIZE;
|
||||
// [DATA] + [TOKEN] + [DATA]
|
||||
if(len > TOKEN_SIZE && token_pos > 0 && len > (token_pos + TOKEN_SIZE)) {
|
||||
wlen = len - TOKEN_SIZE;
|
||||
data_start = 0;
|
||||
data_end = padding_pos-CANARY_SIZE;
|
||||
memcpy((&conn->buf)+conn->idx, buf+data_start, (data_end-data_start)+1);
|
||||
memcpy((&conn->buf)+conn->idx, buf+(padding_pos+CANARY_PADDING_SIZE), len-(canary_pos+CANARY_SIZE));
|
||||
memcpy((&conn->buf)+conn->idx, buf+(padding_pos+CANARY_PADDING_SIZE), len-(token_pos+TOKEN_SIZE));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user