nix-daemon: Fix splice faking on non-Linux
This commit is contained in:
		
							parent
							
								
									8bf378e999
								
							
						
					
					
						commit
						3f4d3f8a1a
					
				
					 1 changed files with 2 additions and 2 deletions
				
			
		|  | @ -32,14 +32,14 @@ using namespace nix; | ||||||
| 
 | 
 | ||||||
| #ifndef __linux__ | #ifndef __linux__ | ||||||
| #define SPLICE_F_MOVE 0 | #define SPLICE_F_MOVE 0 | ||||||
| static ssize_t splice(int fd_in, loff_t *off_in, int fd_out, loff_t *off_out, size_t len, unsigned int flags) | static ssize_t splice(int fd_in, void *off_in, int fd_out, void *off_out, size_t len, unsigned int flags) | ||||||
| { | { | ||||||
|     /* We ignore most parameters, we just have them for conformance with the linux syscall */ |     /* We ignore most parameters, we just have them for conformance with the linux syscall */ | ||||||
|     char buf[8192]; |     char buf[8192]; | ||||||
|     auto read_count = read(fd_in, buf, sizeof(buf)); |     auto read_count = read(fd_in, buf, sizeof(buf)); | ||||||
|     if (read_count == -1) |     if (read_count == -1) | ||||||
|         return read_count; |         return read_count; | ||||||
|     auto write_count = decltype<read_count>(0); |     auto write_count = decltype(read_count)(0); | ||||||
|     while (write_count < read_count) { |     while (write_count < read_count) { | ||||||
|         auto res = write(fd_out, buf + write_count, read_count - write_count); |         auto res = write(fd_out, buf + write_count, read_count - write_count); | ||||||
|         if (res == -1) |         if (res == -1) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue