Archived
3
0
This repository has been archived on 2024-06-18. You can view files and clone it, but cannot push or open issues or pull requests.
libipc-old/tcp/app/tcpd.h

59 lines
1.3 KiB
C
Raw Normal View History

#ifndef __TCPDSERVER_H__
#define __TCPDSERVER_H__
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include "../../lib/communication.h"
2016-09-29 19:02:05 +02:00
typedef struct {
struct sockaddr_in c_addr;
int sfd;
int index;
} client_data;
2016-09-29 19:02:05 +02:00
//informations for server to listen at a address
typedef struct {
struct sockaddr_in addr;
char * request;
struct process *p;
2016-09-29 19:02:05 +02:00
} info_request;
int initConnection (const info_request *req);
2016-09-22 18:38:24 +02:00
void endConnection (int sock);
2016-09-18 01:03:37 +02:00
void printAddr (struct sockaddr_in *csin);
2016-09-18 01:03:37 +02:00
2016-10-14 17:47:08 +02:00
void write_message(int sock, const char *buffer, size_t size);
int read_message(int sock, char *buffer);
2016-09-18 01:03:37 +02:00
//2 threads for listen and send data
void * service_thread(void * pdata);
2016-09-18 01:03:37 +02:00
//parse the first message from client in service and version
2016-09-18 00:17:47 +02:00
void parseServiceVersion(char * buf, char ** service, int *version);
2016-09-18 01:03:37 +02:00
//create 2 pathnames such as : pid-index-version-in/out
void inOutPathCreate(char ** pathname, int index, int version);
2016-09-18 01:03:37 +02:00
//create a fifo file
int fifo_create (char * path);
//create first message for a service : pid index version
void makePivMessage(char ** piv, int pid, int index, int version);
2016-09-29 19:02:05 +02:00
void * server_thread(void *reqq);
void * client_thread(void *reqq);
2016-10-28 13:58:04 +02:00
int srv_get_new_request(char *buf, info_request *req);
2016-09-29 19:02:05 +02:00
void request_print (const info_request *req);
2016-10-28 13:58:04 +02:00
void main_loop(struct service *srv);
2016-09-29 19:02:05 +02:00
#endif