/* Copyright (C) 2014 CurlyMo This file is part of pilight. pilight is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. pilight is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with pilight. If not, see */ #include #include #include #include #include #include #include #ifdef _WIN32 #include #include #define MSG_NOSIGNAL 0 #else #include #include #include #include #include #include #endif #include #include #include #include #include "libs/pilight/core/pilight.h" #include "libs/pilight/core/network.h" #include "libs/pilight/core/log.h" #include "libs/pilight/core/options.h" #include "libs/pilight/core/gc.h" int main_gc(void) { log_shell_disable(); options_gc(); log_gc(); gc_clear(); FREE(progname); xfree(); return EXIT_SUCCESS; } int main(int argc, char **argv) { // memtrack(); atomicinit(); gc_attach(main_gc); /* Catch all exit signals for gc */ gc_catch(); log_shell_enable(); log_file_disable(); log_level_set(LOG_NOTICE); struct options_t *options = NULL; char *p = NULL; char *args = NULL; if((progname = MALLOC(13)) == NULL) { fprintf(stderr, "out of memory\n"); exit(EXIT_FAILURE); } strcpy(progname, "pilight-uuid"); options_add(&options, 'H', "help", OPTION_NO_VALUE, 0, JSON_NULL, NULL, NULL); options_add(&options, 'V', "version", OPTION_NO_VALUE, 0, JSON_NULL, NULL, NULL); while (1) { int c; c = options_parse(&options, argc, argv, 1, &args); if(c == -1) break; if(c == -2) c = 'H'; switch (c) { case 'H': printf("Usage: %s [options]\n", progname); printf("\t -H --help\t\tdisplay usage summary\n"); printf("\t -V --version\t\tdisplay version\n"); return (EXIT_SUCCESS); break; case 'V': printf("%s v%s\n", progname, PILIGHT_VERSION); return (EXIT_SUCCESS); break; default: printf("Usage: %s [options]\n", progname); return (EXIT_FAILURE); break; } } options_delete(options); int nrdevs = 0, x = 0; char **devs = NULL; if((nrdevs = inetdevs(&devs)) > 0) { for(x=0;x