From 6d8bb956c5caa48c2aba6713f067224650c3c1e1 Mon Sep 17 00:00:00 2001 From: Aris Adamantiadis Date: Fri, 2 Sep 2011 13:46:10 +0300 Subject: channels: replaced bugged lists with ssh_list cherry-picked from 0aef5f Conflicts: src/session.c --- include/libssh/channels.h | 2 -- include/libssh/misc.h | 1 + include/libssh/session.h | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/libssh/channels.h b/include/libssh/channels.h index 14db3f8..624a3ad 100644 --- a/include/libssh/channels.h +++ b/include/libssh/channels.h @@ -49,8 +49,6 @@ enum ssh_channel_state_e { }; struct ssh_channel_struct { - struct ssh_channel_struct *prev; - struct ssh_channel_struct *next; ssh_session session; /* SSH_SESSION pointer */ uint32_t local_channel; uint32_t local_window; diff --git a/include/libssh/misc.h b/include/libssh/misc.h index be01337..c05a587 100644 --- a/include/libssh/misc.h +++ b/include/libssh/misc.h @@ -58,6 +58,7 @@ struct ssh_timestamp { struct ssh_list *ssh_list_new(void); void ssh_list_free(struct ssh_list *list); struct ssh_iterator *ssh_list_get_iterator(const struct ssh_list *list); +struct ssh_iterator *ssh_list_find(const struct ssh_list *list, void *value); int ssh_list_append(struct ssh_list *list, const void *data); int ssh_list_prepend(struct ssh_list *list, const void *data); void ssh_list_remove(struct ssh_list *list, struct ssh_iterator *iterator); diff --git a/include/libssh/session.h b/include/libssh/session.h index 3914326..d251e7e 100644 --- a/include/libssh/session.h +++ b/include/libssh/session.h @@ -119,7 +119,7 @@ struct ssh_session_struct { struct ssh_crypto_struct *current_crypto; struct ssh_crypto_struct *next_crypto; /* next_crypto is going to be used after a SSH2_MSG_NEWKEYS */ - ssh_channel channels; /* linked list of channels */ + struct ssh_list *channels; /* linked list of channels */ int maxchannel; int exec_channel_opened; /* version 1 only. more info in channels1.c */ -- cgit