亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? flute.c

?? 這個程序實現了FLUTE協議
?? C
?? 第 1 頁 / 共 4 頁
字號:
					printf("\nWhich one to download: ");					fflush(stdout);					if(fgets(input, 100, stdin) != NULL) {						#ifdef WIN32						retcode = sscanf(input, "%I64u", &rec_toi);#else						retcode = sscanf(input, "%llu", &rec_toi);#endif						if(!((retcode == 0) || (retcode == EOF))) {											file = fdt_th_args->fdt->file_list;							valid_toi = false;							expired_toi = false;										while(file != NULL) {								if(file->toi == rec_toi) {									time(&systime);									curr_time = systime + 2208988800U;									if(file->expires < curr_time) {																							if(!a->alc_a.accept_expired_fdt_inst) {											expired_toi = true;#ifdef WIN32											printf("\nToi: %I64u Expired.\n", rec_toi);        #else											printf("\nToi: %llu Expired.\n", rec_toi);  #endif											if(file->next != NULL) {												file->next->prev = file->prev;											}											if(file->prev != NULL) {												file->prev->next = file->next;											}											if(file == fdt_th_args->fdt->file_list) {												fdt_th_args->fdt->file_list = file->next;											}											free_file(file);											break;										}										else {#ifdef WIN32											printf("\nToi: %I64u Expired, receiving anyway.\n", rec_toi);        #else											printf("\nToi: %llu Expired, receiving anyway.\n", rec_toi);  #endif																					}									}									valid_toi = true;									uri = parse_uri(file->location, strlen(file->location));										filepath = get_uri_host_and_path(uri);																															if(file->encoding == NULL) {										content_enc_algo = 0;										}									else {                                                                                if(strcmp(file->encoding, "pad") == 0) {                                                                                        content_enc_algo = PAD;                                                                                }#ifdef USE_ZLIB										else if(strcmp(file->encoding, "gzip") == 0) {											content_enc_algo = GZIP;											}#endif										else {											content_enc_algo = -1;											break;										}									}									retval = set_wanted_object(*s_id, file->toi, file->toi_len,												file->es_len,												file->max_sb_len,												file->fec_inst_id,												file->fec_enc_id,												file->max_nb_of_es,												content_enc_algo);									break;								}								file = file->next;							}							if(expired_toi) {								free_uri(uri);								free(filepath);								continue;                            }							if(!valid_toi) {#ifdef WIN32								printf("\nToi: %I64u invalid.\n", rec_toi);        #else								printf("\nToi: %llu invalid.\n", rec_toi);  #endif       								fflush(stdout);								continue;                            }							if(content_enc_algo == -1) {								printf("Content-Encoding: %s not supported\n", file->encoding);								fflush(stdout);								continue;							}							retcode = recvfile(*s_id, filepath, file->toi, file->file_len, file->md5,									   a->alc_a.rx_memory_mode, file->encoding, a->alc_a.verbosity);																				if(retcode == -1) {								free(filepath);								free_uri(uri);								printf("\nError: recvfile() failed\n");								fflush(stdout);								return -1;							}							else if(retcode == -2) {								free(filepath);								free_uri(uri);								return -2;							}							else if(retcode == -3) {								free(filepath);								free_uri(uri);								return -3;							}#ifdef WIN32							if(((retcode != -4) && (a->open_file))) {								ShellExecute(NULL, "Open", filepath, NULL, NULL, SW_SHOWNORMAL); 							}#endif							free(filepath);						}					}				}				else if(command == 'q') {					break;				}				else {					continue;				}			}		}	}	return 0;}/* * This function is flute receiver's file list receiving function. * * Params:	int *s_id: Pointer to session identifier, *			arguments_t *a: Pointer to arguments structure where command line arguments are parsed. * * Return:	int: Different values (0, -1, -2, -3) depending on how function ends. * */int receiver_in_file_list_mode(int *s_id, arguments_t *a, fdt_th_args_t *fdt_th_args) {  file_t *file;  file_t *next_file;    time_t systime;  #ifdef WIN32  ULONGLONG curr_time;#else  unsigned long long curr_time;#endif    char *buf = NULL;  #ifdef WIN32  ULONGLONG toi;  ULONGLONG toi_len;#else  unsigned long long toi;  unsigned long long toi_len;	#endif    int fd;    char *ptr;  int point;   int ch = '/';  int i;    char *tmp = NULL;  char fullpath[MAX_PATH];  char filename[MAX_PATH];  char *filepath = NULL;    bool file_to_receive = false;    int retval = 0;  int retcode = 0;    char *filetoken = NULL;  char *filetable[100];  int file_nb = 0;  int b;  char tmp_filename[MAX_PATH];  char *tmp_file_name = NULL;  uri_t *uri = NULL;    unsigned char content_enc_algo;  /*struct stat file_stats;*/#ifdef WIN32  struct __stat64 file_stats;  #else  struct stat64 file_stats;  #endif#ifdef USE_OPENSSL  char *md5 = NULL;#endif  bool any_files_received = false;    char* session_basedir = get_session_basedir(*s_id);  char *cont_desc = NULL;    if(strcmp(a->sdp_file, "") != 0) {    cont_desc = sdp_attr_get(a->sdp, "content-desc");  }  printf("FLUTE Receiver in file list mode\n");    if(cont_desc != NULL) {    printf("Session content information available at:\n");    printf("%s\n", cont_desc);  }    /* Without TOI-number */    /* check wanted file names */    filetoken = strtok(a->file_path, ",");    printf("Wanted file(s):");  fflush(stdout);    while(filetoken != NULL) {    filetable[file_nb] = filetoken;    printf(" %s", filetable[file_nb]);    fflush(stdout);        file_nb++;    filetoken = strtok(NULL, ",");  }  printf("\n");  fflush(stdout);  while(fdt_th_args->fdt == NULL) {        if(get_session_state(*s_id) == SExiting) {      #ifdef WIN32      Sleep(500);#else      usleep(500000);#endif            return -2;    }    else if(get_session_state(*s_id) == STxStopped) {      #ifdef WIN32      Sleep(500);#else      usleep(500000);#endif      return -3;    }    #ifdef WIN32    Sleep(1);#else    usleep(1000);#endif    continue;  }    /* receive wanted files */    while(!all_files_received(filetable, file_nb)) {        if(get_session_state(*s_id) == SExiting) {      return -2;    }    else if(get_session_state(*s_id) == STxStopped) {      return -3;    }        file_to_receive = false;        file = fdt_th_args->fdt->file_list;        while(file != NULL) {            for(b = 0; b < file_nb; b++) {		if(filetable[b] == NULL) {	  continue;	}	else {	  	  if(strstr(file->location, filetable[b]) != NULL) {	    time(&systime);	    curr_time = systime + 2208988800U;	    	    if(((file->expires < curr_time) && (!a->alc_a.accept_expired_fdt_inst))) {	      	      if(file->next != NULL) {		file->next->prev = file->prev;	      }	      if(file->prev != NULL) {		file->prev->next = file->next;	      }	      if(file == fdt_th_args->fdt->file_list) {		fdt_th_args->fdt->file_list = file->next;	      }	      	      free_file(file);	      continue;	    }	    	    if(file->is_downloaded != 2) {	      	      if(file->encoding == NULL) {		content_enc_algo = 0;		      }	      else {		if(strcmp(file->encoding, "pad") == 0) {		  content_enc_algo = PAD;		}#ifdef USE_ZLIB		else if(strcmp(file->encoding, "gzip") == 0) {		  content_enc_algo = GZIP;			}#endif		else {		  printf("Content-Encoding: %s not supported\n", file->encoding);		  fflush(stdout);		  file = file->next;		  file->is_downloaded = 2;		  continue;		}	      }	      	      file_to_receive = true;	      	      retcode = set_wanted_object(*s_id, file->toi, file->toi_len,					  file->es_len,					  file->max_sb_len,					  file->fec_inst_id,					  file->fec_enc_id,					  file->max_nb_of_es,					  content_enc_algo);	      	      if(retcode < 0) {		set_session_state(*s_id, SExiting);		return -1;	      }	      	      file->is_downloaded = 1;	    }		    	    continue;	  }	}      }      file = file->next;    }        i = 0;    toi = 0;    toi_len = 0;        if(file_to_receive == false) {      if(fdt_th_args->fdt->complete) {	if(!any_files_received) {	  printf("No wanted file(s) in the session\n");	  fflush(stdout);	}	break;      }#ifdef WIN32      Sleep(1);#else      usleep(1000);#endif      continue;    }        if(a->alc_a.rx_memory_mode == 1) {            tmp_file_name = alc_recv3(*s_id, &toi, &retcode);            if(tmp_file_name == NULL) {	return retcode;      }	      memset(tmp_filename, 0, MAX_PATH);      memcpy(tmp_filename, tmp_file_name, strlen(tmp_file_name));      free(tmp_file_name);      next_file = fdt_th_args->fdt->file_list;      /* Find correct file structure, to get the file->location for file creation purpose */            while(next_file != NULL) {        file = next_file;	        if(file->toi == toi) {          file->is_downloaded = 2;	  any_files_received = true;          break;        }	        next_file = file->next;      }    }    else if(a->alc_a.rx_memory_mode == 2) {      printf("-b:2 option is not supported with file list mode.\n");      fflush(stdout);      return -1;    }    else {      buf = alc_recv2(*s_id, &toi, &toi_len, &retcode);      if(buf == NULL) {        return retcode;      }            next_file = fdt_th_args->fdt->file_list;            /* Find correct file structure, to get the file->location for file creation purpose */            while(next_file != NULL) {        file = next_file;	        if(file->toi == toi) {          file->is_downloaded = 2;          break;        }	        next_file = file->next;      }            /* open tmp file and write buffer to it */      memset(tmp_filename, 0, MAX_PATH);      if(file->encoding == NULL) {#ifdef WIN32        sprintf(tmp_filename, "%s\\object%I64u", session_basedir, toi);#else        sprintf(tmp_filename, "%s/object%llu", session_basedir, toi);#endif      }#ifdef USE_ZLIB      else if(strcmp(file->encoding, "gzip") == 0) {#ifdef WIN32        sprintf(tmp_filename, "%s\\object%I64u%s", session_basedir, toi, GZ_SUFFIX);#else        sprintf(tmp_filename, "%s/object%llu%s", session_basedir, toi, GZ_SUFFIX);#endif      }#endif      else if(strcmp(file->encoding, "pad") == 0) {#ifdef WIN32        sprintf(tmp_filename, "%s\\object%I64u%s", session_basedir, toi, PAD_SUFFIX);#else        sprintf(tmp_filename, "%s/object%llu%s", session_basedir, toi, PAD_SUFFIX);#endif      }      #ifdef WIN32      if((fd = open((const char*)tmp_filename,                    _O_WRONLY | _O_CREAT | _O_BINARY | _O_TRUNC , _S_IWRITE)) < 0) {#else      if((fd = open(tmp_filename, O_WRONLY | O_CREAT | O_TRUNC , S_IRWXU)) < 0) {#endif	printf("Error: unable to open file %s\n", tmp_filename);	fflush(stdout);	free(buf);	return MEM_ERROR;      }      if(write(fd, buf, (unsigned int)toi_len) == -1) {#ifdef WIN32	printf("write error, toi: %I64u\n", toi);#else	printf("write error, toi: %llu\n", toi);#endif	fflush(stdout);	free(buf);	close(fd);	return MEM_ERROR;      }      free(buf);      close(fd);    }#ifdef USE_OPENSSL    if(file->md5 != NULL) {	      md5 = file_md5(tmp_filename);      if(md5 == NULL) {	printf("MD5 check failed!\n");	fflush(stdout);	remove(tmp_filename);	return -4;      }      else{	if(strcmp(md5, file->md5) != 0) {	  printf("MD5 check failed!\n");	  fflush(stdout);	  remove(tmp_filename);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
黄色精品一二区| 亚洲午夜电影在线| 国产jizzjizz一区二区| 国产欧美一区视频| 成人中文字幕电影| 亚洲黄网站在线观看| 日本丶国产丶欧美色综合| 一区二区三区视频在线观看| 在线观看日韩精品| 日本三级亚洲精品| 国产亚洲欧洲997久久综合 | 国产蜜臀av在线一区二区三区| 国产伦精一区二区三区| 欧美经典一区二区| 91在线免费看| 亚洲成va人在线观看| 欧美一区二区三区的| 国产专区欧美精品| 国产精品久久久久久久久久久免费看| 99久久国产综合精品色伊| 亚洲国产成人91porn| 精品日韩在线一区| 99久久精品免费观看| 性感美女久久精品| 久久久精品国产免大香伊| 一本久久a久久精品亚洲| 五月天亚洲婷婷| 久久精品欧美日韩精品 | 国产综合久久久久久久久久久久| 国产清纯在线一区二区www| 在线观看av不卡| 国产一区二区三区av电影 | 亚洲愉拍自拍另类高清精品| 日韩欧美亚洲国产精品字幕久久久| 国产白丝精品91爽爽久久 | 国产精品麻豆网站| 欧美日韩国产另类不卡| 国产**成人网毛片九色 | 亚洲视频 欧洲视频| 欧美成人精品高清在线播放 | 欧美日韩一区中文字幕| 国产麻豆午夜三级精品| 亚洲国产精品视频| 国产欧美一区二区精品久导航| 欧美日韩另类国产亚洲欧美一级| 国产成人免费视频一区| 日韩高清在线不卡| 一区二区三区四区亚洲| 国产视频在线观看一区二区三区| 制服丝袜激情欧洲亚洲| 色一情一乱一乱一91av| 国产成人夜色高潮福利影视| 日韩**一区毛片| 一区二区三区四区视频精品免费| 久久久综合九色合综国产精品| 777久久久精品| 91福利国产成人精品照片| 成人激情小说乱人伦| 精品制服美女丁香| 爽好多水快深点欧美视频| 亚洲女爱视频在线| 中文av一区二区| 精品成人一区二区三区| 欧美大片国产精品| 91精品综合久久久久久| 欧美色图天堂网| 972aa.com艺术欧美| 成人精品gif动图一区| 国产不卡高清在线观看视频| 精品在线观看视频| 乱中年女人伦av一区二区| 免费欧美在线视频| 欧美aa在线视频| 美国毛片一区二区三区| 久久精品久久久精品美女| 奇米影视一区二区三区| 日av在线不卡| 蜜桃精品视频在线| 久久精品国产一区二区| 韩国女主播一区二区三区| 国产综合色产在线精品| 国产一区欧美一区| 国产剧情一区二区三区| 国产成人精品免费| 成人av在线一区二区三区| jvid福利写真一区二区三区| 99re热这里只有精品视频| 91首页免费视频| 欧美日韩在线播放三区| 欧美精品 日韩| 精品久久五月天| 国产日本欧美一区二区| **网站欧美大片在线观看| 九九九精品视频| 国产精品亚洲а∨天堂免在线| 粉嫩蜜臀av国产精品网站| yourporn久久国产精品| 欧美网站一区二区| 制服丝袜亚洲色图| 久久久久久久综合日本| 国产精品久久三| 亚洲一区二区三区精品在线| 日韩国产成人精品| 国产成人精品亚洲777人妖| 波多野结衣欧美| 欧美精品v国产精品v日韩精品| 26uuu久久天堂性欧美| 国产精品毛片大码女人| 五月激情丁香一区二区三区| 国产又黄又大久久| 色丁香久综合在线久综合在线观看| 欧美系列亚洲系列| 久久久久久毛片| 亚洲一卡二卡三卡四卡 | 26uuu色噜噜精品一区二区| 国产精品丝袜在线| 亚洲不卡一区二区三区| 国产做a爰片久久毛片| 色综合天天视频在线观看| 日韩欧美在线123| 中文字幕一区二区三区在线不卡| 视频一区二区国产| 成人国产视频在线观看| 日韩欧美亚洲国产精品字幕久久久| 国产精品久久久久永久免费观看| 日本在线观看不卡视频| 色先锋久久av资源部| 精品国产网站在线观看| 亚洲一区二区三区四区五区黄 | 97成人超碰视| 精品国产乱码久久久久久免费 | 欧美日韩国产精品成人| 国产精品午夜在线观看| 三级久久三级久久久| 成人国产精品免费| 日韩西西人体444www| 亚洲精品你懂的| 国产成人免费av在线| 欧美精品一二三区| 亚洲一区二区三区在线| 成人中文字幕合集| 欧美xxxx在线观看| 性欧美大战久久久久久久久| www.欧美.com| 国产日韩欧美激情| 老司机免费视频一区二区| 在线区一区二视频| **欧美大码日韩| 国产一区高清在线| 亚洲精品一区二区三区在线观看 | 国产精品久久久久婷婷| 免费成人美女在线观看.| 色狠狠色狠狠综合| 亚洲欧洲精品天堂一级| 国产剧情一区在线| 欧美精品一区二区三区蜜桃| 日韩精彩视频在线观看| 欧美色图天堂网| 亚洲欧美激情插| 99久久精品免费观看| 中文字幕一区在线观看视频| 日韩视频在线观看一区二区| 性久久久久久久久久久久| 日本韩国欧美国产| 亚洲一区免费观看| 欧美特级限制片免费在线观看| 亚洲免费在线播放| 色婷婷av一区二区三区软件| 亚洲精品欧美专区| 欧美亚洲日本国产| 亚洲国产另类精品专区| 欧美主播一区二区三区| 一区二区在线看| 在线观看一区日韩| 亚洲成人一区二区在线观看| 欧美夫妻性生活| 日本强好片久久久久久aaa| 欧美一区二区三级| 久久不见久久见中文字幕免费| 欧美一卡二卡在线| 九九视频精品免费| 国产色91在线| 处破女av一区二区| 亚洲欧美成aⅴ人在线观看| 91黄色免费看| 日日嗨av一区二区三区四区| 日韩一区国产二区欧美三区| 久久99久久99小草精品免视看| 精品国产网站在线观看| 成人自拍视频在线| 一区二区欧美视频| 欧美精品v日韩精品v韩国精品v| 免费观看在线色综合| 久久综合久久综合九色| 成人免费av在线| 亚洲成人精品一区| 久久影院午夜论| 在线日韩国产精品| 九一久久久久久| 成人免费在线视频观看|