Пример #1
0
static int
callLimTcp_(char *reqbuf,
            char **rep_buf,
            int req_size,
            struct LSFHeader *replyHdr,
            int options)
{
    static char fname[]="callLimTcp_";
    char retried = FALSE;
    int cc;
    XDR xdrs;
    struct Buffer sndbuf;
    struct Buffer rcvbuf;

    if (logclass & (LC_COMM | LC_TRACE))
        ls_syslog(LOG_DEBUG2,"%s: Entering...req_size=%d",fname, req_size);

    *rep_buf = NULL;
    if (!sockIds_[TCP].sin_addr.s_addr) {
        if (ls_getmastername() == NULL)
            return(-1);
    }

contact:
    if (limchans_[TCP] < 0) {

        limchans_[TCP] = chanClientSocket_(AF_INET, SOCK_STREAM, 0);
        if (limchans_[TCP] < 0 )
            return(-1);

        cc = chanConnect_(limchans_[TCP],
                          &sockIds_[TCP],
                          conntimeout_ * 1000,
                          0);
        if (cc < 0) {
            ls_syslog(LOG_DEBUG,"\
%s: failed in connecting to limChans_[TCP]=<%d> <%s>",
                      fname, limchans_[TCP], sockAdd2Str_(&sockIds_[TCP]));
            if (errno == ECONNREFUSED || errno == ENETUNREACH) {
                if (errno == ECONNREFUSED) {
                    lserrno = LSE_LIM_DOWN;
                }
                if (! retried) {
                    if (ls_getmastername() != NULL) {
                        retried = 1;
                        CLOSECD(limchans_[TCP]);
                        goto contact;
                    }
                }
            }
            sockIds_[TCP].sin_addr.s_addr = 0;
            sockIds_[TCP].sin_port        = 0;
            CLOSECD(limchans_[TCP]);
            return(-1);
        }
Пример #2
0
int
main (int argc, char **argv)
{
  char *name;
  int cc;

  if (ls_initdebug (argv[0]) < 0)
    {
      ls_perror ("ls_initdebug");
      return -1;
    }

  while ((cc = getopt (argc, argv, "hV")) != EOF)
    {
      switch (cc)
	{
	case 'h':
	  usage (argv[0]);
	  return 0;
	case 'V':
	  fputs (_LS_VERSION_, stderr);
	  return 0;
	default:
	  usage (argv[0]);
	  return -1;
	}
    }
  puts (_LS_VERSION_);

  TIMEIT (0, (name = ls_getclustername ()), "ls_getclustername");
  if (name == NULL)
    {
      ls_perror ("ls_getclustername()");
      return -1;
    }
  printf ("My cluster name is %s\n", name);

  TIMEIT (0, (name = ls_getmastername ()), "ls_getmastername");
  if (name == NULL)
    {
      ls_perror ("ls_getmastername()");
      return -1;
    }
  printf ("My master name is %s\n", name);

  return 0;
}