if(gate_addr == NULL) return(0);
if(sscanf(gate_addr, "%d.%d.%d.%d", &tap_addr[0],
&tap_addr[1], &tap_addr[2], &tap_addr[3]) != 4){
- printk("Invalid tap IP address - '%s'\n",
- gate_addr);
+ printk("Invalid tap IP address - '%s'\n", gate_addr);
return(-EINVAL);
}
return(0);
}
*output = '\0';
- if(read(fd, &remain, sizeof(remain)) != sizeof(remain)){
- printk("read_output - read of length failed, errno = %d\n",
- errno);
+ n = os_read_file(fd, &remain, sizeof(remain));
+ if(n != sizeof(remain)){
+ printk("read_output - read of length failed, err = %d\n", -n);
return;
}
while(remain != 0){
n = (remain < len) ? remain : len;
- actual = read(fd, output, n);
+ actual = os_read_file(fd, output, n);
if(actual != n){
printk("read_output - read of data failed, "
- "errno = %d\n", errno);
+ "err = %d\n", -actual);
return;
}
remain -= actual;
{
int n;
- while(((n = read(fd, buf, len)) < 0) && (errno == EINTR)) ;
+ n = os_read_file(fd, buf, len);
- if(n < 0){
- if(errno == EAGAIN) return(0);
- return(-errno);
- }
- else if(n == 0) return(-ENOTCONN);
+ if(n == -EAGAIN)
+ return(0);
+ else if(n == 0)
+ return(-ENOTCONN);
return(n);
}
{
int n;
- while(((n = write(fd, buf, len)) < 0) && (errno == EINTR)) ;
- if(n < 0){
- if(errno == EAGAIN) return(0);
- return(-errno);
- }
- else if(n == 0) return(-ENOTCONN);
- return(n);
+ n = os_write_file(fd, buf, len);
+
+ if(n == -EAGAIN)
+ return(0);
+ else if(n == 0)
+ return(-ENOTCONN);
+ return(n);
}
int net_send(int fd, void *buf, int len)
{
struct change_pre_exec_data *data = arg;
- close(data->close_me);
+ os_close_file(data->close_me);
dup2(data->stdout, 1);
}
struct change_pre_exec_data pe_data;
err = os_pipe(fds, 1, 0);
- if(err){
- printk("change_tramp - pipe failed, errno = %d\n", -err);
+ if(err < 0){
+ printk("change_tramp - pipe failed, err = %d\n", -err);
return(err);
}
pe_data.close_me = fds[0];
pe_data.stdout = fds[1];
pid = run_helper(change_pre_exec, &pe_data, argv, NULL);
- close(fds[1]);
+ os_close_file(fds[1]);
read_output(fds[0], output, output_len);
- waitpid(pid, NULL, 0);
+
+ CATCH_EINTR(err = waitpid(pid, NULL, 0));
return(pid);
}