Exemplo n.º 1
0
char devcfg_getdev_guid() {
	return st_read_guid_from_file(scfg_string(CFG_GUID_FILE), DEVICE_GUID, 1);
}
Exemplo n.º 2
0
unsigned char clientcfg_init(int argc, char* argv[]) {

    int a;
    struct passwd *pw;
    char *buffer;
    char GUIDHEX[SUPLA_GUID_HEXSIZE+1];

    for(a=0; a<argc; a++) {
        if ( strcmp("-i", argv[a]) == 0 && a<argc-1 ) {
            cfg_id_file = strdup(argv[a+1]);
            a++;
        } else if ( strcmp("-h", argv[a]) == 0 && a<argc-1 ) {
            cfg_host = strdup(argv[a+1]);
            a++;
        } else if ( strcmp("-tcp", argv[a]) == 0  ) {
            cfg_ssl_enabled = 0;
        } else if ( strcmp("-p", argv[a]) == 0 && a<argc-1 ) {
            cfg_port = atoi(argv[a+1]);
            a++;
        } else if ( strcmp("-aid", argv[a]) == 0 && a<argc-1 ) {
            cfg_aid = atoi(argv[a+1]);
            a++;
        } else if ( strcmp("-pwd", argv[a]) == 0 && a<argc-1 ) {
            cfg_pwd = strdup(argv[a+1]);
            a++;
        };
    }

    if ( cfg_port == 0 )
        cfg_port = cfg_ssl_enabled == 1 ? 2016 : 2015;

    if ( cfg_host == NULL )
        cfg_host = strdup("127.0.0.1");

    if ( cfg_id_file == NULL ) {

        pw = getpwuid(getuid());
        a = strlen(pw->pw_dir)+50;

        buffer = malloc(a);

        if ( snprintf(buffer, a, "%s/.supla-client", pw->pw_dir) < 1 ) {
            free(buffer);
            return 0;
        }


        if ( st_file_exists(buffer) == 0 ) {
            if ( mkdir(buffer, 0700) == -1 ) {
                free(buffer);
                return 0;
            }
        }

        if ( snprintf(buffer, a, "%s/.supla-client/id", pw->pw_dir) < 1 ) {
            free(buffer);
            return 0;
        }

        cfg_id_file = strdup(buffer);
        free(buffer);
    }

    if ( cfg_id_file == NULL || strlen(cfg_id_file) < 1 ) {
        supla_log(LOG_ERR, "Unknown id file!");
        return 0;
    }

    if ( st_read_guid_from_file(cfg_id_file, cfg_client_GUID, 1) == 0 ) {
        return 0;
    }


    st_guid2hex(GUIDHEX, cfg_client_GUID);
    GUIDHEX[SUPLA_GUID_HEXSIZE] = 0;
    supla_log(LOG_INFO, "Client GUID: %s", GUIDHEX);


    return 1;
}