Back to index

glibc  2.9
Functions
nis_ping.c File Reference
#include <rpcsvc/nis.h>
#include "nis_xdr.h"
#include "nis_intern.h"

Go to the source code of this file.

Functions

void nis_ping (const_nis_name dirname, unsigned int utime, const nis_object *dirobj)

Function Documentation

void nis_ping ( const_nis_name  dirname,
unsigned int  utime,
const nis_object *  dirobj 
)

Definition at line 26 of file nis_ping.c.

{
  nis_result *res = NULL;
  nis_object *obj;
  ping_args args;
  unsigned int i;

  if (dirname == NULL && dirobj == NULL)
    abort ();

  if (dirobj == NULL)
    {
      res = nis_lookup (dirname, MASTER_ONLY);
      if (res == NULL || NIS_RES_STATUS (res) != NIS_SUCCESS)
       {
         nis_freeresult (res);
         return;
       }
      obj = res->objects.objects_val;
    }
  else
    obj = (nis_object *) dirobj;

  /* Check if obj is really a diryectory object */
  if (__type_of (obj) != NIS_DIRECTORY_OBJ)
    {
      nis_freeresult (res);
      return;
    }

  if (dirname == NULL)
    args.dir = obj->DI_data.do_name;
  else
    args.dir = (char *) dirname;
  args.stamp = utime;

  /* Send the ping only to replicas */
  for (i = 1; i < obj->DI_data.do_servers.do_servers_len; ++i)
    __do_niscall2 (&obj->DI_data.do_servers.do_servers_val[i], 1,
                 NIS_PING, (xdrproc_t) _xdr_ping_args,
                 (caddr_t) &args, (xdrproc_t) xdr_void,
                 (caddr_t) NULL, 0, NULL);
  nis_freeresult (res);
}

Here is the call graph for this function: