strophe_ruby 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +1 -1
- data/ext/strophe_ruby/strophe_ruby.c +17 -13
- metadata +2 -2
data/Rakefile
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
# Generate all the Rake tasks
|
5
5
|
# Run 'rake -T' to see list of generated tasks (from gem root directory)
|
6
|
-
$hoe = Hoe.new('strophe_ruby', '0.0.
|
6
|
+
$hoe = Hoe.new('strophe_ruby', '0.0.4') do |p|
|
7
7
|
p.developer('François Lamontagne', 'flamontagne@gmail.com')
|
8
8
|
p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
|
9
9
|
p.rubyforge_name = p.name # TODO this is default value
|
@@ -14,8 +14,9 @@ VALUE client_conn_handler;
|
|
14
14
|
VALUE cStanza;
|
15
15
|
|
16
16
|
/* release the stanza. Called automatically by the GC */
|
17
|
-
static void t_xmpp_stanza_release(
|
18
|
-
|
17
|
+
static void t_xmpp_stanza_release(void *stanza) {
|
18
|
+
if(stanza != NULL)
|
19
|
+
xmpp_stanza_release(stanza);
|
19
20
|
}
|
20
21
|
|
21
22
|
/* Initialize the strophe library */
|
@@ -60,9 +61,11 @@ VALUE t_xmpp_stop(VALUE self, VALUE rb_ctx) {
|
|
60
61
|
return Qtrue;
|
61
62
|
}
|
62
63
|
|
63
|
-
/* free the context object (
|
64
|
-
static
|
65
|
-
|
64
|
+
/* free the context object (because it causes segmentation error once in a while) */
|
65
|
+
static VALUE t_xmpp_ctx_free(VALUE self) {
|
66
|
+
xmpp_ctx_t *ctx;
|
67
|
+
Data_Get_Struct(self,xmpp_ctx_t,ctx);
|
68
|
+
xmpp_ctx_free(ctx);
|
66
69
|
}
|
67
70
|
|
68
71
|
/* Get the status of the control loop
|
@@ -90,7 +93,7 @@ VALUE t_xmpp_ctx_new(VALUE class, VALUE log_level) {
|
|
90
93
|
level=FIX2INT(log_level);
|
91
94
|
log = xmpp_get_default_logger((xmpp_log_level_t)level);
|
92
95
|
xmpp_ctx_t *ctx = xmpp_ctx_new(NULL, log);
|
93
|
-
VALUE tdata = Data_Wrap_Struct(class, 0,
|
96
|
+
VALUE tdata = Data_Wrap_Struct(class, 0, free, ctx);
|
94
97
|
VALUE argv[1];
|
95
98
|
argv[0] = log_level;
|
96
99
|
rb_obj_call_init(tdata,1,argv);
|
@@ -103,12 +106,13 @@ static VALUE t_xmpp_ctx_init(VALUE self, VALUE log_level) {
|
|
103
106
|
return self;
|
104
107
|
}
|
105
108
|
|
106
|
-
/* Release the connection object. (called
|
107
|
-
static
|
108
|
-
|
109
|
+
/* Release the connection object. (Currently not called at all... because it causes segmentation error once in a while) */
|
110
|
+
static VALUE t_xmpp_conn_release(VALUE self) {
|
111
|
+
xmpp_conn_t *conn;
|
112
|
+
Data_Get_Struct(self,xmpp_conn_t,conn);
|
113
|
+
xmpp_conn_release(conn);
|
109
114
|
}
|
110
115
|
|
111
|
-
|
112
116
|
/* Initialize a connection object. We register instance variables that will hold the various callbacks
|
113
117
|
You should not manipulate instance variables. Use add_handler instead.
|
114
118
|
Maybe put this into xmpp_conn_new?
|
@@ -130,7 +134,7 @@ VALUE t_xmpp_conn_new(VALUE class, VALUE rb_ctx) {
|
|
130
134
|
Data_Get_Struct(rb_ctx, xmpp_ctx_t, ctx);
|
131
135
|
|
132
136
|
xmpp_conn_t *conn = xmpp_conn_new(ctx);
|
133
|
-
VALUE tdata = Data_Wrap_Struct(class, 0,
|
137
|
+
VALUE tdata = Data_Wrap_Struct(class, 0, free, conn);
|
134
138
|
VALUE argv[1];
|
135
139
|
argv[0] = rb_ctx;
|
136
140
|
|
@@ -613,7 +617,7 @@ void Init_strophe_ruby() {
|
|
613
617
|
cContext = rb_define_class_under(mStropheRuby, "Context", rb_cObject);
|
614
618
|
rb_define_singleton_method(cContext, "new", t_xmpp_ctx_new, 1);
|
615
619
|
rb_define_method(cContext, "initialize", t_xmpp_ctx_init, 1);
|
616
|
-
|
620
|
+
rb_define_method(cContext, "free", t_xmpp_ctx_free, 0);
|
617
621
|
rb_define_method(cContext, "loop_status", t_xmpp_get_loop_status, 0);
|
618
622
|
rb_define_method(cContext, "loop_status=", t_xmpp_set_loop_status, 1);
|
619
623
|
|
@@ -622,7 +626,7 @@ void Init_strophe_ruby() {
|
|
622
626
|
rb_define_singleton_method(cConnection, "new", t_xmpp_conn_new, 1);
|
623
627
|
rb_define_method(cConnection, "initialize", t_xmpp_conn_init, 1);
|
624
628
|
rb_define_method(cConnection, "clone", t_xmpp_conn_clone, 1);
|
625
|
-
|
629
|
+
rb_define_method(cConnection, "release", t_xmpp_conn_release, 0);
|
626
630
|
rb_define_method(cConnection, "jid", t_xmpp_conn_get_jid,0);
|
627
631
|
rb_define_method(cConnection, "jid=", t_xmpp_conn_set_jid,1);
|
628
632
|
rb_define_method(cConnection, "password", t_xmpp_conn_get_pass,0);
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: strophe_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Fran\xC3\xA7ois Lamontagne"
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-12-
|
12
|
+
date: 2008-12-12 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|