NISPlus
view release on metacpan or search on metacpan
constant(name,arg)
char * name
int arg
# the following functions are direct implementations of nis functions.
# see the manual pages on these functions for a description of what they do
void
nis_getnames(name)
nis_name name
PPCODE:
{
nis_name * names;
nis_name * names_first;
names_first = names = nis_getnames(name);
while(*names != NULL)
{
XPUSHs(sv_2mortal(newSVpv(*names, 0)));
names++;
}
nis_add(name, owner, group, access, ttl, type, sep, path, data)
nis_name name
nis_name owner
nis_name group
unsigned long access
unsigned long ttl
char * type
unsigned char sep
char * path
SV * data
PPCODE:
{
nis_object object;
nis_result *res;
int pos;
SV **val;
object.zo_name = "";
object.zo_owner = owner;
object.zo_group = group;
object.zo_domain = "";
}
void
nis_add_entry(name, data, owner, group, access, ttl)
nis_name name
SV * data
nis_name owner
nis_name group
unsigned long access
unsigned long ttl
PPCODE:
{
nis_result *table;
nis_result *res;
nis_object entry;
table = lookup(name);
if (table == (nis_result *)NULL) XPUSHs(sv_newmortal());
else
{
fill_entry(table, &entry, data, 1);
}
free_entry(&entry, 1);
nis_freeresult(table);
}
}
void
nis_remove_entry(name, flags)
nis_name name
unsigned long flags
PPCODE:
{
nis_result *res;
if ((res = nis_remove_entry(name, (nis_object *)NULL, flags)) ==
(nis_result *)NULL)
XPUSHs(sv_newmortal());
else
{
XPUSHs(sv_2mortal(newSViv(res->status)));
nis_freeresult(res);
}
}
void
nis_modify_entry(name, data, flags)
nis_name name
SV * data
unsigned long flags
PPCODE:
{
nis_result *table;
nis_result *res, *lres;
nis_object *entry;
nis_name tname;
int num;
# first, we get a reference to the table object. This is used for
# the column names for fill_entry()
if ((tname = (nis_name)strrchr((char *)name, ',')) == (char *)NULL)
nis_freeresult(lres);
}
nis_freeresult(table);
}
# list the names of the table entries
void
name_list(name)
nis_name name
PPCODE:
{
nis_result *res;
res = nis_list(name, 0, (int(*)())NULL, (void *)NULL);
if (res == (nis_result *)NULL)
{
croak("nis_list returned NULL");
}
XPUSHs(sv_2mortal(newSViv(res->status)));
}
nis_freeresult(res);
}
# return an array of the contents of the table entries
void
entry_list(name, tableref)
nis_name name
SV * tableref
PPCODE:
{
nis_result *res;
res=nis_list(name, MASTER_ONLY, (int(*)())NULL, (void *)NULL);
if (res == (nis_result *)NULL)
{
croak("nis_list returned NULL");
}
XPUSHs(sv_2mortal(newSViv(res->status)));
if (!res->status)
{
NISRESULT_ENTRY(res, tableref);
}
nis_freeresult(res);
}
void
nis_first_entry(name)
nis_name name
PPCODE:
{
nis_result *res;
u_int num;
res=nis_first_entry(name);
if (res == (nis_result *)NULL) XPUSHs(sv_newmortal());
else
{
XPUSHs(sv_2mortal(newSViv(res->status)));
NISRESULT_ENTRY(res, &sv_undef);
}
nis_freeresult(res);
}
}
void
nis_next_entry(name, cookie)
nis_name name
netobj cookie
PPCODE:
{
nis_result *res;
u_int num;
res=nis_next_entry(name, &cookie);
if (res == (nis_result *)NULL) XPUSHs(sv_newmortal());
else
{
XPUSHs(sv_2mortal(newSViv(res->status)));
void
nis_lerror(status, label)
nis_error status
char * label
# return information about an entry object
void
entry_info(path)
nis_name path
PPCODE:
{
nis_result *res;
res = lookup(path);
if (res == (nis_result *)NULL) XPUSHs(sv_newmortal());
else
{
HV *hv;
XPUSHs(sv_2mortal(newSViv(res->status)));
sv_free((SV *) hv);
nis_freeresult(res);
}
}
# return information about a table object
void
table_info(path)
nis_name path
PPCODE:
{
nis_result *res;
res = lookup(path);
if (res == (nis_result *)NULL) XPUSHs(sv_newmortal());
else
{
HV *hv;
XPUSHs(sv_2mortal(newSViv(res->status)));
nis_freeresult(res);
}
}
# set information in an entry object
void
entry_setinfo(name, data)
nis_name name
SV * data
PPCODE:
{
nis_result *res, *res2;
res = nis_list(name, MASTER_ONLY, (int(*)())NULL, (void *)NULL);
if (res == (nis_result *)NULL) XPUSHs(sv_newmortal());
else
{
setinfo(data, NIS_RES_OBJECT(res));
if ((res2 = nis_modify_entry(name, NIS_RES_OBJECT(res), MOD_SAMEOBJ))
nis_freeresult(res);
}
}
# set information in a table object
void
table_setinfo(path, data)
nis_name path
SV * data
PPCODE:
{
nis_result *res, *res2;
SV **sv;
res = lookup(path);
if (res == (nis_result *)NULL) XPUSHs(sv_newmortal());
else
{
setinfo(data, NIS_RES_OBJECT(res));
}
nis_freeresult(res);
}
}
# return the type of an object (e.g. TABLE, ENTRY, etc)
void
obj_type(path)
nis_name path
PPCODE:
{
nis_result *res;
res = lookup(path);
if (res == (nis_result *)NULL) XPUSHs(sv_newmortal());
else
{
XPUSHs(sv_2mortal(newSViv(NIS_RES_OBJECT(res)[0].zo_data.zo_type)));
nis_freeresult(res);
}
( run in 0.808 second using v1.01-cache-2.11-cpan-5511b514fd6 )