Exemplo n.º 1
0
END_TEST

START_TEST(test_connect_to_trqauthd)
  {
  int rc;
  int sock;

  socket_success = true;
  close_success = true;
  connect_success = true;
   
  rc = connect_to_trqauthd(&sock);
  fail_unless(rc == PBSE_NONE, "connect_to_trqauthd failed", rc);

  socket_success = false;
  rc = connect_to_trqauthd(&sock);
  fail_unless(rc == PBSE_SOCKET_FAULT, "connect_to_trqauthd failed", rc);

  socket_success = true;
  connect_success = false;
  rc = connect_to_trqauthd(&sock);
  fail_unless(rc == PBSE_SOCKET_FAULT, "connect_to_trqauthd failed", rc);

  }
Exemplo n.º 2
0
int terminate_trqauthd()
  {
  int rc = PBSE_NONE;
  int sock = -1;
  char write_buf[MAX_LINE];
  char *read_buf = NULL;
  char log_buf[MAX_BUF];
  long long read_buf_len = MAX_LINE;
  long long ret_code;
  uid_t     myrealuid;
  pid_t     mypid;
  struct passwd *pwent;

  myrealuid = getuid();
  pwent = getpwuid(myrealuid);
  if (pwent == NULL)
    {
    snprintf(log_buf, MAX_BUF, "cannot get account info: uid %d, errno %d (%s)\n", (int)myrealuid, errno, strerror(errno));
    log_event(PBSEVENT_ADMIN, PBS_EVENTCLASS_SERVER, __func__, log_buf);
    return(PBSE_SYSTEM);
    }

  mypid = getpid();
  sprintf(write_buf, "%d|%d|%s|%d|", TRQ_DOWN_TRQAUTHD, (int )strlen(pwent->pw_name), pwent->pw_name, mypid);

  if((rc = connect_to_trqauthd(&sock)) != PBSE_NONE)
    {
    fprintf(stderr, "Could not connect to trqauthd. trqauthd may already be down\n");
    }
  else if ((rc = socket_write(sock, write_buf, strlen(write_buf))) < 0)
    {
    fprintf(stderr, "Failed to send termnation request to trqauthd: %d\n", rc);
    }
  else if ((rc = socket_read_num(sock, &ret_code)) != PBSE_NONE)
    {
    fprintf(stderr, "trqauthd did not give proper response. Check to see if traquthd has terminated: %d\n", rc);
    }
  else if (ret_code != PBSE_NONE)
    {
    rc = socket_read_str(sock, &read_buf, &read_buf_len);
    fprintf(stderr, "trqauthd not shutdown. %s\n", read_buf);
    }
  else if ((rc = socket_read_str(sock, &read_buf, &read_buf_len)) != PBSE_NONE)
    {
    fprintf(stderr, "trqauthd did not respond. Check to see if trqauthd has terminated: %d\n", rc);
    }
  else if( (rc = connect_to_trqauthd(&sock)) != PBSE_NONE) /* We do this because the accept loop on trqauthd 
                                                             is still waiting for a command before it realizes 
                                                             it is terminated */
    {
    fprintf(stdout, "\ntrqauthd has been terminated\n");
    }
  else
    {
    fprintf(stdout, "\ntrqauthd has been terminated\n");
    }

  if (sock != -1)
    close(sock);

  if (read_buf != NULL)
    {
    free(read_buf);
    }

  return(rc);
  }