Tor  0.4.7.0-alpha-dev
proto_ext_or.h
Go to the documentation of this file.
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_ext_or.h
9  * @brief Header for proto_ext_or.c
10  **/
11 
12 #ifndef TOR_PROTO_EXT_OR_H
13 #define TOR_PROTO_EXT_OR_H
14 
15 struct buf_t;
16 
17 /** A parsed Extended ORPort message. */
18 struct ext_or_cmd_t {
19  uint16_t cmd; /** Command type */
20  uint16_t len; /** Body length */
21  char body[FLEXIBLE_ARRAY_MEMBER]; /** Message body */
22 };
23 
24 int fetch_ext_or_command_from_buf(struct buf_t *buf,
25  struct ext_or_cmd_t **out);
26 
27 ext_or_cmd_t *ext_or_cmd_new(uint16_t len);
28 
29 #define ext_or_cmd_free(cmd) \
30  FREE_AND_NULL(ext_or_cmd_t, ext_or_cmd_free_, (cmd))
31 
33 
34 #endif /* !defined(TOR_PROTO_EXT_OR_H) */
int fetch_ext_or_command_from_buf(struct buf_t *buf, struct ext_or_cmd_t **out)
Definition: proto_ext_or.c:27
void ext_or_cmd_free_(ext_or_cmd_t *cmd)
Definition: ext_orport.c:46
ext_or_cmd_t * ext_or_cmd_new(uint16_t len)
Definition: ext_orport.c:36
char body[FLEXIBLE_ARRAY_MEMBER]
Definition: proto_ext_or.h:21
uint16_t len
Definition: proto_ext_or.h:20