[automerger] Merge "Attempt "fix" the broken QUIC packet to be slightly less broken" into marshmallow-cts-dev am: e9da15c22e am: 7e685d9f80 am: 3d29223c93 am: c2a5ccb153 am: ef295eafa2 am: 9c8f9cef74 am: d6ae111ff7 am: 446311265a
Change-Id: I13d8da83b93f444310e647f11d4e6801557a892b
This commit is contained in:
@@ -177,13 +177,17 @@ JNIEXPORT jint Java_android_net_cts_MultinetworkApiTest_runDatagramCheck(
|
|||||||
setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &timeo, sizeof(timeo));
|
setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &timeo, sizeof(timeo));
|
||||||
|
|
||||||
// For reference see:
|
// For reference see:
|
||||||
// https://tools.ietf.org/html/draft-tsvwg-quic-protocol-01#section-6.1
|
// https://tools.ietf.org/html/draft-tsvwg-quic-protocol#section-6.1
|
||||||
uint8_t quic_packet[] = {
|
uint8_t quic_packet[1200] = {
|
||||||
0x0c, // public flags: 64bit conn ID, 8bit sequence number
|
0x0d, // public flags:
|
||||||
|
// - version present (0x01),
|
||||||
|
// - 64bit connection ID (0x0c),
|
||||||
|
// - 1 byte packet number (0x00)
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, // 64bit connection ID
|
0, 0, 0, 0, 0, 0, 0, 0, // 64bit connection ID
|
||||||
0x01, // sequence number
|
0xaa, 0xda, 0xca, 0xaa, // reserved-space version number
|
||||||
|
1, // 1 byte packet number
|
||||||
0x00, // private flags
|
0x00, // private flags
|
||||||
0x07, // type: regular frame type "PING"
|
0x07, // PING frame (cuz why not)
|
||||||
};
|
};
|
||||||
|
|
||||||
arc4random_buf(quic_packet + 1, 8); // random connection ID
|
arc4random_buf(quic_packet + 1, 8); // random connection ID
|
||||||
@@ -211,7 +215,7 @@ JNIEXPORT jint Java_android_net_cts_MultinetworkApiTest_runDatagramCheck(
|
|||||||
i + 1, MAX_RETRIES, rcvd, errnum);
|
i + 1, MAX_RETRIES, rcvd, errnum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (rcvd < sent) {
|
if (rcvd < 9) {
|
||||||
ALOGD("QUIC UDP %s: sent=%zd but rcvd=%zd, errno=%d", kPort, sent, rcvd, errnum);
|
ALOGD("QUIC UDP %s: sent=%zd but rcvd=%zd, errno=%d", kPort, sent, rcvd, errnum);
|
||||||
if (rcvd <= 0) {
|
if (rcvd <= 0) {
|
||||||
ALOGD("Does this network block UDP port %s?", kPort);
|
ALOGD("Does this network block UDP port %s?", kPort);
|
||||||
@@ -227,8 +231,7 @@ JNIEXPORT jint Java_android_net_cts_MultinetworkApiTest_runDatagramCheck(
|
|||||||
return -EPROTO;
|
return -EPROTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: log, and compare to the IP address encoded in the
|
// TODO: Replace this quick 'n' dirty test with proper QUIC-capable code.
|
||||||
// response, since this should be a public reset packet.
|
|
||||||
|
|
||||||
close(fd);
|
close(fd);
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user