get_version.c 583 Bytes
#include <string.h>
#include <stdlib.h>

#include "http/message.h"

int
httpMessageGetVersion(HttpMessage this, int * major, int * minor)
{
	char * major_ptr = this->version + 5;
	char * minor_ptr = strchr(major_ptr, '.') + 1;
	char   version[] = "\0\0\0";

	if (NULL == minor_ptr ||
			((minor_ptr - major_ptr - 1) > 2) ||
			strlen(minor_ptr) > 2)
		return -1;

	memcpy(version, major_ptr, minor_ptr - major_ptr - 1);
	*major = atoi(version);

	memset(version, 0, 3);
	strcpy(version, minor_ptr);
	*minor = atoi(version);

	return ((*major)<<7)|(*minor);
}

// vim: set ts=4 sw=4: