1
0
Fork 0
mirror of https://github.com/warmcat/libwebsockets.git synced 2025-03-09 00:00:04 +01:00

introduce library version plus git hash

This exposes the library version and git head hash it was built from
into LWS_LIBRARY_VERSION and LWS_BUILD_HASH.

These are combined into a version string that's both printed as a
notice log by the library and made available to the app using a new
api lws_get_library_version().  The version looks like

 1.1 178d78c

Signed-off-by: Andy Green <andy.green@linaro.org>
This commit is contained in:
Andy Green 2013-02-01 10:50:15 +08:00
parent 2d7acec9b2
commit 7b40545e92
7 changed files with 61 additions and 3 deletions

View file

@ -10,3 +10,4 @@ EXTRA_DIST=scripts/kernel-doc
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libwebsockets.pc

View file

@ -1,6 +1,17 @@
Changelog
---------
(development since 1.1....)
User api additions
------------------
- lws_get_library_version() returns a const char * with a string like
"1.1 9e7f737", representing the library version from configure.ac
and the git HEAD hash the library was built from
v1.1-chrome26-firefox18
=======================

View file

@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.61])
AC_INIT(libwebsockets, 1.1, andy@warmcat.com)
AC_INIT(libwebsockets, 1.1, andy@warmcat.com, libwebsockets, http://libwebsockets.org)
AC_CONFIG_SRCDIR([test-server/test-server.c])
AC_CONFIG_HEADERS([config.h])
@ -18,6 +18,10 @@ AC_PROG_INSTALL
AC_PROG_MAKE_SET
AC_CONFIG_MACRO_DIR([m4])
applyhash='CFLAGS+= -DLWS_LIBRARY_VERSION=\"$(PACKAGE_VERSION)\" -DLWS_BUILD_HASH=\"${shell git log -n 1 --pretty=%h}\"'
AC_SUBST([applyhash])
AM_SUBST_NOTMAKE([applyhash])
#
#
#

View file

@ -1,3 +1,5 @@
@applyhash@
lib_LTLIBRARIES=libwebsockets.la
include_HEADERS=libwebsockets.h
dist_libwebsockets_la_SOURCES=libwebsockets.c \
@ -42,7 +44,7 @@ else
dist_libwebsockets_la_SOURCES += sha-1.c
endif
libwebsockets_la_CFLAGS=-Wall -std=gnu99 -pedantic -g
libwebsockets_la_CFLAGS=-Wall -std=gnu99 -pedantic
libwebsockets_la_LDFLAGS=
if DISABLE_DEBUG

View file

@ -48,11 +48,16 @@ int openssl_websocket_private_data_index;
#endif
#endif
#ifndef LWS_BUILD_HASH
#define LWS_BUILD_HASH "unknown-build-hash"
#endif
static int log_level = LLL_ERR | LLL_WARN | LLL_NOTICE;
static void lwsl_emit_stderr(int level, const char *line);
static void (*lwsl_emit)(int level, const char *line) = lwsl_emit_stderr;
static const char *library_version = LWS_LIBRARY_VERSION " " LWS_BUILD_HASH;
static const char *log_level_names[] = {
"ERR",
"WARN",
@ -66,6 +71,20 @@ static const char *log_level_names[] = {
"LATENCY",
};
/**
* lws_get_library_version: get version and git hash library built from
*
* returns a const char * to a string like "1.1 178d78c"
* representing the library version followed by the git head hash it
* was built from
*/
const char *
lws_get_library_version(void)
{
return library_version;
}
int
insert_wsi_socket_into_fds(struct libwebsocket_context *context, struct libwebsocket *wsi)
{
@ -1492,6 +1511,7 @@ libwebsocket_create_context(int port, const char *interf,
#endif
lwsl_notice("Initial logging level %d\n", log_level);
lwsl_notice("Library version: %s\n", library_version);
lwsl_info(" LWS_MAX_HEADER_NAME_LENGTH: %u\n", LWS_MAX_HEADER_NAME_LENGTH);
lwsl_info(" LWS_MAX_HEADER_LEN: %u\n", LWS_MAX_HEADER_LEN);
lwsl_info(" LWS_INITIAL_HDR_ALLOC: %u\n", LWS_INITIAL_HDR_ALLOC);

View file

@ -1,7 +1,7 @@
/*
* libwebsockets - small server side websockets and web server implementation
*
* Copyright (C) 2010 Andy Green <andy@warmcat.com>
* Copyright (C) 2010-2013 Andy Green <andy@warmcat.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -868,6 +868,9 @@ lws_b64_encode_string(const char *in, int in_len, char *out, int out_size);
LWS_EXTERN int
lws_b64_decode_string(const char *in, char *out, int out_size);
LWS_EXTERN const char *
lws_get_library_version(void);
/*
* Note: this is not normally needed as a user api. It's provided in case it is
* useful when integrating with other app poll loop service code.

View file

@ -85,6 +85,23 @@ protocol supported, or the specific protocol ordinal
This function creates a connection to a remote server
</blockquote>
<hr>
<h2>lws_get_library_version - </h2>
<i>const char *</i>
<b>lws_get_library_version</b>
(<i></i> <b>void</b>)
<h3>Arguments</h3>
<dl>
<dt><b>void</b>
<dd>no arguments
</dl>
<h3>Description</h3>
<blockquote>
<p>
returns a const char * to a string like "1.1 178d78c"
representing the library version followed by the git head hash it
was built from
</blockquote>
<hr>
<h2>libwebsockets_hangup_on_client - Server calls to terminate client connection</h2>
<i>void</i>
<b>libwebsockets_hangup_on_client</b>