Reformat code

This commit is contained in:
PolynomialDivision 2017-07-24 18:45:02 +02:00
parent fa52176cd8
commit 325cbc764c
6 changed files with 989 additions and 1048 deletions

View file

@ -9,33 +9,33 @@
#include "broadcastsocket.h"
int setup_broadcast_socket(const char *_broadcast_ip, unsigned short _broadcast_port, struct sockaddr_in *addr) {
int sock;
int broadcast_permission;
int sock;
int broadcast_permission;
/* Create socket */
if ((sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
fprintf(stderr, "Failed to create socket.\n");
return -1;
}
/* Create socket */
if ((sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
fprintf(stderr, "Failed to create socket.\n");
return -1;
}
/* Allow broadcast */
broadcast_permission = 1;
if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (void *)&broadcast_permission,
sizeof(broadcast_permission)) < 0) {
fprintf(stderr, "Failed to create socket.\n");
return -1;
}
/* Allow broadcast */
broadcast_permission = 1;
if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (void *) &broadcast_permission,
sizeof(broadcast_permission)) < 0) {
fprintf(stderr, "Failed to create socket.\n");
return -1;
}
/* Construct Address */
memset(addr, 0, sizeof(*addr));
addr->sin_family = AF_INET;
addr->sin_addr.s_addr = inet_addr(_broadcast_ip);
addr->sin_port = htons(_broadcast_port);
/* Construct Address */
memset(addr, 0, sizeof(*addr));
addr->sin_family = AF_INET;
addr->sin_addr.s_addr = inet_addr(_broadcast_ip);
addr->sin_port = htons(_broadcast_port);
if (bind(sock, (struct sockaddr *)addr, sizeof(*addr)) <
0) {
fprintf(stderr, "Binding socket failed!\n");
return -1;
}
return sock;
if (bind(sock, (struct sockaddr *) addr, sizeof(*addr)) <
0) {
fprintf(stderr, "Binding socket failed!\n");
return -1;
}
return sock;
}

View file

