Added missing LmSSL ruby bindings
authorMikael Hallendal <micke@imendio.com>
Thu, 10 Apr 2008 16:35:28 +0200
changeset 383 926c939af071
parent 382 bc887affb431
child 384 0b66f7d71abf
Added missing LmSSL ruby bindings
bindings/ruby/rblm-ssl.c
--- a/bindings/ruby/rblm-ssl.c	Thu Apr 10 16:23:26 2008 +0200
+++ b/bindings/ruby/rblm-ssl.c	Thu Apr 10 16:35:28 2008 +0200
@@ -28,6 +28,12 @@
 	return Data_Wrap_Struct (klass, NULL, ssl_free, NULL);
 }
 
+static VALUE
+ssl_is_supported (VALUE self)
+{
+	return GBOOL2RVAL (lm_ssl_is_supported ());
+}
+
 static LmSSLResponse
 ssl_func_callback (LmSSL       *ssl,
 		   LmSSLStatus  status,
@@ -45,7 +51,7 @@
 	return rb_lm_ssl_response_from_ruby_object (response);
 }
 
-VALUE
+static VALUE
 ssl_initialize (int argc, VALUE *argv, VALUE self)
 {
 	LmSSL    *ssl;
@@ -80,6 +86,58 @@
 	return self;
 }
 
+static VALUE
+ssl_get_fingerprint (VALUE self)
+{
+	LmSSL *ssl = rb_lm_ssl_from_ruby_object (self);
+
+	if (lm_ssl_get_fingerprint (ssl)) {
+		return rb_str_new2 (lm_ssl_get_fingerprint (ssl));
+	}
+
+	return Qnil;
+}
+
+static VALUE
+ssl_get_use_starttls (VALUE self)
+{
+	LmSSL *ssl = rb_lm_ssl_from_ruby_object (self);
+
+	return GBOOL2RVAL (lm_ssl_get_use_starttls (ssl));
+}
+
+static VALUE
+ssl_set_use_starttls (VALUE self, VALUE use)
+{
+	LmSSL *ssl = rb_lm_ssl_from_ruby_object (self);
+
+	lm_ssl_use_starttls (ssl,
+			     RVAL2GBOOL (use),
+			     lm_ssl_get_require_starttls (ssl));
+
+	return Qnil;
+}
+
+static VALUE
+ssl_get_require_starttls (VALUE self)
+{
+	LmSSL *ssl = rb_lm_ssl_from_ruby_object (self);
+
+	return GBOOL2RVAL (lm_ssl_get_require_starttls (ssl));
+}
+
+static VALUE
+ssl_set_require_starttls (VALUE self, VALUE require)
+{
+	LmSSL *ssl = rb_lm_ssl_from_ruby_object (self);
+
+	lm_ssl_use_starttls (ssl,
+			     lm_ssl_get_use_starttls (ssl),
+			     RVAL2GBOOL (require));
+
+	return Qnil;
+}
+
 extern void
 Init_lm_ssl (VALUE lm_mLM)
 {
@@ -87,6 +145,14 @@
 
 	rb_define_alloc_func (lm_cSSL, ssl_allocate);
 
+	rb_define_singleton_method (lm_cSSL, "supported?", 
+				    ssl_is_supported, 0);
+
 	rb_define_method (lm_cSSL, "initialize", ssl_initialize, -1);
+	rb_define_method (lm_cSSL, "fingerprint", ssl_get_fingerprint, 0);
+	rb_define_method (lm_cSSL, "use_starttls", ssl_get_use_starttls, 0);
+	rb_define_method (lm_cSSL, "use_starttls=", ssl_set_use_starttls, 1);
+	rb_define_method (lm_cSSL, "require_starttls", ssl_get_require_starttls, 0);
+	rb_define_method (lm_cSSL, "require_starttls=", ssl_set_require_starttls, 1);
 }