void AccountSettingsDialog::onSubmitBtnClicked()
{
    if (!validateInputs()) {
        return;
    }

    QString url = mServerAddr->text().trimmed();
    if (url != account_.serverUrl.toString()) {
        Account new_account(account_);
        new_account.serverUrl = url;
        if (seafApplet->accountManager()->replaceAccount(account_,
            new_account) < 0) {
            showWarning(tr("Failed to save account information"));
            return;
        }
        QString error;
        QUrl new_server_url = new_account.serverUrl;
        new_server_url.setPath("/");
        if (seafApplet->rpcClient()->updateReposServerHost(account_.serverUrl.host(),
            new_account.serverUrl.host(), new_server_url.toString(), &error) < 0) {
            showWarning(tr("Failed to save the changes: %1").arg(error));
            return;
        }
    }

    seafApplet->messageBox(tr("Successfully updated current account information"), this);
    accept();
}
Пример #2
0
/**
* menustate(void)
*
* @brief
* @param void
* @return void
*/
void menustate(void)
{
	sbool run = TRUE;

	while(run){
		if(widget_get_uip()->root->shown.count > 0 || widget_get_uip()->root->hidden.count > 0)
			widget_unload(widget_get_uip()->root);

		switch(menu_state){
		case MENU_STATE_MAIN:
			init_main_menu();//initializes the first menu for use.
			main_menu();//Start the First Menu, Menu main loop.
			break;
		case MENU_STATE_CREDITS:
			init_credits();
			credits();
			break;
		case MENU_STATE_LOGIN:
			init_login();
			login();
			break;
		case MENU_STATE_CREATE:
			init_new_account();
			new_account();
			break;
		case MENU_STATE_INGAME:
			init_ingame();
			ingame();
			break;
		case MENU_STATE_STATUS:
			if(!statusloader)
				init_status("Log in successful.");
			else {
				init_status("Widget System Initialized.");
				statusloader = FALSE;
			}

			status();
			break;
		case MENU_STATE_EXIT:
			run = FALSE;
			break;
		}
	}
}
/**************************************************************************
 * Open an account. The first unused account is selected. A password 
 * equal to the account number is assigned by the server.
 **************************************************************************/
void open_account(char *resp_buf)
{
  int id;
  int rtn;
  account_t *accountp;

  DPRINTF(("SERVER: open \n"));

  /* Get a new account */
  if ((rtn = new_account(&id, &accountp)) < 0) {
    DPRINTF(("SERVER: open new_account failed, %s\n", atm_err_tbl[-rtn]));
    sprintf(resp_buf, "%d %d %d %s", 
	    TRANS_FAILURE, 
	    -1, 
	    -1,
	    atm_err_tbl[-rtn]);
  } else {
    accountp->password = id;
    accountp->balance  = 0;
    
    /* Store it back to the database */
    if ((rtn = store_account(accountp)) < 0) {
      DPRINTF(("SERVER: open, store_account failed %s\n", atm_err_tbl[-rtn]));
      sprintf(resp_buf, "%d %d %d %s", 
	    TRANS_FAILURE, 
	    -1, 
	    -1,
	    atm_err_tbl[-rtn]);
    } else {
      sprintf(resp_buf, "%d %d %d", 
	    TRANS_SUCCESS,  
	    id, 
	    id);
    }
  }
}
/**************************************************************************
 * Open an account. The first unused account is selected. A password 
 * equal to the account number is assigned by the server.
 **************************************************************************/
void open_account(char *resp_buf)
{
  int id;
  int rtn;
  account_t *accountp;
  

  DPRINTF(("SERVER: open \n"));


#ifdef NO_DATABASE_SYNC

#elif defined(SINGLE_DATABASE_SEM_SYNC)
  /* "p()" single database semaphore */
  single_database_sem_buf.sem_num = 0;
  single_database_sem_buf.sem_op  = -1; /* "p()" */
  single_database_sem_buf.sem_flg = SEM_UNDO;
  if (semop(single_database_sem_id, &single_database_sem_buf, 1) < 0) {
    perror("SERVER: child process, single database p semop() failed %d\n");
    exit (1);
  }
#elif defined(ACCOUNT_SEM_SYNC)
  /* "p()" open account semaphore */
  open_account_sem_buf.sem_num = 0;
  open_account_sem_buf.sem_op  = -1; /* "p()" */
  open_account_sem_buf.sem_flg = SEM_UNDO;
  if (semop(open_account_sem_id, &open_account_sem_buf, 1) < 0) {
    perror("SERVER: child process, open account p semop() failed %d\n");
    exit (1);
  }
#endif

  /* Get a new account */
  if ((rtn = new_account(&id, &accountp)) < 0) {
    DPRINTF(("SERVER: open new_account failed, %s\n", atm_err_tbl[-rtn]));
    sprintf(resp_buf, "%d %d %d %s", 
	    TRANS_FAILURE, 
	    -1, 
	    -1,
	    atm_err_tbl[-rtn]);
  } else {
    accountp->password = id;
    accountp->balance  = 0;
    
    /* Store it back to the database */
    if ((rtn = store_account(accountp)) < 0) {
      DPRINTF(("SERVER: open, store_account failed %s\n", atm_err_tbl[-rtn]));
      sprintf(resp_buf, "%d %d %d %s", 
	    TRANS_FAILURE, 
	    -1, 
	    -1,
	    atm_err_tbl[-rtn]);
    } else {
      sprintf(resp_buf, "%d %d %d", 
	    TRANS_SUCCESS,  
	    id, 
	    id);
    }
  }

#ifdef NO_DATABASE_SYNC

#elif defined(SINGLE_DATABASE_SEM_SYNC)
  /* "v()" single database semaphore */
  single_database_sem_buf.sem_num = 0;
  single_database_sem_buf.sem_op  = 1; /* "v()" */
  single_database_sem_buf.sem_flg = SEM_UNDO;
  if (semop(single_database_sem_id, &single_database_sem_buf, 1) < 0) {
    perror("SERVER child process, single_database v semop() failed %d\n");
    exit (1);
  }
#elif defined(ACCOUNT_SEM_SYNC)
  /* "v()" open account semaphore */
  open_account_sem_buf.sem_num = 0;
  open_account_sem_buf.sem_op  = 1; /* "v()" */
  open_account_sem_buf.sem_flg = SEM_UNDO;
  if (semop(open_account_sem_id, &open_account_sem_buf, 1) < 0) {
    perror("SERVER child process, open account v semop() failed %d\n");
    exit (1);
  }
#endif
}
Пример #5
0
void do_fingeracct(CHAR_DATA *ch, char *arguments)
{
  ACCOUNT_DATA *acc;
  char buf[MAX_STRING_LENGTH];
  char buf2[MAX_STRING_LENGTH];
  char buf3[MAX_STRING_LENGTH];
  char buf4[128];
  int i, j, len = 0;

  if (arguments[0] == 0)
  {
    send_to_char(ch, "Whom would you like to finger?\n");
    return;
  }

  acc = new_account();
  load_account(arguments, acc);
  if (acc->name[0] == 0)
  {
    free_account(acc);
    send_to_char(ch, "Unable to finger that account.\n");
    return;
  }

  send_to_char(ch, "\n#R+#r--------------------------#1[#2Finger Account#1]#r--------------------------#R+\n");
  snprintf(buf2, MAX_STRING_LENGTH, "#1[#2Account: #R%s#1]", acc->name);
  snprintf(buf3, MAX_STRING_LENGTH, "#1[#2Logins: #R%d#1]", acc->logins);
  snprintf(buf, MAX_STRING_LENGTH, "#r| %-40s %-40s  #r|\n", buf2, buf3);
  send_to_char(ch, buf);

  serial_time(acc->time, buf4);
  if (acc->lasttime == 0)
    snprintf(buf2, MAX_STRING_LENGTH, "#1[#2Lastsave: #RNever!#1]");
  else
    snprintf(buf2, MAX_STRING_LENGTH, "#1[#2Lastsave: #R%s#1]", acc->lasttime);
  snprintf(buf3, MAX_STRING_LENGTH, "#1[#2Time: #R%s#1]", buf4);
  snprintf(buf, MAX_STRING_LENGTH, "#r| %-40s %-40s  #r|\n", buf2, buf3);
  send_to_char(ch, buf);

  for (i = 0; i < acc->charcount; ++i)
    if (strlen(acc->character[i]) > len)
      len = strlen(acc->character[i]);

  for (i = 0; i < acc->charcount; ++i)
  {
    for (j = 0; j < len - strlen(acc->character[i]); ++j)
      buf[j] = ' ';
    buf[j] = '\0';

    switch (acc->status[i])
    {
      default:
      case CHSTATUS_NORMAL:
        strlcat(buf, "#1#R#1", MAX_STRING_LENGTH); /* gets around colors not displaying */
        break;
      case CHSTATUS_HARDCORE:
        strlcat(buf, "#1[#RH#1]", MAX_STRING_LENGTH);
        break;
      case CHSTATUS_DELETED:
        strlcat(buf, "#1[#1D#1]", MAX_STRING_LENGTH);
        break;
      case CHSTATUS_IMMORTAL:
        strlcat(buf, "#1[#YI#1]", MAX_STRING_LENGTH);
        break;
    }
    snprintf(buf2, MAX_STRING_LENGTH, "#1[#2Char %d: #R%s#1] %s", i+1, acc->character[i], buf);
    serial_time(acc->chtime[i], buf4);
    snprintf(buf3, MAX_STRING_LENGTH, "#1[#2Time: #R%s#1]", buf4);
    snprintf(buf, MAX_STRING_LENGTH, "#r| %-46s %-40s  #r|\n", buf2, buf3);
    send_to_char(ch, buf);
  }

  snprintf(buf2, MAX_STRING_LENGTH, "#1[#2Email: #R%s#1]", acc->email);
  snprintf(buf, MAX_STRING_LENGTH, "#r| %-74s #r|\n", buf2);
  send_to_char(ch, buf);

  if (acc->lasthost[0] == 0)
    snprintf(buf2, MAX_STRING_LENGTH, "#1[#2Host: #RN/A#1]");
  else
    snprintf(buf2, MAX_STRING_LENGTH, "#1[#2Host: #R%s#1]", acc->lasthost);
  snprintf(buf, MAX_STRING_LENGTH, "#r| %-74s #r|\n", buf2);
  send_to_char(ch, buf);

  send_to_char(ch, "#R+#r--------------------------------------------------------------------#R+#n\n");
  free_account(acc);
}
Пример #6
0
void do_finger(CHAR_DATA *ch, char *arguments)
{
  ACCOUNT_DATA *acc;
  CHAR_DATA *xch;
  char buf[MAX_STRING_LENGTH];
  char buf2[MAX_STRING_LENGTH];
  char buf3[MAX_STRING_LENGTH];
  int email = 0;
  if (arguments[0] == 0)
  {
    send_to_char(ch, "Whom would you like to finger?\n");
    return;
  }

  xch = load_character(NULL, arguments);
  if (xch->name[0] == 0)
    send_to_char(ch, "Unable to finger that player.\n");
  else
  {
    acc = new_account();
    load_account(xch->accname, acc);

    send_to_char(ch, "\n#R+#r------------------------------#1[#2Finger#1]#r------------------------------#R+\n");
    snprintf(buf2, MAX_STRING_LENGTH, "#1[#2Character: #R%s#1]", xch->name);
    snprintf(buf3, MAX_STRING_LENGTH, "#1[#2Class: #RNone#1]");
    snprintf(buf, MAX_STRING_LENGTH, "#r| %-40s %-40s  #r|\n", buf2, buf3);
    send_to_char(ch, buf);
    time_words(xch->time, buf3);
    snprintf(buf2, MAX_STRING_LENGTH, "#1[#2Time: #R%s#1]", buf3);
    snprintf(buf, MAX_STRING_LENGTH, "#r| %-74s #r|\n", buf2);
    send_to_char(ch, buf);

    if (IS_SET(acc->aflags, AFLAG_PUBLIC_EMAIL))
    {
      email = 1;
      snprintf(buf2, MAX_STRING_LENGTH, "#1[#2Email: #R%s#1]", acc->email);
      snprintf(buf, MAX_STRING_LENGTH, "#r| %-74s #r|\n", buf2);
      send_to_char(ch, buf);
    }

    if (ch->level == LEVEL_SUPREME)
    {
      send_to_char(ch, "#R+#r-----------------------------#1[#2Imm Info#1]#r-----------------------------#R+\n");

      if (email == 0)
      {
        snprintf(buf2, MAX_STRING_LENGTH, "#1[#2Email: #R%s#1]", acc->email);
        snprintf(buf, MAX_STRING_LENGTH, "#r| %-74s #r|\n", buf2);
        send_to_char(ch, buf);
      }

      snprintf(buf2, MAX_STRING_LENGTH, "#1[#2Account: #R%s#1]", xch->accname);
      snprintf(buf, MAX_STRING_LENGTH, "#r| %-74s #r|\n", buf2);
      send_to_char(ch, buf);

      if (acc->lasttime == 0)
        snprintf(buf2, MAX_STRING_LENGTH, "#1[#2Lastsave: #RNever!#1]");
      else
        snprintf(buf2, MAX_STRING_LENGTH, "#1[#2Lastsave: #R%s#1]", acc->lasttime);
      snprintf(buf, MAX_STRING_LENGTH, "#r| %-74s #r|\n", buf2);
      send_to_char(ch, buf);

      if (acc->lasthost[0] == 0)
        snprintf(buf2, MAX_STRING_LENGTH, "#1[#2Host: #RN/A#1]");
      else
        snprintf(buf2, MAX_STRING_LENGTH, "#1[#2Host: #R%s#1]", acc->lasthost);
      snprintf(buf, MAX_STRING_LENGTH, "#r| %-74s #r|\n", buf2);
      send_to_char(ch, buf);
    }

    send_to_char(ch, "#R+#r--------------------------------------------------------------------#R+#n\n");
    unlink_character(xch);
    free_account(acc);
  }
  free_character(xch);
}