__bind_create (const nis_server *serv_val, u_int serv_len, u_long flags)
__bind_create (const nis_server *serv_val, u_int serv_len, u_long flags, cache2_info *cinfo)
__bind_create (const nis_server *serv_val, u_int serv_len, u_long flags){  dir_binding *dbp;  u_int i;  dbp = calloc (1, sizeof (dir_binding));  if (dbp == NULL)    return NULL;  dbp->server_len = serv_len;  dbp->server_val = calloc (1, sizeof (nis_server) * serv_len);  if (dbp->server_val == NULL)    {      free (dbp);      return NULL;    }  if (flags & USE_DGRAM)    dbp->use_udp = TRUE;  else    dbp->use_udp = FALSE;  if (flags & NO_AUTHINFO)    dbp->use_auth = FALSE;  else    dbp->use_auth = TRUE;  if (flags & MASTER_ONLY)    dbp->master_only = TRUE;  else    dbp->master_only = FALSE;  dbp->trys = 1;  for (i = 0; i < serv_len; ++i)    {      if (serv_val[i].name != NULL)	dbp->server_val[i].name = strdup (serv_val[i].name);      dbp->server_val[i].ep.ep_len = serv_val[i].ep.ep_len;      if (dbp->server_val[i].ep.ep_len > 0)	{	  unsigned long j;	  dbp->server_val[i].ep.ep_val =	    malloc (serv_val[i].ep.ep_len * sizeof (endpoint));	  for (j = 0; j < dbp->server_val[i].ep.ep_len; ++j)	    {	      if (serv_val[i].ep.ep_val[j].uaddr)		dbp->server_val[i].ep.ep_val[j].uaddr =		  strdup (serv_val[i].ep.ep_val[j].uaddr);	      else		dbp->server_val[i].ep.ep_val[j].uaddr = NULL;	      if (serv_val[i].ep.ep_val[j].family)		dbp->server_val[i].ep.ep_val[j].family =		  strdup (serv_val[i].ep.ep_val[j].family);	      else		dbp->server_val[i].ep.ep_val[j].family = NULL;	      if (serv_val[i].ep.ep_val[j].proto)		dbp->server_val[i].ep.ep_val[j].proto =		  strdup (serv_val[i].ep.ep_val[j].proto);	      else		dbp->server_val[i].ep.ep_val[j].proto = NULL;	    }	}      else	dbp->server_val[i].ep.ep_val = NULL;      dbp->server_val[i].key_type = serv_val[i].key_type;      dbp->server_val[i].pkey.n_len = serv_val[i].pkey.n_len;      if (serv_val[i].pkey.n_len > 0)	{	  dbp->server_val[i].pkey.n_bytes =	    malloc (serv_val[i].pkey.n_len);	  if (dbp->server_val[i].pkey.n_bytes == NULL)	    return NULL;	  memcpy (dbp->server_val[i].pkey.n_bytes, serv_val[i].pkey.n_bytes,		  serv_val[i].pkey.n_len);	}      else	dbp->server_val[i].pkey.n_bytes = NULL;    }  if (__nis_findfastest (dbp) < 1)    {      __bind_destroy (dbp);      return NULL;    }  return dbp;}