Example #1
0
void shell_register_default_module(const char *name)
{
	int result = set_default_module(name);

	if (result != -1) {
		printk("\n%s", default_module_prompt);
	}
}
Example #2
0
static int select_module(int argc, char *argv[])
{
	if (argc == 1) {
		default_module = -1;
		return 0;
	}

	return set_default_module(argv[1]);
}
Example #3
0
int main(int argc, const char **argv)
{
    int i;
    unsigned int pname;
    const char *params[NUM_PARAMS];

    memset(params, '\0', sizeof(params));

    /* first of all check whether debugging should be enabled */
    for (i = 0; i < argc; i++)
        if (strcmp("debug", argv[i]) == 0) {
            set_debug_level(1);
        }

    for (i = 1; i < argc; i++) {
        for (pname = 0; pname < NUM_PARAMS; pname++) {
            if (param_names[pname][pn_sizes[pname]-2] == '=') {
                if (strncmp(argv[i], param_names[pname], pn_sizes[pname]-1) == 0) {
                    params[pname] = argv[i] + pn_sizes[pname] - 1;
                }
                else if (strncmp(argv[i], param_names[pname], pn_sizes[pname]-2) == 0
                         && argv[i][pn_sizes[pname]-2] == '\0') {
                    params[pname] = (void *)1;
                }
            }
            else {
                if (strcmp(argv[i], param_names[pname]) == 0) {
                    params[pname] = (void *)1;
                }
            }
        }
    }

    for (pname = 0; pname < NUM_PARAMS; pname++) {
        if (params[pname] != NULL)
            break;
    }

    if (pname == NUM_PARAMS) {
        DBG("No correct parameter specified");
        printf("usage: pkcs11_setup [list_modules] [use_module[=<module_name>]]\n"
               "                    [ins_action[=<executable,executable,...>]]\n"
               "                    [rm_action[=<executable,executable,...>]]\n");
    }

    if (params[LIST_MODULES] != NULL) {
        DBG("List modules:");
        return list_modules();
    }
    else {
        if (params[USE_MODULE] == (void *)1) {
            DBG("Print default module:");
            if ((i=print_default_module()) != 0) {
                ERR1("Print default module failed with: %d", i);
                return i;
            }
            return 0;
        }
        else if (params[USE_MODULE] != NULL) {
            DBG1("Set default module: %s", params[USE_MODULE]);
            if ((i=set_default_module(params[USE_MODULE])) != 0) {
                ERR1("Set default module failed with: %d", i);
                return i;
            }
        }
        if (params[INS_ACTION] == (void *)1) {
            DBG("Print card insert action:");
            if ((i=print_card_insert_action()) != 0) {
                ERR1("Print card insert action failed with: %d", i);
                return i;
            }
            return 0;
        }
        else if (params[INS_ACTION] != NULL) {
            DBG1("Set card insert action: %s", params[INS_ACTION]);
            if ((i=set_card_insert_action(params[INS_ACTION])) != 0) {
                ERR1("Set card insert action failed with: %d", i);
                return i;
            }
        }
        if (params[RM_ACTION] == (void *)1) {
            DBG("Print card remove action:");
            if ((i=print_card_remove_action()) != 0) {
                ERR1("Set card remove action failed with: %d", i);
                return i;
            }
            return 0;
        }
        else if (params[RM_ACTION] != NULL) {
            DBG1("Set card remove action: %s", params[RM_ACTION]);
            if ((i=set_card_remove_action(params[RM_ACTION])) != 0) {
                ERR1("Set card remove action failed with: %d", i);
                return i;
            }
        }
    }
    DBG("Process completed");
    return 0;
}