diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2010-01-08 22:25:26 +0100 |
---|---|---|
committer | Aris Adamantiadis <aris@0xbadc0de.be> | 2010-01-08 22:25:26 +0100 |
commit | 2fc4c7e3359f6e046faab7cf0089a9375f4b5350 (patch) | |
tree | f475f63e6cc46aa15a6876ae9ce6351b4ca5210f /libssh/messages.c | |
parent | da8263b3f69687ef8f269345afbba2ce7561a061 (diff) | |
download | libssh-2fc4c7e3359f6e046faab7cf0089a9375f4b5350.tar.gz libssh-2fc4c7e3359f6e046faab7cf0089a9375f4b5350.tar.xz libssh-2fc4c7e3359f6e046faab7cf0089a9375f4b5350.zip |
Dequeue the processed messages
Diffstat (limited to 'libssh/messages.c')
-rw-r--r-- | libssh/messages.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/libssh/messages.c b/libssh/messages.c index 8dfe482..e5d6c3a 100644 --- a/libssh/messages.c +++ b/libssh/messages.c @@ -711,7 +711,7 @@ ssh_message ssh_message_get(ssh_session session) { } msg=ssh_list_get_head(ssh_message, session->ssh_message_list); } while(msg==NULL); - + msg=ssh_message_pop_head(session); leave_function(); return msg; } @@ -790,6 +790,24 @@ void ssh_message_queue(ssh_session session, ssh_message message){ } } +/** @internal + * @brief Pops one message from the message list and dequeue it. + * @param session SSH session. + * @returns The head message, or NULL if it doesn't exist + */ +ssh_message ssh_message_pop_head(ssh_session session){ + ssh_message msg=NULL; + struct ssh_iterator *i; + if(session->ssh_message_list == NULL) + return NULL; + i=ssh_list_get_iterator(session->ssh_message_list); + if(i != NULL){ + msg=ssh_iterator_value(ssh_message,i); + ssh_list_remove(session->ssh_message_list,i); + } + return msg; +} + /** * @} */ |