crabs_usbmgr-1.0.3 ©2004-2006 - Christophe CAZAJUS (crabs-mettre_le_signe_at-crabs-world.com)
1 /* 2 **============================================================================= 3 ** crabs_usbmgr-1.0.3 : Universal Serial Bus MaNaGer 4 ** Copyright (C) 2004-2006 : Christophe CAZAJUS (crabs-mettre_le_signe_at-crabs-world.com) 5 ** 6 ** Ce source fait partie d'un projet logiciel libre. Vous pouvez le distribuer 7 ** et/ou le modifier en respectant les termes de la GNU General Public License 8 ** version 2 ou (suite a votre propre choix) une version ulterieure. 9 ** 10 ** Ce programme est distribue dans l'espoir qu'il puisse etre utile, mais 11 ** sans aucune garantie, meme si il est associe a un produit qui vous en 12 ** propose une. Conformez-vous a la GNU General Public License pour avoir 13 ** plus de precisions. 14 ** 15 ** L'auteur ne peut etre tenu responsable de l'utilisation faite des 16 ** composantes associees a ce projet (en partie ou dans leur totalite). 17 ** 18 ** Une copie du fichier de la GNU GPL est fournie dans le repertoire DOC 19 ** de ce projet sous le nom gnu_gpl.txt 20 ** 21 **============================================================================= 22 */ 23 #define __USBMGR__PRINCIPAL__ 24 #include "usbmgr.H" 25 26 int main( int argc, char** argv ) 27 { 28 int sa ; 29 int sc ; 30 int i ; 31 struct sockaddr_in clt ; 32 char err [1024] ; 33 int len ; 34 int ret ; 35 int fin ; 36 USBSTRUCT_ACTION a ; 37 USBSTRUCT_STATUS st ; 38 39 for( i=0; i<NB_USB_DEVICE; i++ ) liste[i].cmd = LBR ; 40 if ( be_a_daemon( "usbmgrd", err ) == -1 ) 41 { syslog( LOG_ERR, "FATAL:%s", err ) ; exit(1) ; } 42 if ( ( sa = serv_tcp_simple( TCP_SERV, err ) ) == -1 ) 43 { syslog( LOG_ERR, "FATAL:%s", err ) ; exit(1) ; } 44 syslog( LOG_ERR, "waiting connection" ) ; 45 fin = 0 ; 46 while( !fin ) 47 { 48 len = sizeof( struct sockaddr_in ) ; 49 sc = accept( sa, (struct sockaddr*)&clt, &len ) ; 50 if ( sc == -1 ) { syslog( LOG_ERR, "accept():%m" ) ; exit(1) ; } 51 52 ret = sock_read( sc, &a, sizeof(a) ) ; 53 if ( ret == -1 ) 54 { syslog( LOG_ERR, "read(cmd):%m" ); close(sc);continue ; } 55 56 switch( a.cmd ) 57 { 58 case ADD: doAdd( &a, &st ) ; break ; 59 case UMOUNT: doUmount( &a, &st ) ; break ; 60 case LISTE: doListe( sc, &a, &st ); break ; 61 case STOP: fin = 1 ; st.status=0; break ; 62 } 63 64 ret = sock_write( sc, &st, sizeof(st) ) ; 65 if ( ret == -1 ) 66 { syslog( LOG_ERR, "read(cmd):%m" ); close(sc);continue ; } 67 close( sc ) ; 68 } 69 syslog( LOG_ERR, "exiting..." ) ; 70 exit( 0 ) ; 71 } 72
Date de génération : 22/09/2011 21:48