python: Fix build error

This commit is contained in:
Tatsuhiro Tsujikawa 2014-08-26 00:13:53 +09:00
parent 4c11cd0671
commit 42ac80d3da
2 changed files with 72 additions and 25 deletions

View File

@ -102,7 +102,7 @@ cdef extern from 'nghttp2/nghttp2.h':
ctypedef struct nghttp2_rst_stream: ctypedef struct nghttp2_rst_stream:
nghttp2_frame_hd hd nghttp2_frame_hd hd
nghttp2_error_code error_code uint32_t error_code
ctypedef struct nghttp2_push_promise: ctypedef struct nghttp2_push_promise:
@ -114,7 +114,7 @@ cdef extern from 'nghttp2/nghttp2.h':
ctypedef struct nghttp2_goaway: ctypedef struct nghttp2_goaway:
nghttp2_frame_hd hd nghttp2_frame_hd hd
int32_t last_stream_id int32_t last_stream_id
nghttp2_error_code error_code uint32_t error_code
uint8_t *opaque_data uint8_t *opaque_data
size_t opaque_data_len size_t opaque_data_len
@ -142,7 +142,7 @@ cdef extern from 'nghttp2/nghttp2.h':
ctypedef int (*nghttp2_on_stream_close_callback)\ ctypedef int (*nghttp2_on_stream_close_callback)\
(nghttp2_session *session, int32_t stream_id, (nghttp2_session *session, int32_t stream_id,
nghttp2_error_code error_code, void *user_data) uint32_t error_code, void *user_data)
ctypedef int (*nghttp2_on_begin_headers_callback)\ ctypedef int (*nghttp2_on_begin_headers_callback)\
(nghttp2_session *session, const nghttp2_frame *frame, void *user_data) (nghttp2_session *session, const nghttp2_frame *frame, void *user_data)
@ -163,15 +163,47 @@ cdef extern from 'nghttp2/nghttp2.h':
int lib_error_code, void *user_data) int lib_error_code, void *user_data)
ctypedef struct nghttp2_session_callbacks: ctypedef struct nghttp2_session_callbacks:
nghttp2_send_callback send_callback pass
nghttp2_on_frame_recv_callback on_frame_recv_callback
nghttp2_on_data_chunk_recv_callback on_data_chunk_recv_callback int nghttp2_session_callbacks_new(
nghttp2_before_frame_send_callback before_frame_send_callback nghttp2_session_callbacks **callbacks_ptr)
nghttp2_on_frame_send_callback on_frame_send_callback
nghttp2_on_frame_not_send_callback on_frame_not_send_callback void nghttp2_session_callbacks_del(nghttp2_session_callbacks *callbacks)
nghttp2_on_stream_close_callback on_stream_close_callback
nghttp2_on_begin_headers_callback on_begin_headers_callback void nghttp2_session_callbacks_set_send_callback(
nghttp2_on_header_callback on_header_callback nghttp2_session_callbacks *cbs, nghttp2_send_callback send_callback)
void nghttp2_session_callbacks_set_on_frame_recv_callback(
nghttp2_session_callbacks *cbs,
nghttp2_on_frame_recv_callback on_frame_recv_callback)
void nghttp2_session_callbacks_set_on_data_chunk_recv_callback(
nghttp2_session_callbacks *cbs,
nghttp2_on_data_chunk_recv_callback on_data_chunk_recv_callback)
void nghttp2_session_callbacks_set_before_frame_send_callback(
nghttp2_session_callbacks *cbs,
nghttp2_before_frame_send_callback before_frame_send_callback)
void nghttp2_session_callbacks_set_on_frame_send_callback(
nghttp2_session_callbacks *cbs,
nghttp2_on_frame_send_callback on_frame_send_callback)
void nghttp2_session_callbacks_set_on_frame_not_send_callback(
nghttp2_session_callbacks *cbs,
nghttp2_on_frame_not_send_callback on_frame_not_send_callback)
void nghttp2_session_callbacks_set_on_stream_close_callback(
nghttp2_session_callbacks *cbs,
nghttp2_on_stream_close_callback on_stream_close_callback)
void nghttp2_session_callbacks_set_on_begin_headers_callback(
nghttp2_session_callbacks *cbs,
nghttp2_on_begin_headers_callback on_begin_headers_callback)
void nghttp2_session_callbacks_set_on_header_callback(
nghttp2_session_callbacks *cbs,
nghttp2_on_header_callback on_header_callback)
int nghttp2_session_client_new(nghttp2_session **session_ptr, int nghttp2_session_client_new(nghttp2_session **session_ptr,
const nghttp2_session_callbacks *callbacks, const nghttp2_session_callbacks *callbacks,
@ -233,7 +265,7 @@ cdef extern from 'nghttp2/nghttp2.h':
int nghttp2_submit_rst_stream(nghttp2_session *session, uint8_t flags, int nghttp2_submit_rst_stream(nghttp2_session *session, uint8_t flags,
int32_t stream_id, int32_t stream_id,
nghttp2_error_code error_code) uint32_t error_code)
void* nghttp2_session_get_stream_user_data(nghttp2_session *session, void* nghttp2_session_get_stream_user_data(nghttp2_session *session,
uint32_t stream_id) uint32_t stream_id)
@ -243,7 +275,7 @@ cdef extern from 'nghttp2/nghttp2.h':
void *stream_user_data) void *stream_user_data)
int nghttp2_session_terminate_session(nghttp2_session *session, int nghttp2_session_terminate_session(nghttp2_session *session,
nghttp2_error_code error_code) uint32_t error_code)
const char* nghttp2_strerror(int lib_error_code) const char* nghttp2_strerror(int lib_error_code)

