LCOV - code coverage report
Current view: top level - core/proto - proto_control0.c (source / functions) Hit Total Coverage
Test: lcov.info Lines: 8 8 100.0 %
Date: 2021-11-24 03:28:48 Functions: 1 1 100.0 %

          Line data    Source code
       1             : /* Copyright (c) 2001 Matej Pfajfar.
       2             :  * Copyright (c) 2001-2004, Roger Dingledine.
       3             :  * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
       4             :  * Copyright (c) 2007-2021, The Tor Project, Inc. */
       5             : /* See LICENSE for licensing information */
       6             : 
       7             : /**
       8             :  * @file proto_control0.c
       9             :  * @brief Code to detect the obsolete v0 control protocol.
      10             :  **/
      11             : 
      12             : #include "core/or/or.h"
      13             : #include "lib/buf/buffers.h"
      14             : #include "core/proto/proto_control0.h"
      15             : 
      16             : /** Return 1 iff buf looks more like it has an (obsolete) v0 controller
      17             :  * command on it than any valid v1 controller command. */
      18             : int
      19           4 : peek_buf_has_control0_command(buf_t *buf)
      20             : {
      21           4 :   if (buf_datalen(buf) >= 4) {
      22           2 :     char header[4];
      23           2 :     uint16_t cmd;
      24           2 :     buf_peek(buf, header, sizeof(header));
      25           2 :     cmd = ntohs(get_uint16(header+2));
      26           2 :     if (cmd <= 0x14)
      27           1 :       return 1; /* This is definitely not a v1 control command. */
      28             :   }
      29             :   return 0;
      30             : }

Generated by: LCOV version 1.14