diff --git a/shadowsocks/common.py b/shadowsocks/common.py index 377f06a..ddbbb60 100644 --- a/shadowsocks/common.py +++ b/shadowsocks/common.py @@ -192,8 +192,8 @@ def parse_header(data): dest_addr = None dest_port = None header_length = 0 - connecttype = (addrtype & 0x10) and 1 or 0 - addrtype &= ~0x10 + connecttype = (addrtype & 0x8) and 1 or 0 + addrtype &= ~0x8 if addrtype == ADDRTYPE_IPV4: if len(data) >= 7: dest_addr = socket.inet_ntoa(data[1:5]) diff --git a/shadowsocks/obfsplugin/verify.py b/shadowsocks/obfsplugin/verify.py index 8b513b8..1dfbdb0 100644 --- a/shadowsocks/obfsplugin/verify.py +++ b/shadowsocks/obfsplugin/verify.py @@ -286,8 +286,8 @@ class verify_sha1(verify_base): self.pack_id += 1 return data - def auth_pack_data(self, buf): - data = buf + def pack_auth_data(self, buf): + data = chr(ord(buf[0]) | 0x10) + buf[1:] data += hmac.new(self.server_info.iv + self.server_info.key, buf, hashlib.sha1).digest()[:10] return data @@ -295,7 +295,7 @@ class verify_sha1(verify_base): ret = b'' if not self.has_sent_header: datalen = self.get_head_size(buf, 30) - ret += self.auth_pack_data(buf[datalen:]) + ret += self.pack_auth_data(buf[datalen:]) buf = buf[datalen:] self.has_sent_header = True while len(buf) > self.unit_len: