/* * ======== 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); }
/** ============================================================================ * 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(¶ms); params.maxValueLen = sizeof(UInt32); params.maxNameLen = 32; nsHandle = NameServer_create(NSLONGNAME, ¶ms); 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(¶ms); params.maxValueLen = sizeof(UInt32); params.maxNameLen = 180; nsHandle = NameServer_create(NSNAME, ¶ms); 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(¶ms); params.maxValueLen = sizeof(UInt32); params.maxNameLen = 32; nsHandle = NameServer_create(NSLONGNAME, ¶ms); 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; }
/** ============================================================================ * 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(¶ms); 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, ¶ms); 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, ¶ms); 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(¶ms); params.maxValueLen = sizeof(UInt32); params.maxNameLen = 32; nsHandle2 = NameServer_create(NSNAME2, ¶ms); 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; }