示例#1
0
文件: retr_opt.c 项目: scalp42/my_ftp
void		retr_opt(client_ftp_t *client_ftp, char *cmd)
{
  FILE		*fs;
  char		buff[1024];
  char		put[1024];
  int		nb;
  int		i;
  int		j;

  if ((i = init_download(client_ftp, cmd)) == 1)
    return;
  if ((fs = fopen(cmd + 4, "w+")) == NULL)
    {
      printf("Failed to open file\n");
      close(client_ftp->s_data);
      return;
    }
  bzero(buff, 1024);
  while ((nb = xread(client_ftp->s_data, buff, 1024)))
    {
      bzero(put, 1024);
      for (i = 0, j = 0; i != nb; i++, j++)
	put[j] = buff[i];
      fwrite(put, 1, j, fs);
      bzero(buff, 1024);
    }
  fclose(fs);
  i = xrecv(client_ftp->s, buff, 1024, 0);
  clean_buff(buff, i);
  printf("%s\n", buff);
  close(client_ftp->s_data);
}
示例#2
0
void serve_mouse_event(int x, int y) {
    if (click_room(x, y)) {
        // roomnames.target = get_clicked_roomname(x);
        // update_roomname_win();
        get_online();
        // query_history();
        // query_members();
        // update_chatroom();
    } else if (click_filepath(x, y)) {
        focus_on_target(filepath);
    } else if (click_upload(x, y)) {
        upload_file();
        reset_input();
    } else if (click_inputbox(x, y)) {
        focus_on_target(inputbox);
    } else if (user->download->exist_file) {
        if (click_download(x, y)) {
            wclear(room.console);
            waddstr(room.console, "downloading file...");
            wrefresh(room.console);
            user->download->exist_file = 0;

            init_download();
        } else if (click_cancel(x, y)) {
            wclear(room.console);
            wrefresh(room.console);
            user->download->exist_file = 0;
        }
    }
}
示例#3
0
void init()
{
	sigset_t sigmask;
	sigemptyset(&sigmask);
	sigaddset(&sigmask, SIGALRM);
	sigaddset(&sigmask, SIGUSR1);
	
	sigprocmask(SIG_BLOCK, &sigmask, NULL);

	console_print("Emergence Client " VERSION "\n");
	
	SDL_Init(SDL_INIT_AUDIO);
	
	init_user();
	init_network();
	init_timer();
	init_openssl();
	init_key();
	init_download();
	init_servers();

	create_cvars();
	init_console_cvars();
	init_render_cvars();
	init_map_cvars();
	create_control_cvars();
//	create_input_cvars();
	init_tick_cvars();

	init_console();
	create_colour_cvars();
	
	struct string_t *string = new_string_string(emergence_home_dir);
	string_cat_text(string, "/client.config");
	
	if(!exec_config_file(string->text))
	{
		exec_config_file(find_resource("default-controls.config"));
	}
	else
	{
		char *ver = get_cvar_string("version");
		
		if(*ver == '\0')
		{
			struct string_t *command = new_string_text("rm ");
			string_cat_string(command, emergence_home_dir);
			string_cat_text(command, "/skins/default.skin*");
			
			console_print("%s\n", command->text);
			system(command->text);
			
			vid_mode = -1;	// find a nice mode

			exec_config_file(find_resource("default-controls.config"));
		}
		
		free(ver);
	}
	
	free_string(string);
	
	
	set_cvar_string("version", VERSION);
	
	init_skin();
	init_input();
	init_control();
	

	init_render();
	init_rcon();
	init_ping();

	create_cvar_command("quit", client_shutdown_char);
	

	init_sound();
	init_game();
	
	init_alarm();
	
	render_frame();
	
	string = new_string_text("%s%s", emergence_home_dir->text, "/client.autoexec");
	if(!exec_config_file(string->text))
		exec_config_file(find_resource("default-client.autoexec"));
	free_string(string);
	
	start_server_discovery();
}