NIS

 view release on metacpan or  search on metacpan

NIS.xs  view on Meta::CPAN

int
yp_bind(domain)
  char *	domain

void
yp_unbind(domain)
  char *	domain

void
yp_get_default_domain()
  PPCODE:
  {
    char	*domain;
    int		status;

    status = yp_get_default_domain(&domain);
    XPUSHs(sv_2mortal(newSViv(status)));
    if (status == 0) XPUSHs(sv_2mortal(newSVpv(domain, strlen(domain))));
  }

void
yp_match(domain, map, key)
  char *	domain
  char *	map
  SV *		key
  PPCODE:
  {
    char	*inkey;
    STRLEN	inkeylen;
    char	*outval;
    int		outvallen;
    int		status;
    
    if (SvPOK(key))
    {
      inkey = SvPV(key, inkeylen);

NIS.xs  view on Meta::CPAN

    else
    {
      XPUSHs(sv_2mortal(newSViv(YPERR_BADARGS)));
    }
  }

void
yp_first(domain, map)
  char *	domain
  char *	map
  PPCODE:
  {
    char	*outkey;
    int		outkeylen;
    char	*outval;
    int		outvallen;
    int		status;
    
    status = yp_first(domain, map, &outkey, &outkeylen, &outval, &outvallen);
    XPUSHs(sv_2mortal(newSViv(status)));
    if (status == 0)

NIS.xs  view on Meta::CPAN

      XPUSHs(sv_2mortal(newSVpv(outkey, outkeylen)));
      XPUSHs(sv_2mortal(newSVpv(outval, outvallen)));
    }
  }

void
yp_next(domain, map, key)
  char *	domain
  char *	map
  SV *		key
  PPCODE:
  {
    char	*inkey;
    STRLEN	inkeylen;
    char	*outkey;
    int 	outkeylen;
    char	*outval;
    int		outvallen;
    int		status;
    
    if (SvPOK(key))

NIS.xs  view on Meta::CPAN

    else
    {
      XPUSHs(sv_2mortal(newSViv(YPERR_BADARGS)));
    }
  }

void
yp_all(domain, map)
  char *	domain
  char *	map
  PPCODE:
  {
    struct ypall_callback	callback;
    struct callbackdata		data;
    int				status;

    data.results = sv_2mortal(newRV((SV *) newHV()));
    data.status = 0;
    callback.foreach = ypallcallback;
    callback.data = (char *)&data;
    XPUSHs(sv_newmortal());

NIS.xs  view on Meta::CPAN

    status = yp_all(domain, map, &callback);
    sv_setnv(ST(0), data.status);
    if (status == 0 && data.status == YPERR_NOMORE)
      sv_setsv(ST(1), (SV *)data.results);
  }

void
yp_order(domain, map)
  char *	domain
  char *	map
  PPCODE:
  {
    unsigned long	order;
    int			status;

    status = yp_order(domain, map, &order);
    XPUSHs(sv_2mortal(newSViv(status)));
    if (status == 0) XPUSHs(sv_2mortal(newSViv(order)));
  }

void
yp_master(domain, map)
  char *	domain
  char *	map
  PPCODE:
  {
    char	*name;
    int		status;

    status = yp_master(domain, map, &name);
    XPUSHs(sv_2mortal(newSViv(status)));
    if (status == 0) XPUSHs(sv_2mortal(newSVpv(name, strlen(name))));
  }

char *



( run in 0.611 second using v1.01-cache-2.11-cpan-5511b514fd6 )