CARS
|
Implementazione delle funzioni definite nell'header file comsock.h. More...
#include "comsock.h"
#include "settings.h"
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
Defines | |
#define | CHAR_LENGTH 4 |
#define | BUFF_SIZE 512 |
Functions | |
int | createServerChannel (char *path) |
int | closeSocket (int s) |
int | acceptConnection (int s) |
int | receiveMessage (int sc, message_t *msg) |
static int | power (int exp) |
int | sendMessage (int sc, message_t *msg) |
int | openConnection (char *path) |
Implementazione delle funzioni definite nell'header file comsock.h.
Si dichiara che il contenuto di questo file e' in ogni sua parte opera originale dell' autore.
#define BUFF_SIZE 512 |
Dimensione del campo buffer del messaggio. Necessaria per effettuare la serializzazione del messaggio e la sua ricezione
Referenced by findAssociation(), goingBackToSleep(), main(), match(), sendMessage(), setOfferMessage(), setRequestMessage(), and worker_thread().
#define CHAR_LENGTH 4 |
Dimensione in caratteri del campo dimensioni. Necessaria per effettuare la serializzazione del messaggio e la sua ricezione
Referenced by receiveMessage(), and sendMessage().
int acceptConnection | ( | int | s | ) |
accetta una connessione da parte di un client
s | socket su cui ci mettiamo in attesa di accettare la connessione |
c | il descrittore della socket su cui siamo connessi |
-1 | in casi di errore (setta errno) |
Referenced by main().
int closeSocket | ( | int | s | ) |
Chiude una socket
s | file descriptor della socket |
0 | se tutto ok, |
-1 | se errore (setta errno) |
Referenced by cleanup(), goingBackToSleep(), main(), and signal_handler().
int createServerChannel | ( | char * | path | ) |
Crea una socket AF_UNIX
path | pathname della socket |
s | il file descriptor della socket (s>0) |
-1 | in altri casi di errore (setta errno) errno = E2BIG se il nome eccede UNIX_PATH_MAX |
in caso di errore ripristina la situazione inziale: rimuove eventuali socket create e chiude eventuali file descriptor rimasti aperti
References UNIX_PATH_MAX.
Referenced by main().
int openConnection | ( | char * | path | ) |
crea una connessione all socket del server. In caso di errore funzione tenta NTRIALCONN volte la connessione (a distanza di 1 secondo l'una dall'altra) prima di ritornare errore.
path | nome del socket su cui il server accetta le connessioni |
-1 | in caso di errore (setta errno) errno = E2BIG se il nome eccede UNIX_PATH_MAX |
in caso di errore ripristina la situazione inziale: rimuove eventuali socket create e chiude eventuali file descriptor rimasti aperti
References NTRIALCONN, and UNIX_PATH_MAX.
Referenced by main(), and worker_thread().
static int power | ( | int | exp | ) | [static] |
Calcola l'elevamento a potenza, in base 10 di un numero
Referenced by sendMessage().
int receiveMessage | ( | int | sc, |
message_t * | msg | ||
) |
legge un messaggio dalla socket --- attenzione si richiede che il messaggio sia adeguatamente spacchettato e trasferito nella struttura msg
sc | file descriptor della socket |
msg | struttura che conterra' il messagio letto (deve essere allocata all'esterno della funzione, tranne il campo buffer) |
lung | lunghezza del buffer letto, se OK |
-1 | in caso di errore (setta errno) errno = ENOTCONN se il peer ha chiuso la connessione (non ci sono piu' scrittori sulla socket) |
References message_t::buffer, CHAR_LENGTH, and message_t::length.
Referenced by listen_thread(), main(), and worker_thread().
int sendMessage | ( | int | sc, |
message_t * | msg | ||
) |
References BUFF_SIZE, message_t::buffer, CHAR_LENGTH, message_t::length, and power().
Referenced by findAssociation(), main(), match(), and worker_thread().