Commit 960373f54f4b7127b4be72a3bad8bd74327fee96
Add shs (secret-handshake) protocol
cel committed on 8/29/2017, 7:34:32 PMParent: f4d2a8d2adb32056e656a73ce3d1d1d155f81046
Files changed
probe.c | changed |
probe.c | ||
---|---|---|
@@ -39,8 +39,9 @@ | ||
39 | 39 … | static int is_xmpp_protocol(const char *p, int len, struct proto*); |
40 | 40 … | static int is_http_protocol(const char *p, int len, struct proto*); |
41 | 41 … | static int is_tls_protocol(const char *p, int len, struct proto*); |
42 | 42 … | static int is_adb_protocol(const char *p, int len, struct proto*); |
43 … | +static int is_shs_protocol(const char *p, int len, struct proto*); | |
43 | 44 … | static int is_true(const char *p, int len, struct proto* proto) { return 1; } |
44 | 45 … | |
45 | 46 … | /* Table of protocols that have a built-in probe |
46 | 47 … | */ |
@@ -53,8 +54,9 @@ | ||
53 | 54 … | { "http", NULL, NULL, 1, 0, is_http_protocol }, |
54 | 55 … | { "ssl", NULL, NULL, 1, 0, is_tls_protocol }, |
55 | 56 … | { "tls", NULL, NULL, 1, 0, is_tls_protocol }, |
56 | 57 … | { "adb", NULL, NULL, 1, 0, is_adb_protocol }, |
58 … | + { "shs", NULL, NULL, 1, 0, is_shs_protocol }, | |
57 | 59 … | { "anyprot", NULL, NULL, 1, 0, is_true } |
58 | 60 … | }; |
59 | 61 … | |
60 | 62 … | static struct proto *protocols; |
@@ -261,8 +263,16 @@ | ||
261 | 263 … | */ |
262 | 264 … | return !memcmp(&p[0], "CNXN", 4) && !memcmp(&p[24], "host:", 5); |
263 | 265 … | } |
264 | 266 … | |
267 … | +static int is_shs_protocol(const char *p, int len, struct proto *proto) | |
268 … | +{ | |
269 … | + if (len < 64) | |
270 … | + return PROBE_AGAIN; | |
271 … | + | |
272 … | + return len == 64; | |
273 … | +} | |
274 … | + | |
265 | 275 … | static int regex_probe(const char *p, int len, struct proto *proto) |
266 | 276 … | { |
267 | 277 … | |
268 | 278 … | regex_t **probe = proto->data; |
Built with git-ssb-web