Added server and server=
authorMikael Hallendal <micke@imendio.com>
Tue, 08 Apr 2008 22:10:18 +0200
changeset 357 7e9d8b2fe913
parent 356 6e517ad0e336
child 358 41ce92df5b52
Added server and server=
bindings/ruby/rlm-connection.c
--- a/bindings/ruby/rlm-connection.c	Tue Apr 08 22:05:01 2008 +0200
+++ b/bindings/ruby/rlm-connection.c	Tue Apr 08 22:10:18 2008 +0200
@@ -1,5 +1,7 @@
 #include "rloudmouth.h"
 
+VALUE conn_set_server (VALUE self, VALUE server);
+
 void
 conn_mark (LmConnection *self)
 {
@@ -20,18 +22,13 @@
 }
 
 VALUE
-conn_initialize(VALUE self, VALUE server, VALUE context)
+conn_initialize (VALUE self, VALUE server, VALUE context)
 {
 	LmConnection *conn;
 
 	Data_Get_Struct (self, LmConnection, conn);
 
-	if (!rb_respond_to (server, rb_intern ("to_s"))) {
-		rb_raise (rb_eArgError, "server should respond to to_s");
-	} else {
-		VALUE str_val = rb_funcall (server, rb_intern ("to_s"), 0);
-		lm_connection_set_server (conn, StringValuePtr (str_val));
-	}
+	conn_set_server (self, server);
 
 	/* Set context */
 
@@ -140,6 +137,31 @@
 	return GBOOL2RVAL (lm_connection_is_authenticated (conn));
 }
 
+VALUE
+conn_get_server (VALUE self)
+{
+	LmConnection *conn;
+
+	Data_Get_Struct (self, LmConnection, conn);
+
+	return rb_str_new2 (lm_connection_get_server (conn));
+}
+
+VALUE
+conn_set_server (VALUE self, VALUE server)
+{
+	LmConnection *conn;
+
+	Data_Get_Struct (self, LmConnection, conn);
+
+	if (!rb_respond_to (server, rb_intern ("to_s"))) {
+		rb_raise (rb_eArgError, "server should respond to to_s");
+	} else {
+		VALUE str_val = rb_funcall (server, rb_intern ("to_s"), 0);
+		lm_connection_set_server (conn, StringValuePtr (str_val));
+	}
+}
+
 void
 Init_lm_connection (VALUE lm_mLM)
 {
@@ -156,6 +178,8 @@
 	rb_define_method (lm_mConnection, "authenticate", conn_auth, -1);
 	rb_define_method (lm_mConnection, "keep_alive_rate=", conn_set_keep_alive_rate, 1);
 	/* rb_define_method (lm_mConnection, "keep_alive_rate", conn_get_keep_alive_rate, 0); */
-	rb_define_method (lm_mConnection, "open?", conn_is_open, -1);
-	rb_define_method (lm_mConnection, "authenticated?", conn_is_authenticated, -1);
+	rb_define_method (lm_mConnection, "open?", conn_is_open, 0);
+	rb_define_method (lm_mConnection, "authenticated?", conn_is_authenticated, 0);
+	rb_define_method (lm_mConnection, "server", conn_get_server, 0);
+	rb_define_method (lm_mConnection, "server=", conn_set_server, 1);
 }