Class: RubyCyrusSASL::ClientFactory
- Inherits:
-
Object
- Object
- RubyCyrusSASL::ClientFactory
- Includes:
- Singleton
- Defined in:
- lib/ruby-cyrus-sasl/ClientFacroty.rb,
ext/rubysasl/rubysasl.c
Instance Method Summary collapse
- #create(service, serverFQDN, callback, iplocalport = nil, ipremoteport = nil) ⇒ Object
-
#initialize ⇒ ClientFactory
constructor
A new instance of ClientFactory.
- #sasl_client_init ⇒ Object
- #sasl_client_new(service, serverFQDN, callback, localaddr, remoteaddr) ⇒ Object
Constructor Details
#initialize ⇒ ClientFactory
Returns a new instance of ClientFactory.
11 12 13 |
# File 'lib/ruby-cyrus-sasl/ClientFacroty.rb', line 11 def initialize sasl_client_init end |
Instance Method Details
#create(service, serverFQDN, callback, iplocalport = nil, ipremoteport = nil) ⇒ Object
15 16 17 |
# File 'lib/ruby-cyrus-sasl/ClientFacroty.rb', line 15 def create service, serverFQDN, callback, iplocalport = nil, ipremoteport = nil sasl_client_new service, serverFQDN, callback, iplocalport, ipremoteport end |
#sasl_client_init ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'ext/rubysasl/rubysasl.c', line 20
static VALUE t_sasl_client_init(VALUE self)
{
int result;
result = sasl_client_init(callbacks);
if (result != SASL_OK) {
rb_raise(rb_eException, "initializing libsasl");
}
return self;
}
|
#sasl_client_new(service, serverFQDN, callback, localaddr, remoteaddr) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'ext/rubysasl/rubysasl.c', line 31
static VALUE t_sasl_client_new(VALUE self, VALUE service, VALUE serverFQDN, VALUE callback, VALUE localaddr, VALUE remoteaddr)
{
sasl_conn_t *c_conn;
VALUE conn;
int result;
VALUE argv[1];
char *c_service = (service != Qnil) ? RSTRING_PTR(service) : NULL;
char *c_serverFQDN = (serverFQDN != Qnil) ? RSTRING_PTR(serverFQDN) : NULL;
char *c_localaddr = (localaddr != Qnil) ? RSTRING_PTR(localaddr) : NULL;
char *c_remoteaddr = (remoteaddr != Qnil) ? RSTRING_PTR(remoteaddr) : NULL;
result = sasl_client_new(c_service, c_serverFQDN, c_localaddr, c_remoteaddr, NULL, 0, &c_conn);
if (result != SASL_OK) {
rb_raise(rb_eException, "allocating connection state");
return self;
}
//TODO: free this
conn = Data_Wrap_Struct(cClient, NULL, NULL, c_conn);
argv[0] = callback;
rb_obj_call_init(conn, 1, argv);
return conn;
}
|