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); }
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; } } }
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(); }