Method: Socket::Option#bool

Defined in:
option.c

#boolBoolean

Returns the data in sockopt as an boolean value.

sockopt = Socket::Option.int(:INET, :SOCKET, :KEEPALIVE, 1)
p sockopt.bool => true

Returns:

  • (Boolean)


303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
# File 'option.c', line 303

static VALUE
sockopt_bool(VALUE self)
{
    int i;
    long len;
    VALUE data = sockopt_data(self);
    StringValue(data);
    len = RSTRING_LEN(data);
    if (len == 1) {
        return *RSTRING_PTR(data) == 0 ? Qfalse : Qtrue;
    }
    check_size(len, sizeof(int));
    memcpy((char*)&i, RSTRING_PTR(data), len);
    return i == 0 ? Qfalse : Qtrue;
}