OpenVPN
tun_afunix.h
Go to the documentation of this file.
1/*
2 * OpenVPN -- An application to securely tunnel IP networks
3 * over a single TCP/UDP port, with support for SSL/TLS-based
4 * session authentication and key exchange,
5 * packet encryption, packet authentication, and
6 * packet compression.
7 *
8 * Copyright (C) 2002-2024 OpenVPN Inc <sales@openvpn.net>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2
12 * as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License along
20 * with this program; if not, write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 */
23
24#ifndef AFUNIX_TUN_H
25#define AFUNIX_TUN_H
26#include <sys/types.h>
27
28#include "tun.h"
29
35void
36open_tun_afunix(struct options *o,
37 int mtu,
38 struct tuntap *tt,
39 struct env_set *env);
40
41
46void
47close_tun_afunix(struct tuntap *tt);
48
52ssize_t
53write_tun_afunix(struct tuntap *tt, uint8_t *buf, int len);
54
58ssize_t
59read_tun_afunix(struct tuntap *tt, uint8_t *buf, int len);
60
61#endif /* AFUNIX_TUN_H */
62
68static inline bool
69is_tun_afunix(const char *devnode)
70{
71 return devnode && strprefix(devnode, "unix:");
72}
static bool strprefix(const char *str, const char *prefix)
Return true iff str starts with prefix.
Definition buffer.h:977
Definition tun.h:181
void open_tun_afunix(struct options *o, int mtu, struct tuntap *tt, struct env_set *env)
Opens an AF_UNIX based tun device.
Definition tun_afunix.c:74
ssize_t read_tun_afunix(struct tuntap *tt, uint8_t *buf, int len)
Reads a packet from a AF_UNIX based tun device.
Definition tun_afunix.c:157
void close_tun_afunix(struct tuntap *tt)
Closes the socket used for the AF_UNIX based device.
Definition tun_afunix.c:129
ssize_t write_tun_afunix(struct tuntap *tt, uint8_t *buf, int len)
Writes a packet to a AF_UNIX based tun device.
Definition tun_afunix.c:144
static bool is_tun_afunix(const char *devnode)
Checks whether a –dev-node parameter specifies a AF_UNIX device.
Definition tun_afunix.h:69