Author: biurrun Date: Thu Oct 29 17:54:00 2009 New Revision: 1427 Log: Reorder functions to avoid forward declarations. Modified: trunk/tools/iwlist_parser.c Modified: trunk/tools/iwlist_parser.c ============================================================================== --- trunk/tools/iwlist_parser.c Thu Oct 29 17:42:53 2009 (r1426) +++ trunk/tools/iwlist_parser.c Thu Oct 29 17:54:00 2009 (r1427) @@ -45,100 +45,6 @@ int iCellNumber; int step; -void parseFromFile(char *); -void parseString(char *); -void printBestAP(void); -void logEvent(const char *); - - -// Main routine. -// Some initializations & option parsing -// -int main(int argc, char * argv[]) -{ - essidflag = false; - fileflag = false; - selectByQualityFlag = false; - - step = 1; - int c = 0; - - extern char *optarg; - extern int optopt; - - char pESSID[ESSID_LENGTH]; - char strFilename[FILENAME_LENGTH]; - - iCellNumber = 1; - memset(iSignalStrength, 0, MAX_CELLS); - memset(strEssid, 0, MAX_CELLS*ESSID_LENGTH); - memset(strMAC, 0, MAX_CELLS*MAC_LENGTH); - memset(pESSID, 0, ESSID_LENGTH); - memset(strSelectedESSID, 0, ESSID_LENGTH); - - while ((c = getopt(argc, argv, "s:f:hq")) != -1) { - switch (c) { - case 's': - essidflag = true; - strcpy(strSelectedESSID, optarg); - break; - case 'q': - selectByQualityFlag = true; - break; - case 'f': - fileflag = true; - strcpy(strFilename, optarg); - break; - case ':': - fprintf(stderr, "Option -%c requires an operand", optopt); - exit(2); - case 'h': - fprintf(stderr, "Usage:\n"); - fprintf(stderr, "-h\t\tShows this text.\n"); - fprintf(stderr, "-s <ESSID>\tShows only results for this essid\n"); - fprintf(stderr, "-f <FILE>\tParses from FILE\n"); - fprintf(stderr, "-q = best AP selected by quality (otherwise by signal strength)\n"); - exit(0); - case '?': - fprintf(stderr, "Unrecognized option: -%c \n", optopt); - exit(2); - } - } - - parseFromFile(strFilename); - - printBestAP(); - - return 0; -} - -// Reads from given stream (file or stdin) until linefeed is reached -// @param strFilename - Filename of the file to be opened. Empty if fileflag is false. -// -void parseFromFile(char * strFilename) -{ - char buffer[LINE_BUFFER_LENGTH]; - FILE * pFile = 0; - - if (fileflag) { - pFile = fopen((const char*) strFilename, "r"); - if (pFile == 0) { - fprintf(stderr, "File %s could not be found!\n", strFilename); - exit(1); - } - } else { - - pFile = stdin; - } - - memset(buffer, 0, LINE_BUFFER_LENGTH); - - while (fgets(buffer, LINE_BUFFER_LENGTH, pFile)) - parseString(buffer); - - fclose(pFile); -} - // Split given string into tokens (split at spaces). // Then analyse tokens for keywords like Cell, Address, Quality and ESSID: // Save results to arrays. @@ -277,6 +183,35 @@ } } + +// Reads from given stream (file or stdin) until linefeed is reached +// @param strFilename - Filename of the file to be opened. Empty if fileflag is false. +// +void parseFromFile(char * strFilename) +{ + char buffer[LINE_BUFFER_LENGTH]; + FILE * pFile = 0; + + if (fileflag) { + pFile = fopen((const char*) strFilename, "r"); + if (pFile == 0) { + fprintf(stderr, "File %s could not be found!\n", strFilename); + exit(1); + } + } else { + + pFile = stdin; + } + + memset(buffer, 0, LINE_BUFFER_LENGTH); + + while (fgets(buffer, LINE_BUFFER_LENGTH, pFile)) + parseString(buffer); + + fclose(pFile); +} + + // Go (linear) through arrays and remember signal strength. // Look only at specified SSID's if essidflag is set // @@ -341,3 +276,65 @@ fwrite("\n", 1, 1, pLogFile); fclose(pLogFile); } + + +// Main routine. +// Some initializations & option parsing +// +int main(int argc, char * argv[]) +{ + essidflag = false; + fileflag = false; + selectByQualityFlag = false; + + step = 1; + int c = 0; + + extern char *optarg; + extern int optopt; + + char pESSID[ESSID_LENGTH]; + char strFilename[FILENAME_LENGTH]; + + iCellNumber = 1; + memset(iSignalStrength, 0, MAX_CELLS); + memset(strEssid, 0, MAX_CELLS*ESSID_LENGTH); + memset(strMAC, 0, MAX_CELLS*MAC_LENGTH); + memset(pESSID, 0, ESSID_LENGTH); + memset(strSelectedESSID, 0, ESSID_LENGTH); + + while ((c = getopt(argc, argv, "s:f:hq")) != -1) { + switch (c) { + case 's': + essidflag = true; + strcpy(strSelectedESSID, optarg); + break; + case 'q': + selectByQualityFlag = true; + break; + case 'f': + fileflag = true; + strcpy(strFilename, optarg); + break; + case ':': + fprintf(stderr, "Option -%c requires an operand", optopt); + exit(2); + case 'h': + fprintf(stderr, "Usage:\n"); + fprintf(stderr, "-h\t\tShows this text.\n"); + fprintf(stderr, "-s <ESSID>\tShows only results for this essid\n"); + fprintf(stderr, "-f <FILE>\tParses from FILE\n"); + fprintf(stderr, "-q = best AP selected by quality (otherwise by signal strength)\n"); + exit(0); + case '?': + fprintf(stderr, "Unrecognized option: -%c \n", optopt); + exit(2); + } + } + + parseFromFile(strFilename); + + printBestAP(); + + return 0; +}