@ -13,59 +13,58 @@
static struct ip_mreq command; /* static ?! */
int setup_multicast_socket(const char *_multicast_ip, unsigned short _multicast_port, struct sockaddr_in *addr)
{
int loop = 1;
int sock;
int setup_multicast_socket(const char *_multicast_ip, unsigned short _multicast_port, struct sockaddr_in *addr) {
int loop = 1;
int sock;
memset (addr, 0, sizeof (*addr));
addr->sin_family = AF_INET;
addr->sin_addr.s_addr = htonl (INADDR_ANY);
addr->sin_port = htons (_multicast_port);
memset(addr, 0, sizeof(*addr));
addr->sin_family = AF_INET;
addr->sin_addr.s_addr = htonl (INADDR_ANY);
addr->sin_port = htons (_multicast_port);
if ( ( sock = socket(PF_INET, SOCK_DGRAM, 0)) == -1) {
perror ("socket()");
exit (EXIT_FAILURE);
}
if ((sock = socket(PF_INET, SOCK_DGRAM, 0)) == -1) {
perror("socket()");
exit(EXIT_FAILURE);
}
/* Mehr Prozessen erlauben, denselben Port zu nutzen */
loop = 1;
if (setsockopt ( sock,
/* Mehr Prozessen erlauben, denselben Port zu nutzen */
loop = 1;
if (setsockopt(sock,
SOL_SOCKET,
SO_REUSEADDR,
&loop, sizeof (loop)) < 0) {
perror ("setsockopt:SO_REUSEADDR");
exit (EXIT_FAILURE);
}
if(bind( sock,
(struct sockaddr *)addr,
sizeof(*addr)) < 0) {
perror ("bind");
exit (EXIT_FAILURE);
}
&loop, sizeof(loop)) < 0) {
perror("setsockopt:SO_REUSEADDR");
exit(EXIT_FAILURE);
}
if (bind(sock,
(struct sockaddr *) addr,
sizeof(*addr)) < 0) {
perror("bind");
exit(EXIT_FAILURE);
}
/* Broadcast auf dieser Maschine zulassen */
loop = 1;
if (setsockopt ( sock,
/* Broadcast auf dieser Maschine zulassen */
loop = 1;
if (setsockopt(sock,
IPPROTO_IP,
IP_MULTICAST_LOOP,
&loop, sizeof (loop)) < 0) {
perror ("setsockopt:IP_MULTICAST_LOOP");
exit (EXIT_FAILURE);
}
&loop, sizeof(loop)) < 0) {
perror("setsockopt:IP_MULTICAST_LOOP");
exit(EXIT_FAILURE);
}
/* Join the broadcast group: */
command.imr_multiaddr.s_addr = inet_addr (_multicast_ip);
command.imr_interface.s_addr = htonl (INADDR_ANY);
if (command.imr_multiaddr.s_addr == -1) {
perror ("224.0.0.1 ist keine Multicast-Adresse\n");
exit (EXIT_FAILURE);
}
if (setsockopt ( sock,
/* Join the broadcast group: */
command.imr_multiaddr.s_addr = inet_addr(_multicast_ip);
command.imr_interface.s_addr = htonl (INADDR_ANY);
if (command.imr_multiaddr.s_addr == -1) {
perror("224.0.0.1 ist keine Multicast-Adresse\n");
exit(EXIT_FAILURE);
}
if (setsockopt(sock,
IPPROTO_IP,
IP_ADD_MEMBERSHIP,
&command, sizeof (command)) < 0) {
perror ("setsockopt:IP_ADD_MEMBERSHIP");
}
return sock;
&command, sizeof(command)) < 0) {
perror("setsockopt:IP_ADD_MEMBERSHIP");
}
return sock;
}

View file

@ -26,127 +26,120 @@ const char *ip;
unsigned short port;
char recv_string[MAX_RECV_STRING + 1];
int recv_string_len;
void *receive_msg(void *args);
int init_socket_runopts(char *_ip, char *_port, int broadcast_socket) {
port = atoi(_port);
ip = _ip;
if(broadcast_socket)
{
sock = setup_broadcast_socket(ip, port, &addr);
} else
{
printf("Settingup multicastsocket!\n");
sock = setup_multicast_socket(ip, port, &addr);
}
port = atoi(_port);
ip = _ip;
pthread_t sniffer_thread;
if (pthread_create(&sniffer_thread, NULL, receive_msg, NULL)) {
fprintf(stderr, "Could not create receiving thread!");
return -1;
}
if (broadcast_socket) {
sock = setup_broadcast_socket(ip, port, &addr);
} else {
printf("Settingup multicastsocket!\n");
sock = setup_multicast_socket(ip, port, &addr);
}
fprintf(stdout, "Connected to %s:%d\n", ip, port);
pthread_t sniffer_thread;
if (pthread_create(&sniffer_thread, NULL, receive_msg, NULL)) {
fprintf(stderr, "Could not create receiving thread!");
return -1;
}
return 0;
fprintf(stdout, "Connected to %s:%d\n", ip, port);
return 0;
}
void *receive_msg(void *args) {
while (1) {
if ((recv_string_len =
recvfrom(sock, recv_string, MAX_RECV_STRING, 0, NULL, 0)) < 0) {
fprintf(stderr, "Could not receive message!");
continue;
while (1) {
if ((recv_string_len =
recvfrom(sock, recv_string, MAX_RECV_STRING, 0, NULL, 0)) < 0) {
fprintf(stderr, "Could not receive message!");
continue;
}
if (recv_string == NULL) {
return 0;
}
if (strlen(recv_string) <= 0) {
return 0;
}
recv_string[recv_string_len] = '\0';
printf("[WC] Network-Received: %s\n", recv_string);
probe_entry prob_req;
struct blob_buf b;
blob_buf_init(&b, 0);
blobmsg_add_json_from_string(&b, recv_string);
char *str;
str = blobmsg_format_json(b.head, true);
/*
TODO: REFACTOR THIS!!! (just workaround)
OTHERWISE NULLPOINTER?!
*/
if (str == NULL) {
return 0;
}
if (strlen(str) <= 0) {
return 0;
}
/*
HERE IS NULLPOINTER PROBABLY
*/
if (strstr(str, "clients") != NULL) {
parse_to_clients(b.head);
} else if (strstr(str, "target") != NULL) {
if (parse_to_probe_req(b.head, &prob_req) == 0) {
insert_to_array(prob_req, 0);
}
}
//if(parse_to_probe_req(b.head, &prob_req) == 0)
//{
// insert_to_array(prob_req, 0);
//}
// insert to list
//insert_to_list(prob_req, 0);
}
if(recv_string == NULL)
{
return 0;
}
if(strlen(recv_string) <= 0)
{
return 0;
}
recv_string[recv_string_len] = '\0';
printf("[WC] Network-Received: %s\n", recv_string);
probe_entry prob_req;
struct blob_buf b;
blob_buf_init(&b, 0);
blobmsg_add_json_from_string(&b, recv_string);
char *str;
str = blobmsg_format_json(b.head, true);
/*
TODO: REFACTOR THIS!!! (just workaround)
OTHERWISE NULLPOINTER?!
*/
if(str == NULL)
{
return 0;
}
if( strlen(str) <= 0)
{
return 0;
}
/*
HERE IS NULLPOINTER PROBABLY
*/
if(strstr(str, "clients") != NULL) {
parse_to_clients(b.head);
} else if(strstr(str, "target")!= NULL)
{
if(parse_to_probe_req(b.head, &prob_req) == 0)
{
insert_to_array(prob_req, 0);
}
}
//if(parse_to_probe_req(b.head, &prob_req) == 0)
//{
// insert_to_array(prob_req, 0);
//}
// insert to list
//insert_to_list(prob_req, 0);
}
}
int send_string(char *msg) {
pthread_mutex_lock(&send_mutex);
int msglen = strlen(msg);
printf("Sending string! %s\n", msg);
if (sendto( sock,
msg,
msglen,
0,
(struct sockaddr *) &addr,
sizeof (addr)) < 0) {
perror ("sendto()");
exit (EXIT_FAILURE);
pthread_mutex_lock(&send_mutex);
int msglen = strlen(msg);
printf("Sending string! %s\n", msg);
if (sendto(sock,
msg,
msglen,
0,
(struct sockaddr *) &addr,
sizeof(addr)) < 0) {
perror("sendto()");
exit(EXIT_FAILURE);
}
pthread_mutex_unlock(&send_mutex);
pthread_mutex_unlock(&send_mutex);
/*if (sendto(sock, msg, msglen, 0, (struct sockaddr *)&addr,
sizeof(addr)) != msglen) {
fprintf(stderr, "Failed to send message.\n");
return -1;
}*/
return 0;
/*if (sendto(sock, msg, msglen, 0, (struct sockaddr *)&addr,
sizeof(addr)) != msglen) {
fprintf(stderr, "Failed to send message.\n");
return -1;
}*/
return 0;
}
void close_socket() { close(sock); }