get_option(const char *optname, const char *src, size_t *len)
{
	char *opt, *end;
	size_t sz;

	if (!src)
		return NULL;

	opt = strstr(src, optname);
	if (!opt)
		return NULL;

	end = strchr(opt, ',');
	sz = end ? end - opt : strlen(opt);

	if (len)
		*len = sz;

	if ((opt == src || *(opt - 1) == ',') &&
	    (*(opt + sz) == '\0' || *(opt + sz) == ','))
		return opt;

	return NULL;
}
get_option(const char *optname, const char *src, size_t *len)
{
	char *opt, *end;
	size_t sz;

	if (!src)
		return NULL;

	opt = strstr(src, optname);
	if (!opt)
		return NULL;

	end = strchr(opt, ',');
	sz = end ? end - opt : strlen(opt);

	if (len)
		*len = sz;

	if ((opt == src || *(opt - 1) == ',') &&
	    (*(opt + sz) == '\0' || *(opt + sz) == ','))
		return opt;

	return NULL;
}