author | Mikael Hallendal <micke@imendio.com> |
Sun, 29 Apr 2007 13:22:36 +0200 | |
changeset 261 | 703c5734ec61 |
parent 155 | d24c4392d4e3 |
child 266 | 730617b8c682 |
permissions | -rw-r--r-- |
1 | 1 |
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ |
2 |
/* |
|
99
81e9d035de02
2004-10-05 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
96
diff
changeset
|
3 |
* Copyright (C) 2003 Imendio AB |
1 | 4 |
* |
5 |
* This program is free software; you can redistribute it and/or |
|
6 |
* modify it under the terms of the GNU Lesser General Public License as |
|
7 |
* published by the Free Software Foundation; either version 2 of the |
|
8 |
* License, or (at your option) any later version. |
|
9 |
* |
|
10 |
* This program is distributed in the hope that it will be useful, |
|
11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
13 |
* Lesser General Public License for more details. |
|
14 |
* |
|
15 |
* You should have received a copy of the GNU Lesser General Public |
|
16 |
* License along with this program; if not, write to the |
|
17 |
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
|
18 |
* Boston, MA 02111-1307, USA. |
|
19 |
*/ |
|
20 |
||
21 |
/* Private functions that are internal to the library */ |
|
22 |
||
23 |
#ifndef __LM_INTERNALS_H__ |
|
24 |
#define __LM_INTERNALS_H__ |
|
25 |
||
140
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
26 |
#include <glib.h> |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
27 |
|
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
28 |
#include <sys/types.h> |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
29 |
|
1 | 30 |
#include "lm-message.h" |
31 |
#include "lm-message-handler.h" |
|
32 |
#include "lm-message-node.h" |
|
140
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
33 |
#include "lm-sock.h" |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
34 |
|
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
35 |
#ifndef G_OS_WIN32 |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
36 |
typedef int LmSocket; |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
37 |
#else /* G_OS_WIN32 */ |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
38 |
typedef SOCKET LmSocket; |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
39 |
#endif /* G_OS_WIN32 */ |
1 | 40 |
|
41 |
typedef struct { |
|
42 |
gpointer func; |
|
43 |
gpointer user_data; |
|
44 |
GDestroyNotify notify; |
|
45 |
} LmCallback; |
|
46 |
||
82
a32b54e654e2
2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
68
diff
changeset
|
47 |
typedef struct { |
a32b54e654e2
2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
68
diff
changeset
|
48 |
LmConnection *connection; |
a32b54e654e2
2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
68
diff
changeset
|
49 |
|
a32b54e654e2
2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
68
diff
changeset
|
50 |
/* struct to save resolved address */ |
a32b54e654e2
2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
68
diff
changeset
|
51 |
struct addrinfo *resolved_addrs; |
a32b54e654e2
2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
68
diff
changeset
|
52 |
struct addrinfo *current_addr; |
140
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
53 |
LmSocket fd; |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
54 |
GIOChannel *io_channel; |
82
a32b54e654e2
2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
68
diff
changeset
|
55 |
} LmConnectData; |
a32b54e654e2
2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
68
diff
changeset
|
56 |
|
261
703c5734ec61
Signal back when connection immediately fails. Fixes LM-67.
Mikael Hallendal <micke@imendio.com>
parents:
155
diff
changeset
|
57 |
gboolean _lm_connection_failed_with_error (LmConnectData *connect_data, |
82
a32b54e654e2
2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
68
diff
changeset
|
58 |
int error); |
261
703c5734ec61
Signal back when connection immediately fails. Fixes LM-67.
Mikael Hallendal <micke@imendio.com>
parents:
155
diff
changeset
|
59 |
gboolean _lm_connection_failed (LmConnectData *connect_data); |
140
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
60 |
void _lm_connection_succeeded (LmConnectData *connect_data); |
66
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
61 |
LmCallback * _lm_utils_new_callback (gpointer func, |
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
62 |
gpointer data, |
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
63 |
GDestroyNotify notify); |
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
64 |
void _lm_utils_free_callback (LmCallback *cb); |
1 | 65 |
|
66
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
66 |
gchar * _lm_utils_generate_id (void); |
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
67 |
gchar * _lm_utils_base64_encode (const gchar *str); |
155
d24c4392d4e3
2006-06-16 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
140
diff
changeset
|
68 |
gchar * _lm_utils_hostname_to_punycode (const gchar *hostname); |
66
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
69 |
const gchar * _lm_message_type_to_string (LmMessageType type); |
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
70 |
const gchar * _lm_message_sub_type_to_string (LmMessageSubType type); |
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
71 |
LmMessage * _lm_message_new_from_node (LmMessageNode *node); |
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
72 |
void _lm_message_node_add_child_node (LmMessageNode *node, |
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
73 |
LmMessageNode *child); |
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
74 |
LmMessageNode * _lm_message_node_new (const gchar *name); |
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
75 |
void _lm_debug_init (void); |
1 | 76 |
|
86
cb65c1ec57a7
2004-08-08 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
84
diff
changeset
|
77 |
|
82
a32b54e654e2
2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
68
diff
changeset
|
78 |
gboolean _lm_proxy_connect_cb (GIOChannel *source, |
a32b54e654e2
2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
68
diff
changeset
|
79 |
GIOCondition condition, |
a32b54e654e2
2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
68
diff
changeset
|
80 |
gpointer data); |
66
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
81 |
LmHandlerResult |
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
82 |
_lm_message_handler_handle_message (LmMessageHandler *handler, |
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
83 |
LmConnection *connection, |
577d5059b718
2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
57
diff
changeset
|
84 |
LmMessage *messag); |
140
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
85 |
gboolean _lm_sock_library_init (void); |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
86 |
void _lm_sock_library_shutdown (void); |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
87 |
void _lm_sock_set_blocking (LmSocket sock, |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
88 |
gboolean block); |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
89 |
void _lm_sock_shutdown (LmSocket sock); |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
90 |
void _lm_sock_close (LmSocket sock); |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
91 |
LmSocket _lm_sock_makesocket (int af, |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
92 |
int type, |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
93 |
int protocol); |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
94 |
int _lm_sock_connect (LmSocket sock, |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
95 |
const struct sockaddr *name, |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
96 |
int namelen); |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
97 |
gboolean _lm_sock_is_blocking_error (int err); |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
98 |
gboolean _lm_sock_is_blocking_success (int err); |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
99 |
int _lm_sock_get_last_error (void); |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
100 |
void _lm_sock_get_error (LmSocket sock, |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
101 |
void *error, |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
102 |
socklen_t *len); |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
103 |
const gchar * _lm_sock_get_error_str (int err); |
103227122f45
2006-04-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents:
137
diff
changeset
|
104 |
const gchar * _lm_sock_addrinfo_get_error_str (int err); |
1 | 105 |
|
106 |
#endif /* __LM_INTERNALS_H__ */ |