aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard/Shared/Logging/ringlogger.h
blob: be1d33ca9b6a57407b6302111e2004b0c1c62b45 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* SPDX-License-Identifier: MIT
 *
 * Copyright © 2018 WireGuard LLC. All Rights Reserved.
 */

#ifndef RINGLOGGER_H
#define RINGLOGGER_H

enum {
    MAX_LOG_LINE_LENGTH = 512,
    MAX_LINES = 1024,
    MAGIC = 0xdeadbeefU
};

struct log_line {
    struct timeval tv;
    char line[MAX_LOG_LINE_LENGTH];
};

struct log {
    struct { uint32_t first, len; } header;
    struct log_line lines[MAX_LINES];
    uint32_t magic;
};

void write_msg_to_log(struct log *log, const char *msg);
int write_logs_to_file(const char *file_name, const char *tag1, const struct log *log1, const char *tag2, const struct log *log2);
struct log *open_log(const char *file_name);

#endif