Modifs apd et locclient
M loc-bts/code/ap/apd.c : L'adresse du serveur d'agrégation n'est plus en dur dans le code, elle doit être spécifiée sur la ligne de commande lors de l'appel au programme. M loc-bts/code/ap/ap.h : Modifications mineures dans le même sens. M loc-bts/code/client/locclient.c git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@10 785a6c6c-259e-4ff1-8b91-dc31627914f0
This commit is contained in:
parent
5640fe2479
commit
55350b38cd
|
@ -21,8 +21,13 @@
|
|||
#define ERR_BAD_USAGE 3 // Mauvais appel au programme
|
||||
|
||||
|
||||
/* Arguments du programme */
|
||||
#define ARGC 4
|
||||
enum {ARGV_AGGREG_IP=1, ARGV_RTAP_IFACE, ARGV_WIFI_IFACE} ;
|
||||
|
||||
|
||||
/* En-têtes des fonctions */
|
||||
int capture(char *capture_iface, BOOL print_values) ;
|
||||
int capture(char *capture_iface, char *aggregated_ip, BOOL print_values) ;
|
||||
void read_packet(u_char *args, const struct pcap_pkthdr *header, const u_char *packet, int sockfd, struct sockaddr_in *server, BOOL print_values) ;
|
||||
void get_mac_addr(char *eth, unsigned char mac_bytes[6]) ;
|
||||
void print_usage(char *prog) ;
|
||||
|
|
|
@ -12,10 +12,10 @@ unsigned char mac[6] ; // Adresse MAC de l'AP
|
|||
int main(int argc, char *argv[])
|
||||
{
|
||||
struct sigaction action ; // Structure de mise en place des gestionnaires de signaux
|
||||
int ret ;
|
||||
char *mac_string ;
|
||||
char *mac_string ; // MAC de l'AP sous forme de chaîne
|
||||
int ret ; // Code de retour du programme
|
||||
|
||||
if (argc != 3)
|
||||
if (argc != ARGC)
|
||||
{
|
||||
print_usage(argv[0]) ;
|
||||
return ERR_BAD_USAGE ;
|
||||
|
@ -30,12 +30,12 @@ int main(int argc, char *argv[])
|
|||
action.sa_handler = sigterm_handler ;
|
||||
sigaction(SIGTERM, &action, NULL) ;
|
||||
|
||||
get_mac_addr(argv[2], mac) ;
|
||||
get_mac_addr(argv[ARGV_WIFI_IFACE], mac) ;
|
||||
mac_string = mac_bytes_to_string(mac) ;
|
||||
printf("Ma mac est : %s\n", mac_string) ;
|
||||
free(mac_string) ;
|
||||
|
||||
ret = capture(argv[1], TRUE) ;
|
||||
ret = capture(argv[ARGV_RTAP_IFACE], argv[ARGV_AGGREG_IP], TRUE) ;
|
||||
|
||||
printf("%s : fin.\n", argv[0]) ;
|
||||
return ret ;
|
||||
|
@ -46,9 +46,9 @@ int main(int argc, char *argv[])
|
|||
|
||||
/* Capture des paquets en utilisant l'interface "capture_iface" pendant "capture_time" mili-secondes.
|
||||
Les informations concernant les mobiles effectuant des requêtes sont conservées dans la liste "known_mobiles".
|
||||
Les données capturées sont envoyées au serveur d'aggrégation à travers la socket UDP "socket".
|
||||
Les données capturées sont envoyées au serveur d'aggrégation dont l'IP est "aggregated_ip" à travers la socket UDP "socket".
|
||||
*/
|
||||
int capture(char *capture_iface, BOOL print_values)
|
||||
int capture(char *capture_iface, char *aggregated_ip, BOOL print_values)
|
||||
{
|
||||
pcap_t *handle ; // Descripteur de capture de paquets
|
||||
char errbuf[PCAP_ERRBUF_SIZE] ;// Message d'erreur
|
||||
|
@ -72,7 +72,7 @@ int capture(char *capture_iface, BOOL print_values)
|
|||
}
|
||||
|
||||
/* Ouverture de la socket UDP vers le serveur d'aggrégation */
|
||||
sockfd = create_udp_sending_socket("127.0.0.1", AGGREGATE_DEFAULT_PORT, &server, &client);
|
||||
sockfd = create_udp_sending_socket(aggregated_ip, AGGREGATE_DEFAULT_PORT, &server, &client);
|
||||
if (sockfd < 0)
|
||||
{
|
||||
perror("Erreur ! Impossible de créer la socket vers le serveur d'aggrégation \n");
|
||||
|
@ -304,7 +304,8 @@ void get_mac_addr(char *eth, unsigned char mac_bytes[6])
|
|||
void print_usage(char *prog)
|
||||
{
|
||||
printf("Usage :\n\
|
||||
\t%s rtap_iface wifi_iface\n\
|
||||
\t%s ip_agrégation rtap_iface wifi_iface\n\
|
||||
- ip_agrégation est l'adresse IP du serveur d'agrégation.\n\
|
||||
- rtap_iface est l'interface de capture radiotap.\n\
|
||||
- wifi_iface est l'interface physique correspondant à rtap_iface.\n\
|
||||
", prog) ;
|
||||
|
|
|
@ -27,7 +27,7 @@ void print_usage(char *prog)
|
|||
printf("Usage :\n\
|
||||
\t- Demande de localisation : %s [iface] ip_serveur\n\
|
||||
\t- Requête de calibration : %s [iface] ip_serveur direction x y z\n\
|
||||
iface est une chaîne désignant le nom de interface réseau à partir de laquelle envoyer la demande (par exemple \"eth2\"). Si elle n'est pas spécifiée, le choix de l'interface source est automatique.\n\
|
||||
iface est une chaîne désignant le nom de interface réseau à partir de laquelle envoyer la demande (par exemple \"eth2\"). Si elle n'est pas spécifiée, le choix de l'interface source est automatique. Vous devez être root pour utiliser cette option.\n\
|
||||
", prog, prog) ;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue