summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/libssh/priv.h2
-rw-r--r--libssh/channels.c27
2 files changed, 18 insertions, 11 deletions
diff --git a/include/libssh/priv.h b/include/libssh/priv.h
index f7c474a..0d05cdd 100644
--- a/include/libssh/priv.h
+++ b/include/libssh/priv.h
@@ -607,7 +607,7 @@ CHANNEL *channel_new(SSH_SESSION *session);
int channel_default_bufferize(CHANNEL *channel, void *data, int len,
int is_stderr);
u32 ssh_channel_new_id(SSH_SESSION *session);
-CHANNEL *ssh_channel_from_local(SSH_SESSION *session,u32 num);
+CHANNEL *ssh_channel_from_local(SSH_SESSION *session, u32 id);
/* options.c */
diff --git a/libssh/channels.c b/libssh/channels.c
index 2c2b6ac..4506d53 100644
--- a/libssh/channels.c
+++ b/libssh/channels.c
@@ -230,17 +230,24 @@ static int channel_open(CHANNEL *channel, const char *type_c, int window,
return -1;
}
-CHANNEL *ssh_channel_from_local(SSH_SESSION *session,u32 num){
- // we assume we are always the local
- CHANNEL *initchan,*channel;
- initchan=session->channels;
- if(!initchan)
- return NULL;
- for(channel=initchan;channel->local_channel!=num;channel=channel->next){
- if(channel->next==initchan)
- return NULL;
+/* get ssh channel from local session? */
+CHANNEL *ssh_channel_from_local(SSH_SESSION *session, u32 id) {
+ CHANNEL *initchan = session->channels;
+ CHANNEL *channel;
+
+ /* We assume we are always the local */
+ if (initchan == NULL) {
+ return NULL;
+ }
+
+ for (channel = initchan; channel->local_channel != id;
+ channel=channel->next) {
+ if (channel->next == initchan) {
+ return NULL;
}
- return channel;
+ }
+
+ return channel;
}
static int grow_window(SSH_SESSION *session, CHANNEL *channel, int minimumsize) {