示例#1
0
/*
 *  ======== NameServerDrv_cmd_delete ========
 */
static Int NameServerDrv_cmd_delete(NameServer_Handle *handlePtr)
{
    Int status;

    /* invoke the module api */
    status = NameServer_delete(handlePtr);

    if (status < 0) {
        /* use NameServerDrv_ioctl in macro */
        GT_setFailureReason(curTrace, GT_4CLASS, "NameServerDrv_ioctl",
                            status, "NameServer_delete failed");
    }

    return(status);
}
示例#2
0
/** ============================================================================
 *  Globals
 *  ============================================================================
 */
Int nameLenTest()
{
    NameServer_Params params;
    NameServer_Handle nsHandle;
    Int32 status = 0;
    UInt32 val;

    Log_print0(Diags_INFO, "Testing long names...\n");
#if 0 /* Commented out due to assertion thrown when name length > maxNameLen */
    NameServer_Params_init(&params);

    params.maxValueLen = sizeof(UInt32);
    params.maxNameLen = 32;

    nsHandle = NameServer_create(NSLONGNAME, &params);
    if (nsHandle == NULL) {
        Log_print1(Diags_INFO, "Failed to create NameServer '%s'\n",
            (IArg)NSLONGNAME);
        return -1;
    }
    else {
        printf("Created NameServer '%s'\n", NSLONGNAME);
    }

    /* This name should be too long for creation params and results in error */
    printf("Trying to add a name that exceeds maxNameLen...\n");
    ptr = NameServer_addUInt32(nsHandle, NSLONGNAME, 0xdeadbeef);
    if (ptr == NULL) {
        Log_print0(Diags_INFO,
            "    ...got expected Failure from NameServer_addUInt32()\n");
    }
    else {
        Log_print1(Diags_INFO,
            "    Error: NameServer_addUInt32() returned non-NULL %p (but "
            "was expected to fail)\n", (IArg)ptr);
        NameServer_delete(&nsHandle);
        return -1;
    }

    Log_print0(Diags_INFO, "Deleting nsHandle...\n");
    NameServer_delete(&nsHandle);
#endif
    NameServer_Params_init(&params);

    params.maxValueLen = sizeof(UInt32);
    params.maxNameLen = 180;

    nsHandle = NameServer_create(NSNAME, &params);
    if (nsHandle == NULL) {
        Log_print1(Diags_INFO, "Failed to create NameServer '%s'\n",
            (IArg)NSNAME);
        return -1;
    }
    else {
        Log_print1(Diags_INFO, "Created NameServer '%s'\n", (IArg)NSNAME);
    }

    /* This name is too long for remote to handle and results in error */
    Log_print0(Diags_INFO,
        "Trying to get a name that the remote cannot handle...\n");
    val = 0x00c0ffee;
    status = NameServer_getUInt32(nsHandle, NSLONGNAME, &val, NULL);
    if (status == NameServer_E_NAMETOOLONG) {
        Log_print0(Diags_INFO,
            "    ...got expected Failure from NameServer_getUInt32()\n");
    }
    else {
        Log_print1(Diags_INFO,
            "    Error: NameServer_getUint32() returned unexpected "
            "result: %d\n", (IArg)status);
        return -1;
    }

    Log_print0(Diags_INFO, "Deleting nsHandle...\n");
    NameServer_delete(&nsHandle);

    NameServer_Params_init(&params);

    params.maxValueLen = sizeof(UInt32);
    params.maxNameLen = 32;

    nsHandle = NameServer_create(NSLONGNAME, &params);
    if (nsHandle == NULL) {
        Log_print1(Diags_INFO, "Failed to create NameServer '%s'\n",
            (IArg)NSLONGNAME);
        return -1;
    }
    else {
        Log_print1(Diags_INFO, "Created NameServer '%s'\n", (IArg)NSLONGNAME);
    }

    /* The instance name is too long for remote and results in error */
    Log_print0(Diags_INFO,
        "Trying to use an instance name that the remote cannot handle...\n");
    val = 0x00c0ffee;
    status = NameServer_getUInt32(nsHandle, "Key", &val, NULL);
    if (status == NameServer_E_NAMETOOLONG) {
        Log_print0(Diags_INFO,
            "    ...got expected Failure from NameServer_getUInt32()\n");
    }
    else {
        Log_print1(Diags_INFO,
            "    Error: NameServer_getUint32() returned unexpected "
            "result: %d\n", (IArg)status);
        return -1;
    }

    Log_print0(Diags_INFO, "Deleting nsHandle...\n");
    NameServer_delete(&nsHandle);

    return 0;
}
示例#3
0
/** ============================================================================
 *  Functions
 *  ============================================================================
 */
