00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef MISC_H_
00023 #define MISC_H_
00024
00025
00026
00027 char *ssh_get_user_home_dir(void);
00028 char *ssh_get_local_username(ssh_session session);
00029 int ssh_file_readaccess_ok(const char *file);
00030
00031
00032 uint64_t ntohll(uint64_t);
00033 #define htonll(x) ntohll(x)
00034
00035
00036
00037 struct ssh_list {
00038 struct ssh_iterator *root;
00039 struct ssh_iterator *end;
00040 };
00041
00042 struct ssh_iterator {
00043 struct ssh_iterator *next;
00044 const void *data;
00045 };
00046
00047 struct ssh_list *ssh_list_new(void);
00048 void ssh_list_free(struct ssh_list *list);
00049 struct ssh_iterator *ssh_list_get_iterator(const struct ssh_list *list);
00050 int ssh_list_append(struct ssh_list *list, const void *data);
00051 int ssh_list_prepend(struct ssh_list *list, const void *data);
00052 void ssh_list_remove(struct ssh_list *list, struct ssh_iterator *iterator);
00053
00054 const void *_ssh_list_pop_head(struct ssh_list *list);
00055
00056 #define ssh_iterator_value(type, iterator)\
00057 ((type)((iterator)->data))
00058
00064 #define ssh_list_pop_head(type, ssh_list)\
00065 ((type)_ssh_list_pop_head(ssh_list))
00066
00067 #endif