aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libssh/misc.h12
-rw-r--r--libssh/messages.c2
-rw-r--r--libssh/misc.c9
-rw-r--r--libssh/server.c4
-rw-r--r--libssh/session.c2
5 files changed, 16 insertions, 13 deletions
diff --git a/include/libssh/misc.h b/include/libssh/misc.h
index 21104c78..3c33d0e1 100644
--- a/include/libssh/misc.h
+++ b/include/libssh/misc.h
@@ -49,11 +49,7 @@ struct ssh_iterator *ssh_list_get_iterator(const struct ssh_list *list);
int ssh_list_add(struct ssh_list *list, const void *data);
void ssh_list_remove(struct ssh_list *list, struct ssh_iterator *iterator);
-/** @brief fetch the head element of a list and remove it from list
- * @param list the ssh_list to use
- * @return the first element of the list
- */
-const void *_ssh_list_get_head(struct ssh_list *list);
+const void *_ssh_list_pop_head(struct ssh_list *list);
#define ssh_iterator_value(type, iterator)\
((type)((iterator)->data))
@@ -61,9 +57,9 @@ const void *_ssh_list_get_head(struct ssh_list *list);
/** @brief fetch the head element of a list and remove it from list
* @param type type of the element to return
* @param list the ssh_list to use
- * @return the first element of the list
+ * @return the first element of the list, or NULL if the list is empty
*/
-#define ssh_list_get_head(type, ssh_list)\
- ((type)_ssh_list_get_head(ssh_list))
+#define ssh_list_pop_head(type, ssh_list)\
+ ((type)_ssh_list_pop_head(ssh_list))
#endif /* MISC_H_ */
diff --git a/libssh/messages.c b/libssh/messages.c
index 0d3620c0..9b9900e5 100644
--- a/libssh/messages.c
+++ b/libssh/messages.c
@@ -710,7 +710,7 @@ ssh_message ssh_message_get(ssh_session session) {
leave_function();
return NULL;
}
- msg=ssh_list_get_head(ssh_message, session->ssh_message_list);
+ msg=ssh_list_pop_head(ssh_message, session->ssh_message_list);
} while(msg==NULL);
msg=ssh_message_pop_head(session);
leave_function();
diff --git a/libssh/misc.c b/libssh/misc.c
index f64c395a..a86a163b 100644
--- a/libssh/misc.c
+++ b/libssh/misc.c
@@ -261,7 +261,14 @@ void ssh_list_remove(struct ssh_list *list, struct ssh_iterator *iterator){
SAFE_FREE(iterator);
}
-const void *_ssh_list_get_head(struct ssh_list *list){
+/** @internal
+ * @brief Removes the top element of the list and returns the data value attached
+ * to it
+ * @param list the ssh_list
+ * @returns pointer to the element being stored in head, or
+ * NULL if the list is empty.
+ */
+const void *_ssh_list_pop_head(struct ssh_list *list){
struct ssh_iterator *iterator=list->root;
const void *data;
if(!list->root)
diff --git a/libssh/server.c b/libssh/server.c
index a1d234f3..8b36149c 100644
--- a/libssh/server.c
+++ b/libssh/server.c
@@ -912,7 +912,7 @@ int ssh_execute_message_callbacks(ssh_session session){
if(!session->ssh_message_list)
return SSH_OK;
if(session->ssh_message_callback){
- while(ssh_list_get_head(ssh_message , session->ssh_message_list) != NULL){
+ while(ssh_list_pop_head(ssh_message , session->ssh_message_list) != NULL){
msg=ssh_message_pop_head(session);
ret=session->ssh_message_callback(session,msg);
if(ret==1){
@@ -925,7 +925,7 @@ int ssh_execute_message_callbacks(ssh_session session){
}
}
} else {
- while(ssh_list_get_head(ssh_message , session->ssh_message_list) != NULL){
+ while(ssh_list_pop_head(ssh_message , session->ssh_message_list) != NULL){
msg=ssh_message_pop_head(session);
ret = ssh_message_reply_default(msg);
ssh_message_free(msg);
diff --git a/libssh/session.c b/libssh/session.c
index 2e1ee2be..a39a68c5 100644
--- a/libssh/session.c
+++ b/libssh/session.c
@@ -166,7 +166,7 @@ void ssh_free(ssh_session session) {
privatekey_free(session->rsa_key);
if(session->ssh_message_list){
ssh_message msg;
- while((msg=ssh_list_get_head(ssh_message ,session->ssh_message_list))
+ while((msg=ssh_list_pop_head(ssh_message ,session->ssh_message_list))
!= NULL){
ssh_message_free(msg);
}