Fix ovnisync table parsing
This commit is contained in:
		
							parent
							
								
									3a0541e5fa
								
							
						
					
					
						commit
						b9568cb052
					
				
							
								
								
									
										27
									
								
								emu.c
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								emu.c
									
									
									
									
									
								
							| @ -467,8 +467,8 @@ load_clock_offsets(struct ovni_emu *emu) | ||||
| { | ||||
| 	FILE *f; | ||||
| 	char buf[1024]; | ||||
| 	int i, rank; | ||||
| 	double offset, std; | ||||
| 	int i, rank, ret; | ||||
| 	double offset, mean, std; | ||||
| 	char host[OVNI_MAX_HOSTNAME]; | ||||
| 	struct ovni_loom *loom; | ||||
| 	struct ovni_trace *trace; | ||||
| @ -485,8 +485,29 @@ load_clock_offsets(struct ovni_emu *emu) | ||||
| 	/* Ignore header line */ | ||||
| 	fgets(buf, 1024, f); | ||||
| 
 | ||||
| 	while(fscanf(f, "%d %s %lf %lf", &rank, host, &offset, &std) == 4) | ||||
| 	while(1) | ||||
| 	{ | ||||
| 		errno = 0; | ||||
| 		ret = fscanf(f, "%d %s %lf %lf %lf", &rank, host, &offset, &mean, &std); | ||||
| 
 | ||||
| 		if(ret == EOF) | ||||
| 		{ | ||||
| 			if(errno != 0) | ||||
| 			{ | ||||
| 				perror("fscanf failed"); | ||||
| 				exit(EXIT_FAILURE); | ||||
| 			} | ||||
| 
 | ||||
| 			break; | ||||
| 		} | ||||
| 
 | ||||
| 		if(ret != 5) | ||||
| 		{ | ||||
| 			err("fscanf read %d instead of 5 fields in %s\n", | ||||
| 					ret, emu->clock_offset_file); | ||||
| 			exit(EXIT_FAILURE); | ||||
| 		} | ||||
| 
 | ||||
| 		loom = find_loom_by_hostname(emu, host); | ||||
| 
 | ||||
| 		if(loom == NULL) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user