/*
* call-seq:
* Spread::version -> string
*
* The version of the Spread client libraries being used.
*/
static VALUE
spread_version(VALUE obj)
{
int n;
int len;
int maj_ver, min_ver, patch_ver;
char buf[64];
if ((n = SP_version(&maj_ver, &min_ver, &patch_ver)) < 0)
raise_sp_error(n);
len = snprintf(buf, sizeof(buf), "%d.%d.%d",
maj_ver, min_ver, patch_ver);
if (len < 0 || (size_t) len >= sizeof(buf))
rb_raise(rb_eRuntimeError, "buffer overflow");
return rb_str_new(buf, len);
}