crabs_firewall-3.0.1 ©2005-2011 - Christophe CAZAJUS (crabs-mettre_le_signe_at-crabs-world.com)
1 /* 2 **============================================================================= 3 ** crabs_firewall-3.0.1 : Firewall-Masquerade avec interface http 4 ** Copyright (C) 2005-2011 : 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 #include <stdio.h> 24 #include <unistd.h> 25 #include <string.h> 26 27 int main( int argc, char** argv ) 28 { 29 char fichier [128] ; 30 FILE* entree ; 31 char ligne [80] ; 32 int c ; 33 int l ; 34 35 strcpy( fichier, "/var/log/" ) ; 36 strcat( fichier, argv[1] ) ; 37 if ( argv[2] ) 38 if ( *argv[2] ) 39 { 40 strcat( fichier, "." ) ; 41 strncat( fichier, argv[2], 127 ) ; 42 } 43 44 entree = fopen( fichier, "r" ) ; 45 if ( !entree ) 46 { 47 perror( fichier ) ; 48 return 1 ; 49 } 50 51 l = -1 ; 52 while ( ( c = fgetc( entree ) ) != EOF ) 53 { 54 if ( c == '\n' ) 55 { 56 if ( l > 0 ) write( 1, ligne, l+1 ) ; 57 write( 1, "\n", 1 ) ; 58 l = -1 ; 59 continue ; 60 } 61 l++ ; 62 if ( l > 80 ) 63 { 64 int i, pos ; 65 for( i=l-1; i>=0; i-- ) if ( ligne[i] == ' ' ) break ; 66 if ( i != 0 ) 67 { 68 write( 1, ligne, i ) ; write( 1, "\n", 1 ) ; 69 strcpy( ligne, "... " ) ; 70 for( ++i, pos=8; i<l; pos++, i++ ) 71 ligne[pos] = ligne[i] ; 72 l = pos ; 73 } 74 else 75 { 76 write( 1, ligne, 80 ) ; write( 1, "\n", 1 ) ; 77 strcpy( ligne, "... " ) ; 78 l = 8 ; 79 } 80 } 81 ligne[l] = (char) c ; 82 } 83 if ( l>=0 ) 84 { 85 write( 1, ligne, l ) ; 86 write( 1, "\n", 1 ) ; 87 } 88 fclose( entree ) ; 89 return 0 ; 90 } 91
Date de génération : 22/09/2011 21:48