summaryrefslogtreecommitdiff
path: root/channels.c
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2004-08-13 21:18:00 +1000
committerDarren Tucker <dtucker@zip.com.au>2004-08-13 21:18:00 +1000
commitc7a6fc41bfdcd73469b153437a8e75e0b1057894 (patch)
tree4ad8c688ec8a08573b3c2efa38af1dcc5df24222 /channels.c
parent03669a363eb8c76f460a75adc11d0eb933e4af49 (diff)
- avsm@cvs.openbsd.org 2004/08/11 21:43:05
[channels.c channels.h clientloop.c misc.c misc.h serverloop.c ssh-agent.c] some signed/unsigned int comparison cleanups; markus@ ok
Diffstat (limited to 'channels.c')
-rw-r--r--channels.c47
1 files changed, 24 insertions, 23 deletions
diff --git a/channels.c b/channels.c
index cf46ce09f..1f6984aa7 100644
--- a/channels.c
+++ b/channels.c
@@ -39,7 +39,7 @@
39 */ 39 */
40 40
41#include "includes.h" 41#include "includes.h"
42RCSID("$OpenBSD: channels.c,v 1.208 2004/07/11 17:48:47 deraadt Exp $"); 42RCSID("$OpenBSD: channels.c,v 1.209 2004/08/11 21:43:04 avsm Exp $");
43 43
44#include "ssh.h" 44#include "ssh.h"
45#include "ssh1.h" 45#include "ssh1.h"
@@ -68,7 +68,7 @@ static Channel **channels = NULL;
68 * Size of the channel array. All slots of the array must always be 68 * Size of the channel array. All slots of the array must always be
69 * initialized (at least the type field); unused slots set to NULL 69 * initialized (at least the type field); unused slots set to NULL
70 */ 70 */
71static int channels_alloc = 0; 71static u_int channels_alloc = 0;
72 72
73/* 73/*
74 * Maximum file descriptor value used in any of the channels. This is 74 * Maximum file descriptor value used in any of the channels. This is
@@ -141,7 +141,7 @@ channel_lookup(int id)
141{ 141{
142 Channel *c; 142 Channel *c;
143 143
144 if (id < 0 || id >= channels_alloc) { 144 if (id < 0 || (u_int)id >= channels_alloc) {
145 logit("channel_lookup: %d: bad id", id); 145 logit("channel_lookup: %d: bad id", id);
146 return NULL; 146 return NULL;
147 } 147 }
@@ -209,7 +209,8 @@ Channel *
209channel_new(char *ctype, int type, int rfd, int wfd, int efd, 209channel_new(char *ctype, int type, int rfd, int wfd, int efd,
210 u_int window, u_int maxpack, int extusage, char *remote_name, int nonblock) 210 u_int window, u_int maxpack, int extusage, char *remote_name, int nonblock)
211{ 211{
212 int i, found; 212 int found;
213 u_int i;
213 Channel *c; 214 Channel *c;
214 215
215 /* Do initial allocation if this is the first call. */ 216 /* Do initial allocation if this is the first call. */
@@ -223,10 +224,10 @@ channel_new(char *ctype, int type, int rfd, int wfd, int efd,
223 for (found = -1, i = 0; i < channels_alloc; i++) 224 for (found = -1, i = 0; i < channels_alloc; i++)
224 if (channels[i] == NULL) { 225 if (channels[i] == NULL) {
225 /* Found a free slot. */ 226 /* Found a free slot. */
226 found = i; 227 found = (int)i;
227 break; 228 break;
228 } 229 }
229 if (found == -1) { 230 if (found < 0) {
230 /* There are no free slots. Take last+1 slot and expand the array. */ 231 /* There are no free slots. Take last+1 slot and expand the array. */
231 found = channels_alloc; 232 found = channels_alloc;
232 if (channels_alloc > 10000) 233 if (channels_alloc > 10000)
@@ -273,7 +274,8 @@ channel_new(char *ctype, int type, int rfd, int wfd, int efd,
273static int 274static int
274channel_find_maxfd(void) 275channel_find_maxfd(void)
275{ 276{
276 int i, max = 0; 277 u_int i;
278 int max = 0;
277 Channel *c; 279 Channel *c;
278 280
279 for (i = 0; i < channels_alloc; i++) { 281 for (i = 0; i < channels_alloc; i++) {
@@ -322,12 +324,12 @@ void
322channel_free(Channel *c) 324channel_free(Channel *c)
323{ 325{
324 char *s; 326 char *s;
325 int i, n; 327 u_int i, n;
326 328
327 for (n = 0, i = 0; i < channels_alloc; i++) 329 for (n = 0, i = 0; i < channels_alloc; i++)
328 if (channels[i]) 330 if (channels[i])
329 n++; 331 n++;
330 debug("channel %d: free: %s, nchannels %d", c->self, 332 debug("channel %d: free: %s, nchannels %u", c->self,
331 c->remote_name ? c->remote_name : "???", n); 333 c->remote_name ? c->remote_name : "???", n);
332 334
333 s = channel_open_message(); 335 s = channel_open_message();
@@ -353,7 +355,7 @@ channel_free(Channel *c)
353void 355void
354channel_free_all(void) 356channel_free_all(void)
355{ 357{
356 int i; 358 u_int i;
357 359
358 for (i = 0; i < channels_alloc; i++) 360 for (i = 0; i < channels_alloc; i++)
359 if (channels[i] != NULL) 361 if (channels[i] != NULL)
@@ -368,7 +370,7 @@ channel_free_all(void)
368void 370void
369channel_close_all(void) 371channel_close_all(void)
370{ 372{
371 int i; 373 u_int i;
372 374
373 for (i = 0; i < channels_alloc; i++) 375 for (i = 0; i < channels_alloc; i++)
374 if (channels[i] != NULL) 376 if (channels[i] != NULL)
@@ -382,7 +384,7 @@ channel_close_all(void)
382void 384void
383channel_stop_listening(void) 385channel_stop_listening(void)
384{ 386{
385 int i; 387 u_int i;
386 Channel *c; 388 Channel *c;
387 389
388 for (i = 0; i < channels_alloc; i++) { 390 for (i = 0; i < channels_alloc; i++) {
@@ -439,7 +441,7 @@ channel_not_very_much_buffered_data(void)
439int 441int
440channel_still_open(void) 442channel_still_open(void)
441{ 443{
442 int i; 444 u_int i;
443 Channel *c; 445 Channel *c;
444 446
445 for (i = 0; i < channels_alloc; i++) { 447 for (i = 0; i < channels_alloc; i++) {
@@ -482,7 +484,7 @@ channel_still_open(void)
482int 484int
483channel_find_open(void) 485channel_find_open(void)
484{ 486{
485 int i; 487 u_int i;
486 Channel *c; 488 Channel *c;
487 489
488 for (i = 0; i < channels_alloc; i++) { 490 for (i = 0; i < channels_alloc; i++) {
@@ -530,7 +532,7 @@ channel_open_message(void)
530 Buffer buffer; 532 Buffer buffer;
531 Channel *c; 533 Channel *c;
532 char buf[1024], *cp; 534 char buf[1024], *cp;
533 int i; 535 u_int i;
534 536
535 buffer_init(&buffer); 537 buffer_init(&buffer);
536 snprintf(buf, sizeof buf, "The following connections are open:\r\n"); 538 snprintf(buf, sizeof buf, "The following connections are open:\r\n");
@@ -1674,7 +1676,7 @@ static void
1674channel_handler(chan_fn *ftab[], fd_set * readset, fd_set * writeset) 1676channel_handler(chan_fn *ftab[], fd_set * readset, fd_set * writeset)
1675{ 1677{
1676 static int did_init = 0; 1678 static int did_init = 0;
1677 int i; 1679 u_int i;
1678 Channel *c; 1680 Channel *c;
1679 1681
1680 if (!did_init) { 1682 if (!did_init) {
@@ -1697,10 +1699,9 @@ channel_handler(chan_fn *ftab[], fd_set * readset, fd_set * writeset)
1697 */ 1699 */
1698void 1700void
1699channel_prepare_select(fd_set **readsetp, fd_set **writesetp, int *maxfdp, 1701channel_prepare_select(fd_set **readsetp, fd_set **writesetp, int *maxfdp,
1700 int *nallocp, int rekeying) 1702 u_int *nallocp, int rekeying)
1701{ 1703{
1702 int n; 1704 u_int n, sz;
1703 u_int sz;
1704 1705
1705 n = MAX(*maxfdp, channel_max_fd); 1706 n = MAX(*maxfdp, channel_max_fd);
1706 1707
@@ -1736,8 +1737,7 @@ void
1736channel_output_poll(void) 1737channel_output_poll(void)
1737{ 1738{
1738 Channel *c; 1739 Channel *c;
1739 int i; 1740 u_int i, len;
1740 u_int len;
1741 1741
1742 for (i = 0; i < channels_alloc; i++) { 1742 for (i = 0; i < channels_alloc; i++) {
1743 c = channels[i]; 1743 c = channels[i];
@@ -2270,7 +2270,8 @@ channel_setup_fwd_listener(int type, const char *listen_addr, u_short listen_por
2270int 2270int
2271channel_cancel_rport_listener(const char *host, u_short port) 2271channel_cancel_rport_listener(const char *host, u_short port)
2272{ 2272{
2273 int i, found = 0; 2273 u_int i;
2274 int found = 0;
2274 2275
2275 for(i = 0; i < channels_alloc; i++) { 2276 for(i = 0; i < channels_alloc; i++) {
2276 Channel *c = channels[i]; 2277 Channel *c = channels[i];
@@ -2572,7 +2573,7 @@ channel_connect_to(const char *host, u_short port)
2572void 2573void
2573channel_send_window_changes(void) 2574channel_send_window_changes(void)
2574{ 2575{
2575 int i; 2576 u_int i;
2576 struct winsize ws; 2577 struct winsize ws;
2577 2578
2578 for (i = 0; i < channels_alloc; i++) { 2579 for (i = 0; i < channels_alloc; i++) {