Int
NameServerApp_startup()
{
    Int32 status = 0;
    NameServer_Params params;
    NameServer_Handle nsHandle;
    NameServer_Handle nsHandleAlias;
    NameServer_Handle nsHandle2;
    Int iteration = 0;

    Log_print0(Diags_INFO, "Entered NameServerApp_startup\n");

/*    status = Ipc_start();

    if (status < 0) {
        Log_print1(Diags_INFO, "Ipc_start failed: status = %d\n", status);
        return -1;
    }
*/
//    Log_print0(Diags_INFO, "Calling NameServer_setup()...\n");
//    NameServer_setup();

again:
    NameServer_Params_init(&params);

    params.maxValueLen = sizeof(UInt32);
    params.maxNameLen = 32;

    Log_print1(Diags_INFO, "params.maxValueLen=%d\n", params.maxValueLen);
    Log_print1(Diags_INFO, "params.maxNameLen=%d\n", params.maxNameLen);
    Log_print1(Diags_INFO, "params.checkExisting=%d\n", params.checkExisting);

    nsHandle = NameServer_create(NSNAME, &params);
    if (nsHandle == NULL) {
        Log_print1(Diags_INFO, "Failed to create NameServer '%s'\n", (IArg)NSNAME);
        return -1;
    }
    else {
        Log_print1(Diags_INFO, "Created NameServer '%s'\n", (IArg)NSNAME);
    }

    nsHandleAlias = NameServer_create(NSNAME, &params);
    if (nsHandleAlias == NULL) {
        Log_print1(Diags_INFO, "Failed to get handle to NameServer '%s'\n", (IArg)NSNAME);
        return -1;
    }
    else {
        Log_print1(Diags_INFO, "Got another handle to NameServer '%s'\n", (IArg)NSNAME);
    }

    NameServer_Params_init(&params);

    params.maxValueLen = sizeof(UInt32);
    params.maxNameLen = 32;
    nsHandle2 = NameServer_create(NSNAME2, &params);
    if (nsHandle2 == NULL) {
        Log_print1(Diags_INFO, "Failed to create NameServer '%s'\n", (IArg)NSNAME2);
        return -1;
    }
    else {
        Log_print1(Diags_INFO, "Created NameServer '%s'\n", (IArg)NSNAME2);
    }

    Log_print0(Diags_INFO, "Testing nsHandle\n");
    status = testNS(nsHandle, "Key");
    if (status != 0) {
        Log_print0(Diags_INFO, "test failed on nsHandle\n");
        return status;
    }
    Log_print0(Diags_INFO, "Testing nsHandle2\n");
    status = testNS(nsHandle2, "Key");
    if (status != 0) {
        Log_print0(Diags_INFO, "test failed on nsHandle2\n");
        return status;
    }

    Log_print0(Diags_INFO, "Deleting nsHandle and nsHandle2...\n");
    NameServer_delete(&nsHandle);
    NameServer_delete(&nsHandle2);

    /*
     * Verify that we can still use the alias handle after deleting the
     * initial handle
     */
    Log_print0(Diags_INFO, "Testing nsHandleAlias\n");
    status = testNS(nsHandleAlias, "Key");
    if (status != 0) {
        Log_print0(Diags_INFO, "test failed on nsHandleAlias\n");
        return status;
    }
    Log_print0(Diags_INFO, "Deleting nsHandleAlias...\n");
    NameServer_delete(&nsHandleAlias);

    iteration++;
    if (iteration < 2) {
        goto again;
    }

    status = nameLenTest();
    if (status != 0) {
        Log_print0(Diags_INFO, "Name Length test failed\n");
        return status;
    }

//    Log_print0(Diags_INFO, "Calling NameServer_destroy()...\n");
//    NameServer_destroy();

    Log_print1(Diags_INFO, "Leaving NameServerApp_startup: status = 0x%x\n", status);

    return status;
}