コード例 #1
0
int
nnpfsdebug_print_cmd (int argc, char **argv)
{
    int ret;
    int flags = 0;
    char *textflags;

    nnpfsdebug_units[0].mult = all;
    nnpfsdebug_units[1].mult = all & ~almost_all_mask;

    if (argc != 2 && argc != 3) {
	fprintf (stderr, "usage: nnpfsprint <");
	print_flags_table (nnpfsdebug_units, stderr);
	fprintf (stderr, "> [filename]\n");
	return 0;
    }

    textflags = argv[1];
    
    ret = parse_flags (textflags, nnpfsdebug_units, flags);
    
    if (ret < 0) {
	fprintf (stderr, "nnpfsprint: unknown/bad flags `%s'\n",
		 textflags);
	return 0;
    }
    
    flags = ret;
    ret = nnpfs_debug_print(flags, argv[2]);
    if (ret)
	fprintf (stderr, "nnpfsprint: %s\n", strerror(ret));
    return 0;
}
コード例 #2
0
int
nnpfsdebug_cmd (int argc, char **argv)
{
    int ret;
    int flags;

    nnpfsdebug_units[0].mult = all;
    nnpfsdebug_units[1].mult = all & ~almost_all_mask;

    if ((argc > 1 && strncmp(argv[1], "-h", 2) == 0) || argc > 2) {
	fprintf (stderr, "usage: nnpfsdebug [-h] [");
	print_flags_table (nnpfsdebug_units, stderr);
	fprintf (stderr, "]\n");
	return 0;
    }

    ret = nnpfs_debug (-1, &flags);
    if (ret) {
	fprintf (stderr, "nnpfs_debug: %s\n", strerror(ret));
	return 0;
    }

    if (argc == 1) {
	char buf[1024];

	unparse_flags (flags, nnpfsdebug_units, buf, sizeof(buf));
	printf("nnpfsdebug is: %s\n", buf);
    } else if (argc == 2) {
	char *textflags;
	
	textflags = argv[1];
    
	ret = parse_flags (textflags, nnpfsdebug_units, flags);
	
	if (ret < 0) {
	    fprintf (stderr, "nnpfsdebug: unknown/bad flags `%s'\n",
		     textflags);
	    return 0;
	}
	
	flags = ret;
	ret = nnpfs_debug(flags, NULL);
	if (ret)
	    fprintf (stderr, "nnpfs_debug: %s\n", strerror(ret));
    }
    return 0;
}
コード例 #3
0
int
parse_attributes (const char *resp, krb5_flags *attr, int *mask, int bit)
{
    krb5_flags tmp = *attr;

    if (str2attributes(resp, &tmp) == 0) {
	*attr = tmp;
	if (mask)
	    *mask |= bit;
	return 0;
    } else if(*resp == '?') {
	print_flags_table (kdb_attrs, stderr);
    } else {
	fprintf (stderr, "Unable to parse \"%s\"\n", resp);
    }
    return -1;
}
コード例 #4
0
ファイル: kimpersonate.c プロジェクト: tombibsd/netbsd-src
static void
setup_env (krb5_context context, krb5_keytab *kt)
{
    krb5_error_code ret;

    if (keytab_file)
	ret = krb5_kt_resolve (context, keytab_file, kt);
    else
	ret = krb5_kt_default (context, kt);
    if (ret)
	krb5_err (context, 1, ret, "resolving keytab");

    if (client_principal_str == NULL)
	krb5_errx (context, 1, "missing client principal");
    ret = krb5_parse_name (context, client_principal_str, &client_principal);
    if (ret)
	krb5_err (context, 1, ret, "resolvning client name");

    if (server_principal_str == NULL)
	krb5_errx (context, 1, "missing server principal");
    ret = krb5_parse_name (context, server_principal_str, &server_principal);
    if (ret)
	krb5_err (context, 1, ret, "resolvning server name");

    /* If no session-enc-type specified on command line and this is an afs */
    /* service ticket, change default of session_enc_type to DES.       */
    if (session_enctype_string == NULL 
	&& strcmp("afs", *server_principal->name.name_string.val) == 0)
	session_enc_type = "des-cbc-crc";

    if (ticket_flags_str) {
	int ticket_flags_int;

	ticket_flags_int = parse_flags(ticket_flags_str,
				       asn1_TicketFlags_units(), 0);
	if (ticket_flags_int <= 0) {
	    krb5_warnx (context, "bad ticket flags: `%s'", ticket_flags_str);
	    print_flags_table (asn1_TicketFlags_units(), stderr);
	    exit (1);
	}
	if (ticket_flags_int)
	    ticket_flags = int2TicketFlags (ticket_flags_int);
    }
}
コード例 #5
0
static void
setup_env (krb5_context context, krb5_keytab *kt)
{
    krb5_error_code ret;

    if (keytab_file)
	ret = krb5_kt_resolve (context, keytab_file, kt);
    else
	ret = krb5_kt_default (context, kt);
    if (ret)
	krb5_err (context, 1, ret, "resolving keytab");

    if (client_principal_str == NULL)
	krb5_errx (context, 1, "missing client principal");
    ret = krb5_parse_name (context, client_principal_str, &client_principal);
    if (ret)
	krb5_err (context, 1, ret, "resolvning client name");

    if (server_principal_str == NULL)
	krb5_errx (context, 1, "missing server principal");
    ret = krb5_parse_name (context, server_principal_str, &server_principal);
    if (ret)
	krb5_err (context, 1, ret, "resolvning client name");

    if (ticket_flags_str) {
	int ticket_flags_int;

	ticket_flags_int = parse_flags(ticket_flags_str,
				       asn1_TicketFlags_units(), 0);
	if (ticket_flags_int <= 0) {
	    krb5_warnx (context, "bad ticket flags: `%s'", ticket_flags_str);
	    print_flags_table (asn1_TicketFlags_units(), stderr);
	    exit (1);
	}
	if (ticket_flags_int)
	    ticket_flags = int2TicketFlags (ticket_flags_int);
    }
}