libssh
0.8.7
The SSH library
include
libssh
misc.h
1
/*
2
* This file is part of the SSH Library
3
*
4
* Copyright (c) 2009 by Aris Adamantiadis
5
*
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with this library; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#ifndef MISC_H_
22
#define MISC_H_
23
24
/* in misc.c */
25
/* gets the user home dir. */
26
char
*ssh_get_user_home_dir(
void
);
27
char
*ssh_get_local_username(
void
);
28
int
ssh_file_readaccess_ok(
const
char
*file);
29
30
char
*
ssh_path_expand_tilde
(
const
char
*d);
31
char
*ssh_path_expand_escape(
ssh_session
session,
const
char
*s);
32
int
ssh_analyze_banner(
ssh_session
session,
int
server);
33
int
ssh_is_ipaddr_v4(
const
char
*str);
34
int
ssh_is_ipaddr(
const
char
*str);
35
36
/* list processing */
37
38
struct
ssh_list
{
39
struct
ssh_iterator
*root;
40
struct
ssh_iterator
*end;
41
};
42
43
struct
ssh_iterator
{
44
struct
ssh_iterator
*next;
45
const
void
*data;
46
};
47
48
struct
ssh_timestamp
{
49
long
seconds;
50
long
useconds;
51
};
52
53
struct
ssh_list
*ssh_list_new(
void
);
54
void
ssh_list_free(
struct
ssh_list
*list);
55
struct
ssh_iterator
*ssh_list_get_iterator(
const
struct
ssh_list
*list);
56
struct
ssh_iterator
*ssh_list_find(
const
struct
ssh_list
*list,
void
*value);
57
size_t
ssh_list_count
(
const
struct
ssh_list
*list);
58
int
ssh_list_append(
struct
ssh_list
*list,
const
void
*data);
59
int
ssh_list_prepend(
struct
ssh_list
*list,
const
void
*data);
60
void
ssh_list_remove(
struct
ssh_list
*list,
struct
ssh_iterator
*iterator);
61
char
*ssh_lowercase(
const
char
* str);
62
char
*ssh_hostport(
const
char
*host,
int
port);
63
64
const
void
*_ssh_list_pop_head(
struct
ssh_list
*list);
65
66
#define ssh_iterator_value(type, iterator)\
67
((type)((iterator)->data))
68
74
#define ssh_list_pop_head(type, ssh_list)\
75
((type)_ssh_list_pop_head(ssh_list))
76
77
int
ssh_make_milliseconds(
long
sec,
long
usec);
78
void
ssh_timestamp_init(
struct
ssh_timestamp
*ts);
79
int
ssh_timeout_elapsed(
struct
ssh_timestamp
*ts,
int
timeout);
80
int
ssh_timeout_update
(
struct
ssh_timestamp
*ts,
int
timeout);
81
82
int
ssh_match_group(
const
char
*group,
const
char
*
object
);
83
84
#endif
/* MISC_H_ */
ssh_iterator
Definition:
misc.h:43
ssh_session_struct
Definition:
session.h:103
ssh_timestamp
Definition:
misc.h:48
ssh_path_expand_tilde
char * ssh_path_expand_tilde(const char *d)
Expand a directory starting with a tilde '~'.
Definition:
misc.c:653
ssh_list_count
size_t ssh_list_count(const struct ssh_list *list)
Get the number of elements in the list.
Definition:
misc.c:409
ssh_timeout_update
int ssh_timeout_update(struct ssh_timestamp *ts, int timeout)
updates a timeout value so it reflects the remaining time
Definition:
misc.c:1033
ssh_list
Definition:
misc.h:38
Generated by
1.8.20