diff options
author | Konstantin Ananyev <konstantin.ananyev@intel.com> | 2017-10-31 12:40:17 +0000 |
---|---|---|
committer | Konstantin Ananyev <konstantin.ananyev@intel.com> | 2017-10-31 14:19:39 +0000 |
commit | e18a033b921d0d79fa8278f853548e6125b93e0c (patch) | |
tree | a6a55edf6ddceef824561818c9836914c326340d /app/nginx/src/http/modules/perl/nginx.pm | |
parent | 7e18fa1bf263822c46d7431a911b41d6377d5f69 (diff) |
Integrate TLDK with NGINX
Created a clone of nginx (from https://github.com/nginx/nginx)
to demonstrate and benchmark TLDK library integrated with real
world application.
A new nginx module is created and and BSD socket-like API is implemented
on top of native TLDK API.
Note, that right now only minimalistic subset of socket-like API is provided:
- accept
- close
- readv
- recv
- writev
so only limited nginx functionality is available for a moment.
Change-Id: Ie1efe9349a0538da4348a48fb8306cbf636b5a92
Signed-off-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Signed-off-by: Remy Horton <remy.horton@intel.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Diffstat (limited to 'app/nginx/src/http/modules/perl/nginx.pm')
-rw-r--r-- | app/nginx/src/http/modules/perl/nginx.pm | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/app/nginx/src/http/modules/perl/nginx.pm b/app/nginx/src/http/modules/perl/nginx.pm new file mode 100644 index 0000000..e3f7361 --- /dev/null +++ b/app/nginx/src/http/modules/perl/nginx.pm @@ -0,0 +1,138 @@ +package nginx; + +use 5.006001; +use strict; +use warnings; + +require Exporter; + +our @ISA = qw(Exporter); + +our @EXPORT = qw( + OK + DECLINED + + HTTP_OK + HTTP_CREATED + HTTP_ACCEPTED + HTTP_NO_CONTENT + HTTP_PARTIAL_CONTENT + + HTTP_MOVED_PERMANENTLY + HTTP_MOVED_TEMPORARILY + HTTP_REDIRECT + HTTP_SEE_OTHER + HTTP_NOT_MODIFIED + HTTP_TEMPORARY_REDIRECT + + HTTP_BAD_REQUEST + HTTP_UNAUTHORIZED + HTTP_PAYMENT_REQUIRED + HTTP_FORBIDDEN + HTTP_NOT_FOUND + HTTP_NOT_ALLOWED + HTTP_NOT_ACCEPTABLE + HTTP_REQUEST_TIME_OUT + HTTP_CONFLICT + HTTP_GONE + HTTP_LENGTH_REQUIRED + HTTP_REQUEST_ENTITY_TOO_LARGE + HTTP_REQUEST_URI_TOO_LARGE + HTTP_UNSUPPORTED_MEDIA_TYPE + HTTP_RANGE_NOT_SATISFIABLE + + HTTP_INTERNAL_SERVER_ERROR + HTTP_SERVER_ERROR + HTTP_NOT_IMPLEMENTED + HTTP_BAD_GATEWAY + HTTP_SERVICE_UNAVAILABLE + HTTP_GATEWAY_TIME_OUT + HTTP_INSUFFICIENT_STORAGE +); + +our $VERSION = '%%VERSION%%'; + +require XSLoader; +XSLoader::load('nginx', $VERSION); + +# Preloaded methods go here. + +use constant OK => 0; +use constant DECLINED => -5; + +use constant HTTP_OK => 200; +use constant HTTP_CREATED => 201; +use constant HTTP_ACCEPTED => 202; +use constant HTTP_NO_CONTENT => 204; +use constant HTTP_PARTIAL_CONTENT => 206; + +use constant HTTP_MOVED_PERMANENTLY => 301; +use constant HTTP_MOVED_TEMPORARILY => 302; +use constant HTTP_REDIRECT => 302; +use constant HTTP_SEE_OTHER => 303; +use constant HTTP_NOT_MODIFIED => 304; +use constant HTTP_TEMPORARY_REDIRECT => 307; + +use constant HTTP_BAD_REQUEST => 400; +use constant HTTP_UNAUTHORIZED => 401; +use constant HTTP_PAYMENT_REQUIRED => 402; +use constant HTTP_FORBIDDEN => 403; +use constant HTTP_NOT_FOUND => 404; +use constant HTTP_NOT_ALLOWED => 405; +use constant HTTP_NOT_ACCEPTABLE => 406; +use constant HTTP_REQUEST_TIME_OUT => 408; +use constant HTTP_CONFLICT => 409; +use constant HTTP_GONE => 410; +use constant HTTP_LENGTH_REQUIRED => 411; +use constant HTTP_REQUEST_ENTITY_TOO_LARGE => 413; +use constant HTTP_REQUEST_URI_TOO_LARGE => 414; +use constant HTTP_UNSUPPORTED_MEDIA_TYPE => 415; +use constant HTTP_RANGE_NOT_SATISFIABLE => 416; + +use constant HTTP_INTERNAL_SERVER_ERROR => 500; +use constant HTTP_SERVER_ERROR => 500; +use constant HTTP_NOT_IMPLEMENTED => 501; +use constant HTTP_BAD_GATEWAY => 502; +use constant HTTP_SERVICE_UNAVAILABLE => 503; +use constant HTTP_GATEWAY_TIME_OUT => 504; +use constant HTTP_INSUFFICIENT_STORAGE => 507; + + +sub rflush { + my $r = shift; + + $r->flush; +} + + +1; +__END__ + +=head1 NAME + +nginx - Perl interface to the nginx HTTP server API + +=head1 SYNOPSIS + + use nginx; + +=head1 DESCRIPTION + +This module provides a Perl interface to the nginx HTTP server API. + + +=head1 SEE ALSO + +http://nginx.org/en/docs/http/ngx_http_perl_module.html + +=head1 AUTHOR + +Igor Sysoev + +=head1 COPYRIGHT AND LICENSE + +Copyright (C) Igor Sysoev +Copyright (C) Nginx, Inc. + + +=cut |