mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	(closes issue #12929)
Reported by: snyfer This handles the case for a zero length file to attempt to be streamed. Instead of failing from not playing any data, go ahead and return success as ast_streamfile should consider playing nothing a success when there is nothing to play. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@158062 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		
							
								
								
									
										14
									
								
								main/file.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								main/file.c
									
									
									
									
									
								
							| @@ -407,6 +407,9 @@ static int ast_filehelper(const char *filename, const void *arg2, const char *fm | ||||
| 					ast_free(s); | ||||
| 					continue;	/* cannot run open on file */ | ||||
| 				} | ||||
| 				if (st.st_size == 0) { | ||||
| 					ast_log(LOG_WARNING, "File %s detected to have zero size.\n", fn); | ||||
| 				} | ||||
| 				/* ok this is good for OPEN */ | ||||
| 				res = 1;	/* found */ | ||||
| 				s->lasttimeout = -1; | ||||
| @@ -872,8 +875,19 @@ int ast_streamfile(struct ast_channel *chan, const char *filename, const char *p | ||||
| 	struct ast_filestream *fs; | ||||
| 	struct ast_filestream *vfs=NULL; | ||||
| 	char fmt[256]; | ||||
| 	int seekattempt; | ||||
|  | ||||
| 	fs = ast_openstream(chan, filename, preflang); | ||||
|  | ||||
| 	/* check to see if there is any data present (not a zero length file), | ||||
| 	 * done this way because there is no where for ast_openstream_full to | ||||
| 	 * return the file had no data. */ | ||||
| 	seekattempt = fseek(fs->f, -1, SEEK_END); | ||||
| 	if (!seekattempt) | ||||
| 		fseek(fs->f, 0, SEEK_SET); | ||||
| 	else | ||||
| 		return 0; | ||||
|  | ||||
| 	if (fs) | ||||
| 		vfs = ast_openvstream(chan, filename, preflang); | ||||
| 	if (vfs) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user