Syntax
int hashtable_create ()
Description
hashtable_create creates a new hash table that can be used to store key-value pairs in a format that allows more efficient searching than an array.
Returns an identifier that you can use to add entries to and search the hash table.
Example
hid=hashtable_create();
hashtable_add(hid, "unxadm", {"johnd", "davel", "jamesp"});
hashtable_add(hid, "winadm", {"marym", "stevec", "janel"});
print("Windows Admin Group:" + hashtable_lookup(hid, "winadm"));
Syntax
string hashtable_enum (int hid, [int reset])
Description
hashtable_enum returns the next entry in a hash table.
Example
hid=hashtable_create();
hashtable_add(hid, "unxadm", {"johnd", "davel", "jamesp"});
hashtable_add(hid, "winadm", {"marym", "stevec", "janel"});
print("Windows Admin Group:" + hashtable_lookup(hid, "winadm"));
for (x=hashtable_enum (hid,1); x!=""; x=hashtable_enum(hid,0)) {
printf("Table contains key=%s\n", x);
}
Syntax
int hashtable_import ( int hid, string filename )
Description
hashtable_import reads a specified file and uses the contents to create a hash table containing hash table entries, one per line, consisting of a single hash key, a colon, and a comma-separated list of hash values. The file may also contain comments delimited by the # character.
If successfully imported, it returns the number of entries in the hash table.
Example
#File admgroups.txt contains the formatted text
unxadm:john,bob,fred,jane
winadm:mary,chris,henry
#policy loads this file into a hashtable that identifies the group permissions,
hid=hashtable_create();
count=hashtable_import(hid, "/etc/opt/quest/qpm4u/tables/admgroups.txt");
printf("Import loaded %d groups\n", count);
unxadm=hashtable_lookup(hid, "unxadm");
if (user !in unxadm)
{
reject "You are not authorized to run this command";
}
Syntax
list hashtable_lookup ( int hid, string key)
Description
hashtable_lookup searches the specified hash table for the key.
If it finds the key, it returns the associated list, otherwise it returns an empty list.
Example
hid=hashtable_create();
hashtable_add(hid, "unxadm", {"johnd", "davel", "jamesp"});
hashtable_add(hid, "winadm", {"marym", "stevec", "janel"});
print("Windows Admin Group:" + hashtable_lookup(hid, "winadm"));