new makefile

This commit is contained in:
cozis
2023-10-31 16:09:51 +01:00
parent 7033e1ea85
commit b495e53891
42 changed files with 1648 additions and 434 deletions
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+82
View File
@@ -0,0 +1,82 @@
#ifndef MICROTCP_H
#define MICROTCP_H
#include <stddef.h>
#include <stdint.h>
#include <assert.h>
#include <stdbool.h>
typedef struct microtcp_t microtcp_t;
typedef struct microtcp_socket_t microtcp_socket_t;
#define MICROTCP_MAX_BUFFERS 8
#define MICROTCP_MAX_SOCKETS 32
#define MICROTCP_MAX_MUX_ENTRIES 32
typedef enum {
MICROTCP_ERRCODE_NONE = 0,
// Returned by microtcp_open and microtcp_accept
MICROTCP_ERRCODE_SOCKETLIMIT,
// Returned by microtcp_open
MICROTCP_ERRCODE_TCPERROR,
MICROTCP_ERRCODE_BADCONDVAR,
// Returned by microtcp_accept
MICROTCP_ERRCODE_NOTLISTENER,
MICROTCP_ERRCODE_CANTBLOCK,
// Returned by microtcp_recv and microtcp_send
MICROTCP_ERRCODE_NOTCONNECTION,
// Returned by microtcp_accept, microtcp_recv and microtcp_send
MICROTCP_ERRCODE_WOULDBLOCK,
// Returned by microtcp_recv, microtcp_send
MICROTCP_ERRCODE_PEERCLOSED,
} microtcp_errcode_t;
typedef struct {
void *data;
void (*free)(void *data);
int (*send)(void *data, const void *src, size_t len);
int (*recv)(void *data, void *dst, size_t len);
} microtcp_callbacks_t;
bool microtcp_callbacks_create_for_tap(const char *ip, const char *mac, microtcp_callbacks_t *callbacks);
microtcp_t *microtcp_create(const char *tap_ip, const char *stack_ip, const char *tap_mac, const char *stack_mac);
microtcp_t *microtcp_create_using_callbacks(const char *ip, const char *mac, microtcp_callbacks_t callbacks);
void microtcp_destroy(microtcp_t *mtcp);
const char *microtcp_strerror(microtcp_errcode_t errcode);
microtcp_socket_t *microtcp_open(microtcp_t *mtcp, uint16_t port, microtcp_errcode_t *errcode);
microtcp_socket_t *microtcp_accept(microtcp_socket_t *socket, bool no_block, microtcp_errcode_t *errcode);
void microtcp_close(microtcp_socket_t *socket);
size_t microtcp_send(microtcp_socket_t *socket, const void *src, size_t len, bool no_block, microtcp_errcode_t *errcode);
size_t microtcp_recv(microtcp_socket_t *socket, void *dst, size_t len, bool no_block, microtcp_errcode_t *errcode);
void microtcp_step(microtcp_t *mtcp);
void microtcp_process_packet(microtcp_t *mtcp, const void *packet, size_t len);
typedef enum {
MICROTCP_MUX_ACCEPT = 1,
MICROTCP_MUX_RECV = 2,
MICROTCP_MUX_SEND = 4,
} microtcp_muxeventid_t;
typedef struct {
void *userp;
int events;
microtcp_socket_t *socket;
} microtcp_muxevent_t;
typedef struct microtcp_mux_t microtcp_mux_t;
microtcp_mux_t *microtcp_mux_create(microtcp_t *mtcp);
void microtcp_mux_destroy(microtcp_mux_t *mux);
bool microtcp_mux_register(microtcp_mux_t *mux, microtcp_socket_t *sock, int events, void *userp);
bool microtcp_mux_unregister(microtcp_mux_t *mux, microtcp_socket_t *sock, int events);
bool microtcp_mux_wait(microtcp_mux_t *mux, microtcp_muxevent_t *ev);
#endif
+42
View File
@@ -0,0 +1,42 @@
#ifndef TUNTAP_EXPORT_H
#define TUNTAP_EXPORT_H
#ifdef TUNTAP_STATIC_DEFINE
# define TUNTAP_EXPORT
# define TUNTAP_NO_EXPORT
#else
# ifndef TUNTAP_EXPORT
# ifdef tuntap_EXPORTS
/* We are building this library */
# define TUNTAP_EXPORT
# else
/* We are using this library */
# define TUNTAP_EXPORT
# endif
# endif
# ifndef TUNTAP_NO_EXPORT
# define TUNTAP_NO_EXPORT
# endif
#endif
#ifndef TUNTAP_DEPRECATED
# define TUNTAP_DEPRECATED __attribute__ ((__deprecated__))
#endif
#ifndef TUNTAP_DEPRECATED_EXPORT
# define TUNTAP_DEPRECATED_EXPORT TUNTAP_EXPORT TUNTAP_DEPRECATED
#endif
#ifndef TUNTAP_DEPRECATED_NO_EXPORT
# define TUNTAP_DEPRECATED_NO_EXPORT TUNTAP_NO_EXPORT TUNTAP_DEPRECATED
#endif
#if 0 /* DEFINE_NO_DEPRECATED */
# ifndef TUNTAP_NO_DEPRECATED
# define TUNTAP_NO_DEPRECATED
# endif
#endif
#endif /* TUNTAP_EXPORT_H */
+89
View File
@@ -0,0 +1,89 @@
/*
* Copyright (c) 2012 Tristan Le Guern <leguern AT medu DOT se>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#include <sys/types.h>
#include <tuntap-export.h>
#ifndef LIBTUNTAP_H_
# define LIBTUNTAP_H_
# define TUNTAP_ID_MAX 256
# define TUNTAP_ID_ANY 257
# define TUNTAP_MODE_ETHERNET 0x0001
# define TUNTAP_MODE_TUNNEL 0x0002
# define TUNTAP_MODE_PERSIST 0x0004
# define TUNTAP_LOG_NONE 0x0000
# define TUNTAP_LOG_DEBUG 0x0001
# define TUNTAP_LOG_INFO 0x0002
# define TUNTAP_LOG_NOTICE 0x0004
# define TUNTAP_LOG_WARN 0x0008
# define TUNTAP_LOG_ERR 0x0016
/* Versioning: 0xMMmm, with 'M' for major and 'm' for minor */
# define TUNTAP_VERSION_MAJOR 0
# define TUNTAP_VERSION_MINOR 4
# define TUNTAP_VERSION ((TUNTAP_VERSION_MAJOR<<8)|TUNTAP_VERSION_MINOR)
# ifdef __cplusplus
extern "C" {
# endif
/* Forward declaration of struct device */
struct device;
# if defined Windows
typedef void* t_tun;
# else /* Unix */
typedef int t_tun;
# endif
/* User definable log callback */
typedef void (*t_tuntap_log)(int, const char *);
/* Portable "public" functions */
TUNTAP_EXPORT struct device *tuntap_init(void);
TUNTAP_EXPORT int tuntap_version(void);
TUNTAP_EXPORT void tuntap_destroy(struct device *);
TUNTAP_EXPORT void tuntap_release(struct device *);
TUNTAP_EXPORT int tuntap_start(struct device *, int, int);
TUNTAP_EXPORT char *tuntap_get_ifname(struct device *);
TUNTAP_EXPORT int tuntap_set_ifname(struct device *, const char *);
TUNTAP_EXPORT char *tuntap_get_hwaddr(struct device *);
TUNTAP_EXPORT int tuntap_set_hwaddr(struct device *, const char *);
TUNTAP_EXPORT int tuntap_set_descr(struct device *, const char *);
TUNTAP_EXPORT char *tuntap_get_descr(struct device *);
TUNTAP_EXPORT int tuntap_up(struct device *);
TUNTAP_EXPORT int tuntap_down(struct device *);
TUNTAP_EXPORT int tuntap_get_mtu(struct device *);
TUNTAP_EXPORT int tuntap_set_mtu(struct device *, int);
TUNTAP_EXPORT int tuntap_set_ip(struct device *, const char *, int);
TUNTAP_EXPORT int tuntap_read(struct device *, void *, size_t);
TUNTAP_EXPORT int tuntap_write(struct device *, void *, size_t);
TUNTAP_EXPORT int tuntap_get_readable(struct device *);
TUNTAP_EXPORT int tuntap_set_nonblocking(struct device *dev, int);
TUNTAP_EXPORT int tuntap_set_debug(struct device *dev, int);
TUNTAP_EXPORT t_tun tuntap_get_fd(struct device *);
/* Logging functions */
TUNTAP_EXPORT void tuntap_log_set_cb(t_tuntap_log cb);
# ifdef __cplusplus
}
# endif
#endif