83 lines
2.6 KiB
C
83 lines
2.6 KiB
C
/**************************
|
|
* Header Dependency *
|
|
***************************
|
|
* Designed & Developed by *
|
|
* Adrien Marquès *
|
|
* <xdrm-brackets> *
|
|
***************************
|
|
* doowap31@gmail.com *
|
|
**************************/
|
|
|
|
|
|
#ifndef _LIB_HEADER_H_
|
|
#define _LIB_HEADER_H_
|
|
|
|
|
|
/* global */
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <pthread.h>
|
|
#include <stdint.h>
|
|
#include <errno.h>
|
|
|
|
/* sys */
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
|
|
|
|
/* socket */
|
|
#include <unistd.h> // close
|
|
#include <netinet/in.h>
|
|
#include <netdb.h> // getaddrinfo, getnameinfo
|
|
#include <arpa/inet.h>
|
|
|
|
#include "debug.h"
|
|
#include "data.h"
|
|
|
|
/* vars */
|
|
#define SERV_HOST "127.0.0.1" // adresse serveur
|
|
#define MCST_HOST "224.0.0.1" // adresse groupe multicast UDP -> plane
|
|
#define MCST_VTER "224.0.0.2" // adresse groupe multicast UDP -> viewTerm
|
|
#define MCST_CTER "224.0.0.3" // adresse groupe multicast UDP -> ctrlTerm
|
|
#define UDP_MCST 4444 // multicast UDP port for PLANES
|
|
#define TCP_LIST 0x504c // TCP plane command (PL = 8076)
|
|
|
|
#define UDP_VTER 4445 // viewTerm listener
|
|
#define UDP_CTER 4446 // ctrlTerm listener
|
|
|
|
#define MAX_BUF_LEN 512
|
|
#define MAX_TCP_THR 10
|
|
#define MAX_UDP_THR 10
|
|
#define maxHostLen 64
|
|
#define maxPortLen 6
|
|
|
|
#define SOCK_TIMEOUT 3 // 3sec timeout (1+ temps refresh plane)
|
|
|
|
|
|
struct context{
|
|
unsigned int n; // nombre d'avions
|
|
struct plane* data; // buffer tes données avion
|
|
};
|
|
|
|
struct middleware_arg{
|
|
int listenSock; // socket source
|
|
int* comSock; // socket destination
|
|
char entity[10]; // entity for log
|
|
};
|
|
|
|
struct handler_arg{
|
|
pthread_t* managers;
|
|
int* activeManagers;
|
|
int socket;
|
|
struct context* sgca;
|
|
};
|
|
|
|
struct listen_arg{
|
|
const char addr[16]; // socket address
|
|
const unsigned short port; // socket port
|
|
int (*middleware)(struct middleware_arg*); // middleware function
|
|
void* (*handler)(void*); // management function (thread)
|
|
};
|
|
|
|
#endif |