nghttp2_version: new function, returns info about this nghttp2
This returns run-time information about the lib
This commit is contained in:
parent
e8ca112749
commit
66b89006d5
|
@ -1,6 +1,6 @@
|
||||||
# nghttp2 - HTTP/2.0 C Library
|
# nghttp2 - HTTP/2.0 C Library
|
||||||
|
|
||||||
# Copyright (c) 2012 Tatsuhiro Tsujikawa
|
# Copyright (c) 2012, 2013 Tatsuhiro Tsujikawa
|
||||||
|
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# a copy of this software and associated documentation files (the
|
||||||
|
@ -37,7 +37,7 @@ OBJECTS = nghttp2_pq.c nghttp2_map.c nghttp2_queue.c \
|
||||||
nghttp2_session.c nghttp2_submit.c \
|
nghttp2_session.c nghttp2_submit.c \
|
||||||
nghttp2_helper.c \
|
nghttp2_helper.c \
|
||||||
nghttp2_npn.c nghttp2_gzip.c \
|
nghttp2_npn.c nghttp2_gzip.c \
|
||||||
nghttp2_hd.c
|
nghttp2_hd.c nghttp2_version.c
|
||||||
|
|
||||||
HFILES = nghttp2_pq.h nghttp2_int.h nghttp2_map.h nghttp2_queue.h \
|
HFILES = nghttp2_pq.h nghttp2_int.h nghttp2_map.h nghttp2_queue.h \
|
||||||
nghttp2_buffer.h nghttp2_frame.h \
|
nghttp2_buffer.h nghttp2_frame.h \
|
||||||
|
|
|
@ -58,6 +58,25 @@ struct nghttp2_session;
|
||||||
*/
|
*/
|
||||||
typedef struct nghttp2_session nghttp2_session;
|
typedef struct nghttp2_session nghttp2_session;
|
||||||
|
|
||||||
|
#define NGHTTP2_VERSION_AGE 1
|
||||||
|
struct nghttp2_info {
|
||||||
|
int age; /* Age of this struct. This instance of nghttp2 sets it to
|
||||||
|
NGHTTP2_VERSION_AGE but a future version may bump it and add
|
||||||
|
more struct fields at the bottom */
|
||||||
|
int version_num; /* the NGHTTP2_VERSION_NUM number */
|
||||||
|
const char *version_str; /* points to the NGHTTP2_VERSION string */
|
||||||
|
const char *proto_str; /* points to the NGHTTP2_PROTO_VERSION_ID string
|
||||||
|
this instance implements */
|
||||||
|
/* -------- the above fields all exist when age == 1 */
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* @struct
|
||||||
|
*
|
||||||
|
* This struct is what nghttp2_version() returns. It holds information about
|
||||||
|
* the particular nghttp2 version.
|
||||||
|
*/
|
||||||
|
typedef struct nghttp2_info nghttp2_info;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @macro
|
* @macro
|
||||||
*
|
*
|
||||||
|
@ -1976,6 +1995,17 @@ int nghttp2_gzip_inflate(nghttp2_gzip *inflater,
|
||||||
uint8_t *out, size_t *outlen_ptr,
|
uint8_t *out, size_t *outlen_ptr,
|
||||||
const uint8_t *in, size_t *inlen_ptr);
|
const uint8_t *in, size_t *inlen_ptr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function
|
||||||
|
*
|
||||||
|
* Returns a pointer to a nghttp2_info struct with version information about
|
||||||
|
* the run-time library in use. The |least_version| argument can be set to a
|
||||||
|
* 24 bit numerical value for the least accepted version number and if the
|
||||||
|
* condition is not met, this function will return a NULL. Pass in 0 to skip
|
||||||
|
* the version checking.
|
||||||
|
*/
|
||||||
|
nghttp2_info *nghttp2_version(int least_version);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
* nghttp2 - HTTP/2.0 C Library
|
||||||
|
*
|
||||||
|
* Copyright (c) 2012, 2013 Tatsuhiro Tsujikawa
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
* a copy of this software and associated documentation files (the
|
||||||
|
* "Software"), to deal in the Software without restriction, including
|
||||||
|
* without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
* permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
* the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be
|
||||||
|
* included in all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <nghttp2/nghttp2.h>
|
||||||
|
|
||||||
|
static nghttp2_info version = {
|
||||||
|
NGHTTP2_VERSION_AGE,
|
||||||
|
NGHTTP2_VERSION_NUM,
|
||||||
|
NGHTTP2_VERSION,
|
||||||
|
NGHTTP2_PROTO_VERSION_ID
|
||||||
|
};
|
||||||
|
|
||||||
|
nghttp2_info *nghttp2_version(int least_version)
|
||||||
|
{
|
||||||
|
if(least_version > NGHTTP2_VERSION_NUM)
|
||||||
|
return NULL;
|
||||||
|
return &version;
|
||||||
|
}
|
Loading…
Reference in New Issue