stropheruby 0.1.5 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
data/ext/thread.h CHANGED
@@ -1,7 +1,7 @@
1
1
  /* thread.h
2
2
  ** strophe XMPP client library -- thread abstraction header
3
3
  **
4
- ** Copyright (C) 2005-2008 OGG, LLC. All rights reserved.
4
+ ** Copyright (C) 2005-2009 Collecta, Inc.
5
5
  **
6
6
  ** This software is provided AS-IS with no warranty, either express
7
7
  ** or implied.
@@ -14,7 +14,7 @@
14
14
 
15
15
  /** @file
16
16
  * Threading abstraction API.
17
- */
17
+ */
18
18
 
19
19
  #ifndef __LIBSTROPHE_THREAD_H__
20
20
  #define __LIBSTROPHE_THREAD_H__
data/ext/tls.h CHANGED
@@ -1,7 +1,7 @@
1
1
  /* tls.h
2
2
  ** strophe XMPP client library -- TLS abstraction header
3
3
  **
4
- ** Copyright (C) 2005-2008 OGG, LLC. All rights reserved.
4
+ ** Copyright (C) 2005-2009 Collecta, Inc.
5
5
  **
6
6
  ** This software is provided AS-IS with no warranty, either express
7
7
  ** or implied.
data/ext/tls_dummy.c CHANGED
@@ -1,7 +1,7 @@
1
1
  /* tls_dummy.c
2
2
  ** strophe XMPP client library -- TLS abstraction dummy impl.
3
3
  **
4
- ** Copyright (C) 2005-2008 OGG, LLC. All rights reserved.
4
+ ** Copyright (C) 2005-2009 Collecta, Inc.
5
5
  **
6
6
  ** This software is provided AS-IS with no warranty, either express
7
7
  ** or implied.
@@ -14,7 +14,7 @@
14
14
 
15
15
  /** @file
16
16
  * TLS dummy implementation.
17
- */
17
+ */
18
18
 
19
19
  #include "common.h"
20
20
  #include "tls.h"
data/ext/util.c CHANGED
@@ -1,7 +1,7 @@
1
1
  /* util.c
2
2
  ** strophe XMPP client library -- various utility functions
3
3
  **
4
- ** Copyright (C) 2005-2008 OGG, LLC. All rights reserved.
4
+ ** Copyright (C) 2005-2009 Collecta, Inc.
5
5
  **
6
6
  ** This software is provided AS-IS with no warranty, either express
7
7
  ** or implied.
@@ -14,7 +14,7 @@
14
14
 
15
15
  /** @file
16
16
  * Utility functions.
17
- */
17
+ */
18
18
 
19
19
  #include <stdio.h>
20
20
  #include <string.h>
data/ext/util.h CHANGED
@@ -1,7 +1,7 @@
1
1
  /* util.h
2
2
  ** strophe XMPP client library -- various utility functions
3
3
  **
4
- ** Copyright (C) 2005-2008 OGG, LLC. All rights reserved.
4
+ ** Copyright (C) 2005-2009 Collecta, Inc.
5
5
  **
6
6
  ** This software is provided AS-IS with no warranty, either express
7
7
  ** or implied.
@@ -14,7 +14,7 @@
14
14
 
15
15
  /** @file
16
16
  * Internally used utility functions.
17
- */
17
+ */
18
18
 
19
19
  #ifndef __LIBSTROPHE_UTIL_H__
20
20
  #define __LIBSTROPHE_UTIL_H__
metadata CHANGED
@@ -4,11 +4,12 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 1
8
- - 5
9
- version: 0.1.5
7
+ - 2
8
+ version: "0.2"
10
9
  platform: ruby
11
10
  authors:
11
+ - Dingding Ye
12
+ - Xue Yong Zhi
12
13
  - "Fran\xC3\xA7ois Lamontagne"
13
14
  autorequire:
14
15
  bindir: bin
@@ -33,6 +34,8 @@ dependencies:
33
34
  version_requirements: *id001
34
35
  description:
35
36
  email:
37
+ - yedingding@gmail.com
38
+ - xue.yong.zhi@gmail.com
36
39
  - flamontagne@gmail.com
