Teach tftp to direct the fetched file to stdout when the
user specifies "-l -" -Erik
This commit is contained in:
		| @@ -548,15 +548,20 @@ int tftp_main(int argc, char **argv) | |||||||
| 	if ((cmd == 0) || (optind == argc)) { | 	if ((cmd == 0) || (optind == argc)) { | ||||||
| 		show_usage(); | 		show_usage(); | ||||||
| 	} | 	} | ||||||
| 	if(cmd == tftp_cmd_get) | 	if(cmd == tftp_cmd_get) { | ||||||
| 	    if(localfile == NULL) | 	    if(localfile == NULL) | ||||||
| 		localfile = remotefile; | 		localfile = remotefile; | ||||||
|  | 	    if(localfile && strcmp(localfile, "-") == 0) { | ||||||
|  | 		fd = fileno(stdout); | ||||||
|  | 	    } | ||||||
|  | 	} | ||||||
| 	if(cmd == tftp_cmd_put) | 	if(cmd == tftp_cmd_put) | ||||||
| 	    if(remotefile == NULL) | 	    if(remotefile == NULL) | ||||||
| 		remotefile = localfile; | 		remotefile = localfile; | ||||||
|  |  | ||||||
| 	fd = open(localfile, flags, 0644); | 	if (fd==-1) { | ||||||
|  | 	    fd = open(localfile, flags, 0644); | ||||||
|  | 	} | ||||||
| 	if (fd < 0) { | 	if (fd < 0) { | ||||||
| 		perror_msg_and_die("local file"); | 		perror_msg_and_die("local file"); | ||||||
| 	} | 	} | ||||||
| @@ -577,7 +582,9 @@ int tftp_main(int argc, char **argv) | |||||||
| 	result = tftp(cmd, host, remotefile, fd, port, blocksize); | 	result = tftp(cmd, host, remotefile, fd, port, blocksize); | ||||||
|  |  | ||||||
| #ifdef CONFIG_FEATURE_CLEAN_UP | #ifdef CONFIG_FEATURE_CLEAN_UP | ||||||
| 	close(fd); | 	if (fd!=fileno(stdout)) { | ||||||
|  | 	    close(fd); | ||||||
|  | 	} | ||||||
| #endif | #endif | ||||||
| 	return(result); | 	return(result); | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user