Deleted Added
sdiff udiff text old ( 5579:29cd33ac16cb ) new ( 5580:6be5ac0eb1ea )
full compact
1/* $OpenBSD: netcat.c,v 1.57 2002/12/30 18:00:18 stevesk Exp $ */
2/*
3 * Copyright (c) 2001 Eric Jackson <ericj@monkey.org>
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *

--- 141 unchanged lines hidden (view full) ---

150 int wfd = fileno(stdin), n, ret, max_fd;
151 int lfd = fileno(stdout);
152 int escape = 0;
153 struct timeval timeout;
154
155 if (nfd == -1)
156 return;
157
158 FD_ZERO(&read_fds);
159
160 FD_SET(wfd, &read_fds);
161 FD_SET(nfd, &read_fds);
162 max_fd = nfd + 1;
163
164 timeout.tv_sec = 1;
165 timeout.tv_usec = 0;
166
167 while (1) {
168 n = select(max_fd, &read_fds, NULL, NULL, &timeout);
169 if (n < 0) {
170 close(nfd);
171 perror("Select Error:");
172 }
173
174 if (n == 0) {
175 if (read(nfd, buf, 0) < 0)
176 return;
177 goto setup_select;
178 }
179
180 if (read(nfd, buf, 0) < 0)
181 return;
182
183 if (FD_ISSET(nfd, &read_fds)) {
184 if ((n = read(nfd, buf, sizeof(buf))) < 0)
185 return;

--- 27 unchanged lines hidden (view full) ---

213 if (escape)
214 continue;
215 }
216
217 if ((ret = atomicio(write, nfd, buf, n)) != n)
218 return;
219 }
220 }
221setup_select:
222 FD_ZERO(&read_fds);
223 FD_SET(wfd, &read_fds);
224 FD_SET(nfd, &read_fds);
225 timeout.tv_sec = 1;
226 timeout.tv_usec = 0;
227 } // while
228}
229
230void
231usage(int ret)
232{
233 fprintf(stderr, "usage: %s hostname port\n", progname);
234 if (ret)

--- 96 unchanged lines hidden ---