37
40
  executables: []
38
41
 
@@ -50,7 +53,8 @@ files:
50
53
  - README.txt
51
54
  - Rakefile
52
55
  - ext/md5.c
53
- - ext/parser.c
56
+ - ext/parser.h
57
+ - ext/parser_expat.c
54
58
  - ext/util.c
55
59
  - ext/strophe_ruby.c
56
60
  - ext/conn.c
data/ext/parser.c DELETED
@@ -1,208 +0,0 @@
1
- /* parser.c
2
- ** strophe XMPP client library -- xml parser handlers and utility functions
3
- **
4
- ** Copyright (C) 2005-2008 OGG, LLC. All rights reserved.
5
- **
6
- ** This software is provided AS-IS with no warranty, either express
7
- ** or implied.
8
- **
9
- ** This software is distributed under license and may not be copied,
10
- ** modified or distributed except as expressly authorized under the
11
- ** terms of the license contained in the file LICENSE.txt in this
12
- ** distribution.
13
- */
14
-
15
- /** @file
16
- * XML parser handlers.
17
- */
18
-
19
- #include <stdio.h>
20
- #include <stdlib.h>
21
- #include <string.h>
22
-
23
- #include "expat.h"
24
-
25
- #include "strophe.h"
26
- #include "common.h"
27
-
28
- static void _log_open_tag(xmpp_conn_t * const conn,
29
- const XML_Char **attr)
30
- {
31
- char buf[4096];
32
- size_t len, pos;
33
- int i;
34
-
35
- pos = 0;
36
- len = xmpp_snprintf(buf, 4096, "<stream:stream");
37
- if (len < 0) return;
38
-
39
- pos += len;
40
-
41
- for (i = 0; attr[i]; i += 2) {
42
- len = xmpp_snprintf(&buf[pos], 4096 - pos, " %s=\"%s\"",
43
- attr[i], attr[i+1]);
44
- if (len < 0) return;
45
-
46
- pos += len;
47
- }
48
-
49
- len = xmpp_snprintf(&buf[pos], 4096 - pos, ">");
50
- if (len < 0) return;
51
-
52
- xmpp_debug(conn->ctx, "xmpp", "RECV: %s", buf);
53
- }
54
-
55
- void parser_handle_start(void *userdata,
56
- const XML_Char *name,
57
- const XML_Char **attr)
58
- {
59
- xmpp_conn_t *conn = (xmpp_conn_t *)userdata;
60
- xmpp_stanza_t *child;
61
-
62
- if (conn->depth == 0) {
63
- /* we're expecting a stream:stream tag. */
64
- if (strcmp(name, "stream:stream") != 0) {
65
- xmpp_error(conn->ctx, "xmpp",
66
- "Server did not open valid stream.");
67
- conn->error = -3;
68
- conn_disconnect(conn);
69
- } else {
70
- _log_open_tag(conn, attr);
71
-
72
- if (conn->stream_id) xmpp_free(conn->ctx, conn->stream_id);
73
- conn->stream_id = xmpp_strdup(conn->ctx, "foo");
74
- if (!conn->stream_id) {
75
- xmpp_error(conn->ctx, "xmpp",
76
- "Memory allocation failure.");
77
- conn->error = -2;
78
- conn_disconnect(conn);
79
- }
80
-
81
- /* call stream open handler */
82
- conn->open_handler(conn);
83
- }
84
- } else {
85
- /* build stanzas at depth 1 */
86
- if (!conn->stanza && conn->depth != 1) {
87
- /* something terrible happened */
88
- /* FIXME: shutdown disconnect */
89
- xmpp_debug(conn->ctx, "xmpp", "oops, where did our stanza go?");
90
- } else if (!conn->stanza) {
91
- /* starting a new toplevel stanza */
92
- conn->stanza = xmpp_stanza_new(conn->ctx);
93
- if (!conn->stanza) {
94
- /* FIXME: can't allocate, disconnect */
95
- }
96
- xmpp_stanza_set_name(conn->stanza, name);
97
- xmpp_stanza_set_attributes(conn->stanza, attr);
98
- } else {
99
- /* starting a child of conn->stanza */
100
- child = xmpp_stanza_new(conn->ctx);
101
- if (!child) {
102
- /* FIXME: can't allocate, disconnect */
103
- }
104
- xmpp_stanza_set_name(child, name);
105
- xmpp_stanza_set_attributes(child, attr);
106
-
107
- /* add child to parent */
108
- xmpp_stanza_add_child(conn->stanza, child);
109
-
110
- /* the child is owned by the toplevel stanza now */
111
- xmpp_stanza_release(child);
112
-
113
- /* make child the current stanza */
114
- conn->stanza = child;
115
- }
116
- }
117
-
118
- conn->depth++;
119
- }
120
-
121
- void parser_handle_end(void *userdata, const XML_Char *name)
122
- {
123
- xmpp_conn_t *conn = (xmpp_conn_t *)userdata;
124
- char *buf;
125
- size_t len;
126
- xmpp_stanza_t *stanza;
127
-
128
- conn->depth--;
129
-
130
- if (conn->depth == 0) {
131
- /* got a closing stream tag */
132
- xmpp_debug(conn->ctx, "xmpp", "RECV: </stream:stream>");
133
- conn_disconnect_clean(conn);
134
- } else {
135
- if (conn->stanza->parent) {
136
- /* we're finishing a child stanza, so set current to the parent */
137
- conn->stanza = conn->stanza->parent;
138
- } else {
139
- /* we're finishing a toplevel stanza, so fire off handler */
140
- if (xmpp_stanza_to_text(conn->stanza, &buf, &len) == 0) {
141
- xmpp_debug(conn->ctx, "xmpp", "RECV: %s", buf);
142
- xmpp_free(conn->ctx, buf);
143
- }
144
-
145
- stanza = xmpp_stanza_clone(conn->stanza);
146
- xmpp_stanza_release(conn->stanza);
147
- conn->stanza = NULL;
148
-
149
- /* fire handlers */
150
- handler_fire_stanza(conn, stanza);
151
-
152
- xmpp_stanza_release(stanza);
153
- }
154
- }
155
- }
156
-
157
- void parser_handle_character(void *userdata, const XML_Char *s, int len)
158
- {
159
- xmpp_conn_t *conn = (xmpp_conn_t *)userdata;
160
- xmpp_stanza_t *stanza;
161
-
162
- if (conn->depth < 2) return;
163
-
164
- /* create and populate stanza */
165
- stanza = xmpp_stanza_new(conn->ctx);
166
- if (!stanza) {
167
- /* FIXME: allocation error, disconnect */
168
- return;
169
- }
170
- xmpp_stanza_set_text_with_size(stanza, s, len);
171
-
172
- xmpp_stanza_add_child(conn->stanza, stanza);
173
- xmpp_stanza_release(stanza);
174
- }
175
-
176
- /* prepares a parser reset. this is called from handlers. we can't
177
- * reset the parser immediately as it is not reentrant. */
178
- void parser_prepare_reset(xmpp_conn_t * const conn,
179
- xmpp_open_handler handler)
180
- {
181
- conn->reset_parser = 1;
182
- conn->open_handler = handler;
183
- }
184
-
185
- /* shuts down and restarts XML parser. true on success */
186
- int parser_reset(xmpp_conn_t * const conn)
187
- {
188
- conn->reset_parser = 0;
189
-
190
- if (conn->parser)
191
- XML_ParserFree(conn->parser);
192
-
193
- if (conn->stanza)
194
- xmpp_stanza_release(conn->stanza);
195
-
196
- conn->parser = XML_ParserCreate(NULL);
197
- if (!conn->parser) return 0;
198
-
199
- conn->depth = 0;
200
- conn->stanza = NULL;
201
- XML_SetUserData(conn->parser, conn);
202
- XML_SetElementHandler(conn->parser, parser_handle_start,
203
- parser_handle_end);
204
- XML_SetCharacterDataHandler(conn->parser, parser_handle_character);
205
-
206
- return 1;
207
- }
208
-