View File

@ -430,7 +430,7 @@ cdef int server_on_frame_not_send(cnghttp2.nghttp2_session *session,
cdef int server_on_stream_close(cnghttp2.nghttp2_session *session, cdef int server_on_stream_close(cnghttp2.nghttp2_session *session,
int32_t stream_id, int32_t stream_id,
cnghttp2.nghttp2_error_code error_code, uint32_t error_code,
void *user_data): void *user_data):
cdef http2 = <_HTTP2SessionCore>user_data cdef http2 = <_HTTP2SessionCore>user_data
@ -479,7 +479,7 @@ cdef class _HTTP2SessionCore:
cdef settings_timer cdef settings_timer
def __cinit__(self, transport, handler_class): def __cinit__(self, transport, handler_class):
cdef cnghttp2.nghttp2_session_callbacks callbacks cdef cnghttp2.nghttp2_session_callbacks *callbacks
cdef cnghttp2.nghttp2_settings_entry iv[2] cdef cnghttp2.nghttp2_settings_entry iv[2]
cdef int rv cdef int rv
@ -490,17 +490,32 @@ cdef class _HTTP2SessionCore:
self.handlers = set() self.handlers = set()
self.settings_timer = None self.settings_timer = None
memset(&callbacks, 0, sizeof(callbacks)) rv = cnghttp2.nghttp2_session_callbacks_new(&callbacks)
callbacks.on_header_callback = server_on_header
callbacks.on_begin_headers_callback = server_on_begin_headers
callbacks.on_frame_recv_callback = server_on_frame_recv
callbacks.on_stream_close_callback = server_on_stream_close
callbacks.on_frame_send_callback = server_on_frame_send
callbacks.on_frame_not_send_callback = server_on_frame_not_send
callbacks.on_data_chunk_recv_callback = server_on_data_chunk_recv
rv = cnghttp2.nghttp2_session_server_new(&self.session, &callbacks, if rv != 0:
raise Exception('nghttp2_session_callbacks_new failed: {}'.format\
(_strerror(rv)))
cnghttp2.nghttp2_session_callbacks_set_on_header_callback(
callbacks, server_on_header)
cnghttp2.nghttp2_session_callbacks_set_on_begin_headers_callback(
callbacks, server_on_begin_headers)
cnghttp2.nghttp2_session_callbacks_set_on_frame_recv_callback(
callbacks, server_on_frame_recv)
cnghttp2.nghttp2_session_callbacks_set_on_stream_close_callback(
callbacks, server_on_stream_close)
cnghttp2.nghttp2_session_callbacks_set_on_frame_send_callback(
callbacks, server_on_frame_send)
cnghttp2.nghttp2_session_callbacks_set_on_frame_not_send_callback(
callbacks, server_on_frame_not_send)
cnghttp2.nghttp2_session_callbacks_set_on_data_chunk_recv_callback(
callbacks, server_on_data_chunk_recv)
rv = cnghttp2.nghttp2_session_server_new(&self.session, callbacks,
<void*>self) <void*>self)
cnghttp2.nghttp2_session_callbacks_del(callbacks)
if rv != 0: if rv != 0:
raise Exception('nghttp2_session_server_new failed: {}'.format\ raise Exception('nghttp2_session_server_new failed: {}'.format\
(_strerror(rv))) (_strerror(rv)))