Coverage Report

Created: 2024-04-24 06:23

/src/tarantool/src/box/node_name.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * SPDX-License-Identifier: BSD-2-Clause
3
 *
4
 * Copyright 2010-2023, Tarantool AUTHORS, please see AUTHORS file.
5
 */
6
#pragma once
7
8
#include <assert.h>
9
#include <stdbool.h>
10
#include <stddef.h>
11
#include <string.h>
12
13
/**
14
 * Name suitable for a node visible in the network. Its format matches the
15
 * sub-domain label in RFC 1035, section 2.3.1
16
 * (https://www.rfc-editor.org/rfc/rfc1035#section-2.3.1).
17
 *
18
 * It allows to use the node name as a sub-domain and a host name.
19
 *
20
 * The limitations are: max 63 symbols (not including term 0); only lowercase
21
 * letters, digits, and hyphen. Can start only with a letter. Note that the
22
 * sub-domain name rules say that uppercase is allowed but the names are
23
 * case-insensitive. In Tarantool the lowercase is enforced.
24
 */
25
26
enum {
27
  NODE_NAME_LEN_MAX = 63,
28
  NODE_NAME_SIZE_MAX = NODE_NAME_LEN_MAX + 1,
29
};
30
31
#if defined(__cplusplus)
32
extern "C" {
33
#endif /* defined(__cplusplus) */
34
35
/** Check if the node name of the given length is valid. */
36
bool
37
node_name_is_valid_n(const char *name, size_t len);
38
39
static inline bool
40
node_name_is_valid(const char *name)
41
0
{
42
0
  return node_name_is_valid_n(name, strnlen(name, NODE_NAME_SIZE_MAX));
43
0
}
Unexecuted instantiation: box.cc:node_name_is_valid(char const*)
Unexecuted instantiation: txn_limbo.c:node_name_is_valid
Unexecuted instantiation: txn.c:node_name_is_valid
Unexecuted instantiation: memtx_space.c:node_name_is_valid
Unexecuted instantiation: memtx_engine.cc:node_name_is_valid(char const*)
Unexecuted instantiation: space.c:node_name_is_valid
Unexecuted instantiation: session_settings.c:node_name_is_valid
Unexecuted instantiation: alter.cc:node_name_is_valid(char const*)
Unexecuted instantiation: iproto.cc:node_name_is_valid(char const*)
Unexecuted instantiation: request.c:node_name_is_valid
Unexecuted instantiation: raft.c:node_name_is_valid
Unexecuted instantiation: vinyl.c:node_name_is_valid
Unexecuted instantiation: vy_stmt.c:node_name_is_valid
Unexecuted instantiation: vy_run.c:node_name_is_valid
Unexecuted instantiation: vy_log.c:node_name_is_valid
Unexecuted instantiation: vy_scheduler.c:node_name_is_valid
Unexecuted instantiation: xrow_io.cc:node_name_is_valid(char const*)
Unexecuted instantiation: blackhole.c:node_name_is_valid
Unexecuted instantiation: replication.cc:node_name_is_valid(char const*)
Unexecuted instantiation: recovery.cc:node_name_is_valid(char const*)
Unexecuted instantiation: applier.cc:node_name_is_valid(char const*)
Unexecuted instantiation: relay.cc:node_name_is_valid(char const*)
Unexecuted instantiation: sql.c:node_name_is_valid
Unexecuted instantiation: execute.c:node_name_is_valid
Unexecuted instantiation: wal.c:node_name_is_valid
Unexecuted instantiation: call.c:node_name_is_valid
Unexecuted instantiation: misc.cc:node_name_is_valid(char const*)
Unexecuted instantiation: iproto.c:node_name_is_valid
Unexecuted instantiation: xrow.c:node_name_is_valid
Unexecuted instantiation: xlog.c:node_name_is_valid
Unexecuted instantiation: node_name.c:node_name_is_valid
44
45
static inline const char *
46
node_name_str(const char *name)
47
0
{
48
0
  if (name == NULL || *name == 0)
49
0
    return "<no-name>";
50
0
  return name;
51
0
}
Unexecuted instantiation: box.cc:node_name_str(char const*)
Unexecuted instantiation: txn_limbo.c:node_name_str
Unexecuted instantiation: txn.c:node_name_str
Unexecuted instantiation: memtx_space.c:node_name_str
Unexecuted instantiation: memtx_engine.cc:node_name_str(char const*)
Unexecuted instantiation: space.c:node_name_str
Unexecuted instantiation: session_settings.c:node_name_str
Unexecuted instantiation: alter.cc:node_name_str(char const*)
Unexecuted instantiation: iproto.cc:node_name_str(char const*)
Unexecuted instantiation: request.c:node_name_str
Unexecuted instantiation: raft.c:node_name_str
Unexecuted instantiation: vinyl.c:node_name_str
Unexecuted instantiation: vy_stmt.c:node_name_str
Unexecuted instantiation: vy_run.c:node_name_str
Unexecuted instantiation: vy_log.c:node_name_str
Unexecuted instantiation: vy_scheduler.c:node_name_str
Unexecuted instantiation: xrow_io.cc:node_name_str(char const*)
Unexecuted instantiation: blackhole.c:node_name_str
Unexecuted instantiation: replication.cc:node_name_str(char const*)
Unexecuted instantiation: recovery.cc:node_name_str(char const*)
Unexecuted instantiation: applier.cc:node_name_str(char const*)
Unexecuted instantiation: relay.cc:node_name_str(char const*)
Unexecuted instantiation: sql.c:node_name_str
Unexecuted instantiation: execute.c:node_name_str
Unexecuted instantiation: wal.c:node_name_str
Unexecuted instantiation: call.c:node_name_str
Unexecuted instantiation: misc.cc:node_name_str(char const*)
Unexecuted instantiation: iproto.c:node_name_str
Unexecuted instantiation: xrow.c:node_name_str
Unexecuted instantiation: xlog.c:node_name_str
Unexecuted instantiation: node_name.c:node_name_str
52
53
#if defined(__cplusplus)
54
}
55
#endif /* defined(__cplusplus) */