├── .github └── workflows │ ├── docker-build.yml │ └── rails-docker-build.yml ├── LICENSE ├── README.md ├── apt-mirror ├── .gitignore ├── Dockerfile ├── docker-compose.yml.example └── resources │ ├── apt │ ├── mirror.list.template │ └── post-mirror.sh │ ├── docker-entrypoint.sh │ └── nginx │ └── sites-enabled │ └── apt-mirror.conf.example ├── bind ├── .gitignore ├── Dockerfile ├── entrypoint.sh └── etc │ └── bind │ ├── bind.keys │ ├── db.0 │ ├── db.127 │ ├── db.255 │ ├── db.empty │ ├── db.local │ ├── db.root │ ├── named.conf │ ├── named.conf.default-zones │ ├── named.conf.local │ ├── named.conf.options │ └── zones.rfc1918 ├── build.sh ├── consul ├── .gitignore ├── Dockerfile └── docker-compose.yml.example ├── docker-bake.hcl ├── goaccess └── Dockerfile ├── grunt ├── Dockerfile └── runtime │ └── Dockerfile ├── haproxy ├── Dockerfile └── haproxy.ctmpl ├── icecast ├── .gitignore ├── Dockerfile ├── README.md ├── docker-entrypoint.sh └── etc │ ├── icecast.xml │ └── mime.types ├── jq └── Dockerfile ├── liquidsoap ├── Dockerfile ├── install.sh └── start-liquidsoap.sh ├── memcached ├── Dockerfile ├── README.md └── start ├── nginx-geoip2 ├── Dockerfile ├── nginx-1.15.12 │ ├── CHANGES │ ├── CHANGES.ru │ ├── LICENSE │ ├── README │ ├── auto │ │ ├── cc │ │ │ ├── acc │ │ │ ├── bcc │ │ │ ├── ccc │ │ │ ├── clang │ │ │ ├── conf │ │ │ ├── gcc │ │ │ ├── icc │ │ │ ├── msvc │ │ │ ├── name │ │ │ ├── owc │ │ │ └── sunc │ │ ├── define │ │ ├── endianness │ │ ├── feature │ │ ├── have │ │ ├── have_headers │ │ ├── headers │ │ ├── include │ │ ├── init │ │ ├── install │ │ ├── lib │ │ │ ├── conf │ │ │ ├── geoip │ │ │ │ └── conf │ │ │ ├── google-perftools │ │ │ │ └── conf │ │ │ ├── libatomic │ │ │ │ ├── conf │ │ │ │ └── make │ │ │ ├── libgd │ │ │ │ └── conf │ │ │ ├── libxslt │ │ │ │ └── conf │ │ │ ├── make │ │ │ ├── openssl │ │ │ │ ├── conf │ │ │ │ ├── make │ │ │ │ ├── makefile.bcc │ │ │ │ └── makefile.msvc │ │ │ ├── pcre │ │ │ │ ├── conf │ │ │ │ ├── make │ │ │ │ ├── makefile.bcc │ │ │ │ ├── makefile.msvc │ │ │ │ └── makefile.owc │ │ │ ├── perl │ │ │ │ ├── conf │ │ │ │ └── make │ │ │ └── zlib │ │ │ │ ├── conf │ │ │ │ ├── make │ │ │ │ ├── makefile.bcc │ │ │ │ ├── makefile.msvc │ │ │ │ └── makefile.owc │ │ ├── make │ │ ├── module │ │ ├── modules │ │ ├── nohave │ │ ├── options │ │ ├── os │ │ │ ├── conf │ │ │ ├── darwin │ │ │ ├── freebsd │ │ │ ├── linux │ │ │ ├── solaris │ │ │ └── win32 │ │ ├── sources │ │ ├── stubs │ │ ├── summary │ │ ├── threads │ │ ├── types │ │ │ ├── sizeof │ │ │ ├── typedef │ │ │ ├── uintptr_t │ │ │ └── value │ │ └── unix │ ├── conf │ │ ├── fastcgi.conf │ │ ├── fastcgi_params │ │ ├── koi-utf │ │ ├── koi-win │ │ ├── mime.types │ │ ├── nginx.conf │ │ ├── scgi_params │ │ ├── uwsgi_params │ │ └── win-utf │ ├── configure │ ├── contrib │ │ ├── README │ │ ├── geo2nginx.pl │ │ ├── unicode2nginx │ │ │ ├── koi-utf │ │ │ ├── unicode-to-nginx.pl │ │ │ └── win-utf │ │ └── vim │ │ │ ├── ftdetect │ │ │ └── nginx.vim │ │ │ ├── ftplugin │ │ │ └── nginx.vim │ │ │ ├── indent │ │ │ └── nginx.vim │ │ │ └── syntax │ │ │ └── nginx.vim │ ├── html │ │ ├── 50x.html │ │ └── index.html │ ├── man │ │ └── nginx.8 │ └── src │ │ ├── core │ │ ├── nginx.c │ │ ├── nginx.h │ │ ├── ngx_array.c │ │ ├── ngx_array.h │ │ ├── ngx_buf.c │ │ ├── ngx_buf.h │ │ ├── ngx_conf_file.c │ │ ├── ngx_conf_file.h │ │ ├── ngx_config.h │ │ ├── ngx_connection.c │ │ ├── ngx_connection.h │ │ ├── ngx_core.h │ │ ├── ngx_cpuinfo.c │ │ ├── ngx_crc.h │ │ ├── ngx_crc32.c │ │ ├── ngx_crc32.h │ │ ├── ngx_crypt.c │ │ ├── ngx_crypt.h │ │ ├── ngx_cycle.c │ │ ├── ngx_cycle.h │ │ ├── ngx_file.c │ │ ├── ngx_file.h │ │ ├── ngx_hash.c │ │ ├── ngx_hash.h │ │ ├── ngx_inet.c │ │ ├── ngx_inet.h │ │ ├── ngx_list.c │ │ ├── ngx_list.h │ │ ├── ngx_log.c │ │ ├── ngx_log.h │ │ ├── ngx_md5.c │ │ ├── ngx_md5.h │ │ ├── ngx_module.c │ │ ├── ngx_module.h │ │ ├── ngx_murmurhash.c │ │ ├── ngx_murmurhash.h │ │ ├── ngx_open_file_cache.c │ │ ├── ngx_open_file_cache.h │ │ ├── ngx_output_chain.c │ │ ├── ngx_palloc.c │ │ ├── ngx_palloc.h │ │ ├── ngx_parse.c │ │ ├── ngx_parse.h │ │ ├── ngx_parse_time.c │ │ ├── ngx_parse_time.h │ │ ├── ngx_proxy_protocol.c │ │ ├── ngx_proxy_protocol.h │ │ ├── ngx_queue.c │ │ ├── ngx_queue.h │ │ ├── ngx_radix_tree.c │ │ ├── ngx_radix_tree.h │ │ ├── ngx_rbtree.c │ │ ├── ngx_rbtree.h │ │ ├── ngx_regex.c │ │ ├── ngx_regex.h │ │ ├── ngx_resolver.c │ │ ├── ngx_resolver.h │ │ ├── ngx_rwlock.c │ │ ├── ngx_rwlock.h │ │ ├── ngx_sha1.c │ │ ├── ngx_sha1.h │ │ ├── ngx_shmtx.c │ │ ├── ngx_shmtx.h │ │ ├── ngx_slab.c │ │ ├── ngx_slab.h │ │ ├── ngx_spinlock.c │ │ ├── ngx_string.c │ │ ├── ngx_string.h │ │ ├── ngx_syslog.c │ │ ├── ngx_syslog.h │ │ ├── ngx_thread_pool.c │ │ ├── ngx_thread_pool.h │ │ ├── ngx_times.c │ │ └── ngx_times.h │ │ ├── event │ │ ├── modules │ │ │ ├── ngx_devpoll_module.c │ │ │ ├── ngx_epoll_module.c │ │ │ ├── ngx_eventport_module.c │ │ │ ├── ngx_kqueue_module.c │ │ │ ├── ngx_poll_module.c │ │ │ ├── ngx_select_module.c │ │ │ ├── ngx_win32_poll_module.c │ │ │ └── ngx_win32_select_module.c │ │ ├── ngx_event.c │ │ ├── ngx_event.h │ │ ├── ngx_event_accept.c │ │ ├── ngx_event_connect.c │ │ ├── ngx_event_connect.h │ │ ├── ngx_event_openssl.c │ │ ├── ngx_event_openssl.h │ │ ├── ngx_event_openssl_stapling.c │ │ ├── ngx_event_pipe.c │ │ ├── ngx_event_pipe.h │ │ ├── ngx_event_posted.c │ │ ├── ngx_event_posted.h │ │ ├── ngx_event_timer.c │ │ ├── ngx_event_timer.h │ │ └── ngx_event_udp.c │ │ ├── http │ │ ├── modules │ │ │ ├── ngx_http_access_module.c │ │ │ ├── ngx_http_addition_filter_module.c │ │ │ ├── ngx_http_auth_basic_module.c │ │ │ ├── ngx_http_auth_request_module.c │ │ │ ├── ngx_http_autoindex_module.c │ │ │ ├── ngx_http_browser_module.c │ │ │ ├── ngx_http_charset_filter_module.c │ │ │ ├── ngx_http_chunked_filter_module.c │ │ │ ├── ngx_http_dav_module.c │ │ │ ├── ngx_http_degradation_module.c │ │ │ ├── ngx_http_empty_gif_module.c │ │ │ ├── ngx_http_fastcgi_module.c │ │ │ ├── ngx_http_flv_module.c │ │ │ ├── ngx_http_geo_module.c │ │ │ ├── ngx_http_geoip_module.c │ │ │ ├── ngx_http_grpc_module.c │ │ │ ├── ngx_http_gunzip_filter_module.c │ │ │ ├── ngx_http_gzip_filter_module.c │ │ │ ├── ngx_http_gzip_static_module.c │ │ │ ├── ngx_http_headers_filter_module.c │ │ │ ├── ngx_http_image_filter_module.c │ │ │ ├── ngx_http_index_module.c │ │ │ ├── ngx_http_limit_conn_module.c │ │ │ ├── ngx_http_limit_req_module.c │ │ │ ├── ngx_http_log_module.c │ │ │ ├── ngx_http_map_module.c │ │ │ ├── ngx_http_memcached_module.c │ │ │ ├── ngx_http_mirror_module.c │ │ │ ├── ngx_http_mp4_module.c │ │ │ ├── ngx_http_not_modified_filter_module.c │ │ │ ├── ngx_http_proxy_module.c │ │ │ ├── ngx_http_random_index_module.c │ │ │ ├── ngx_http_range_filter_module.c │ │ │ ├── ngx_http_realip_module.c │ │ │ ├── ngx_http_referer_module.c │ │ │ ├── ngx_http_rewrite_module.c │ │ │ ├── ngx_http_scgi_module.c │ │ │ ├── ngx_http_secure_link_module.c │ │ │ ├── ngx_http_slice_filter_module.c │ │ │ ├── ngx_http_split_clients_module.c │ │ │ ├── ngx_http_ssi_filter_module.c │ │ │ ├── ngx_http_ssi_filter_module.h │ │ │ ├── ngx_http_ssl_module.c │ │ │ ├── ngx_http_ssl_module.h │ │ │ ├── ngx_http_static_module.c │ │ │ ├── ngx_http_stub_status_module.c │ │ │ ├── ngx_http_sub_filter_module.c │ │ │ ├── ngx_http_try_files_module.c │ │ │ ├── ngx_http_upstream_hash_module.c │ │ │ ├── ngx_http_upstream_ip_hash_module.c │ │ │ ├── ngx_http_upstream_keepalive_module.c │ │ │ ├── ngx_http_upstream_least_conn_module.c │ │ │ ├── ngx_http_upstream_random_module.c │ │ │ ├── ngx_http_upstream_zone_module.c │ │ │ ├── ngx_http_userid_filter_module.c │ │ │ ├── ngx_http_uwsgi_module.c │ │ │ ├── ngx_http_xslt_filter_module.c │ │ │ └── perl │ │ │ │ ├── Makefile.PL │ │ │ │ ├── nginx.pm │ │ │ │ ├── nginx.xs │ │ │ │ ├── ngx_http_perl_module.c │ │ │ │ ├── ngx_http_perl_module.h │ │ │ │ └── typemap │ │ ├── ngx_http.c │ │ ├── ngx_http.h │ │ ├── ngx_http_cache.h │ │ ├── ngx_http_config.h │ │ ├── ngx_http_copy_filter_module.c │ │ ├── ngx_http_core_module.c │ │ ├── ngx_http_core_module.h │ │ ├── ngx_http_file_cache.c │ │ ├── ngx_http_header_filter_module.c │ │ ├── ngx_http_parse.c │ │ ├── ngx_http_postpone_filter_module.c │ │ ├── ngx_http_request.c │ │ ├── ngx_http_request.h │ │ ├── ngx_http_request_body.c │ │ ├── ngx_http_script.c │ │ ├── ngx_http_script.h │ │ ├── ngx_http_special_response.c │ │ ├── ngx_http_upstream.c │ │ ├── ngx_http_upstream.h │ │ ├── ngx_http_upstream_round_robin.c │ │ ├── ngx_http_upstream_round_robin.h │ │ ├── ngx_http_variables.c │ │ ├── ngx_http_variables.h │ │ ├── ngx_http_write_filter_module.c │ │ └── v2 │ │ │ ├── ngx_http_v2.c │ │ │ ├── ngx_http_v2.h │ │ │ ├── ngx_http_v2_encode.c │ │ │ ├── ngx_http_v2_filter_module.c │ │ │ ├── ngx_http_v2_huff_decode.c │ │ │ ├── ngx_http_v2_huff_encode.c │ │ │ ├── ngx_http_v2_module.c │ │ │ ├── ngx_http_v2_module.h │ │ │ └── ngx_http_v2_table.c │ │ ├── mail │ │ ├── ngx_mail.c │ │ ├── ngx_mail.h │ │ ├── ngx_mail_auth_http_module.c │ │ ├── ngx_mail_core_module.c │ │ ├── ngx_mail_handler.c │ │ ├── ngx_mail_imap_handler.c │ │ ├── ngx_mail_imap_module.c │ │ ├── ngx_mail_imap_module.h │ │ ├── ngx_mail_parse.c │ │ ├── ngx_mail_pop3_handler.c │ │ ├── ngx_mail_pop3_module.c │ │ ├── ngx_mail_pop3_module.h │ │ ├── ngx_mail_proxy_module.c │ │ ├── ngx_mail_smtp_handler.c │ │ ├── ngx_mail_smtp_module.c │ │ ├── ngx_mail_smtp_module.h │ │ ├── ngx_mail_ssl_module.c │ │ └── ngx_mail_ssl_module.h │ │ ├── misc │ │ ├── ngx_cpp_test_module.cpp │ │ └── ngx_google_perftools_module.c │ │ ├── os │ │ └── unix │ │ │ ├── ngx_alloc.c │ │ │ ├── ngx_alloc.h │ │ │ ├── ngx_atomic.h │ │ │ ├── ngx_channel.c │ │ │ ├── ngx_channel.h │ │ │ ├── ngx_daemon.c │ │ │ ├── ngx_darwin.h │ │ │ ├── ngx_darwin_config.h │ │ │ ├── ngx_darwin_init.c │ │ │ ├── ngx_darwin_sendfile_chain.c │ │ │ ├── ngx_dlopen.c │ │ │ ├── ngx_dlopen.h │ │ │ ├── ngx_errno.c │ │ │ ├── ngx_errno.h │ │ │ ├── ngx_file_aio_read.c │ │ │ ├── ngx_files.c │ │ │ ├── ngx_files.h │ │ │ ├── ngx_freebsd.h │ │ │ ├── ngx_freebsd_config.h │ │ │ ├── ngx_freebsd_init.c │ │ │ ├── ngx_freebsd_sendfile_chain.c │ │ │ ├── ngx_gcc_atomic_amd64.h │ │ │ ├── ngx_gcc_atomic_ppc.h │ │ │ ├── ngx_gcc_atomic_sparc64.h │ │ │ ├── ngx_gcc_atomic_x86.h │ │ │ ├── ngx_linux.h │ │ │ ├── ngx_linux_aio_read.c │ │ │ ├── ngx_linux_config.h │ │ │ ├── ngx_linux_init.c │ │ │ ├── ngx_linux_sendfile_chain.c │ │ │ ├── ngx_os.h │ │ │ ├── ngx_posix_config.h │ │ │ ├── ngx_posix_init.c │ │ │ ├── ngx_process.c │ │ │ ├── ngx_process.h │ │ │ ├── ngx_process_cycle.c │ │ │ ├── ngx_process_cycle.h │ │ │ ├── ngx_readv_chain.c │ │ │ ├── ngx_recv.c │ │ │ ├── ngx_send.c │ │ │ ├── ngx_setaffinity.c │ │ │ ├── ngx_setaffinity.h │ │ │ ├── ngx_setproctitle.c │ │ │ ├── ngx_setproctitle.h │ │ │ ├── ngx_shmem.c │ │ │ ├── ngx_shmem.h │ │ │ ├── ngx_socket.c │ │ │ ├── ngx_socket.h │ │ │ ├── ngx_solaris.h │ │ │ ├── ngx_solaris_config.h │ │ │ ├── ngx_solaris_init.c │ │ │ ├── ngx_solaris_sendfilev_chain.c │ │ │ ├── ngx_sunpro_amd64.il │ │ │ ├── ngx_sunpro_atomic_sparc64.h │ │ │ ├── ngx_sunpro_sparc64.il │ │ │ ├── ngx_sunpro_x86.il │ │ │ ├── ngx_thread.h │ │ │ ├── ngx_thread_cond.c │ │ │ ├── ngx_thread_id.c │ │ │ ├── ngx_thread_mutex.c │ │ │ ├── ngx_time.c │ │ │ ├── ngx_time.h │ │ │ ├── ngx_udp_recv.c │ │ │ ├── ngx_udp_send.c │ │ │ ├── ngx_udp_sendmsg_chain.c │ │ │ ├── ngx_user.c │ │ │ ├── ngx_user.h │ │ │ └── ngx_writev_chain.c │ │ └── stream │ │ ├── ngx_stream.c │ │ ├── ngx_stream.h │ │ ├── ngx_stream_access_module.c │ │ ├── ngx_stream_core_module.c │ │ ├── ngx_stream_geo_module.c │ │ ├── ngx_stream_geoip_module.c │ │ ├── ngx_stream_handler.c │ │ ├── ngx_stream_limit_conn_module.c │ │ ├── ngx_stream_log_module.c │ │ ├── ngx_stream_map_module.c │ │ ├── ngx_stream_proxy_module.c │ │ ├── ngx_stream_realip_module.c │ │ ├── ngx_stream_return_module.c │ │ ├── ngx_stream_script.c │ │ ├── ngx_stream_script.h │ │ ├── ngx_stream_split_clients_module.c │ │ ├── ngx_stream_ssl_module.c │ │ ├── ngx_stream_ssl_module.h │ │ ├── ngx_stream_ssl_preread_module.c │ │ ├── ngx_stream_upstream.c │ │ ├── ngx_stream_upstream.h │ │ ├── ngx_stream_upstream_hash_module.c │ │ ├── ngx_stream_upstream_least_conn_module.c │ │ ├── ngx_stream_upstream_random_module.c │ │ ├── ngx_stream_upstream_round_robin.c │ │ ├── ngx_stream_upstream_round_robin.h │ │ ├── ngx_stream_upstream_zone_module.c │ │ ├── ngx_stream_variables.c │ │ ├── ngx_stream_variables.h │ │ └── ngx_stream_write_filter_module.c ├── ngx_http_geoip2_module-1.0 │ ├── LICENSE │ ├── README.md │ ├── config │ └── ngx_http_geoip2_module.c └── zlib-1.2.8 │ ├── .gitignore │ ├── CMakeLists.txt │ ├── ChangeLog │ ├── FAQ │ ├── INDEX │ ├── Makefile │ ├── Makefile.in │ ├── README │ ├── adler32.c │ ├── amiga │ ├── Makefile.pup │ └── Makefile.sas │ ├── as400 │ ├── bndsrc │ ├── compile.clp │ ├── readme.txt │ └── zlib.inc │ ├── compress.c │ ├── configure │ ├── contrib │ ├── README.contrib │ ├── ada │ │ ├── buffer_demo.adb │ │ ├── mtest.adb │ │ ├── read.adb │ │ ├── readme.txt │ │ ├── test.adb │ │ ├── zlib-streams.adb │ │ ├── zlib-streams.ads │ │ ├── zlib-thin.adb │ │ ├── zlib-thin.ads │ │ ├── zlib.adb │ │ ├── zlib.ads │ │ └── zlib.gpr │ ├── amd64 │ │ └── amd64-match.S │ ├── asm686 │ │ ├── README.686 │ │ └── match.S │ ├── blast │ │ ├── Makefile │ │ ├── README │ │ ├── blast.c │ │ ├── blast.h │ │ ├── test.pk │ │ └── test.txt │ ├── delphi │ │ ├── ZLib.pas │ │ ├── ZLibConst.pas │ │ ├── readme.txt │ │ └── zlibd32.mak │ ├── dotzlib │ │ ├── DotZLib.build │ │ ├── DotZLib.chm │ │ ├── DotZLib.sln │ │ ├── DotZLib │ │ │ ├── AssemblyInfo.cs │ │ │ ├── ChecksumImpl.cs │ │ │ ├── CircularBuffer.cs │ │ │ ├── CodecBase.cs │ │ │ ├── Deflater.cs │ │ │ ├── DotZLib.cs │ │ │ ├── DotZLib.csproj │ │ │ ├── GZipStream.cs │ │ │ ├── Inflater.cs │ │ │ └── UnitTests.cs │ │ ├── LICENSE_1_0.txt │ │ └── readme.txt │ ├── gcc_gvmat64 │ │ └── gvmat64.S │ ├── infback9 │ │ ├── README │ │ ├── infback9.c │ │ ├── infback9.h │ │ ├── inffix9.h │ │ ├── inflate9.h │ │ ├── inftree9.c │ │ └── inftree9.h │ ├── inflate86 │ │ ├── inffas86.c │ │ └── inffast.S │ ├── iostream │ │ ├── test.cpp │ │ ├── zfstream.cpp │ │ └── zfstream.h │ ├── iostream2 │ │ ├── zstream.h │ │ └── zstream_test.cpp │ ├── iostream3 │ │ ├── README │ │ ├── TODO │ │ ├── test.cc │ │ ├── zfstream.cc │ │ └── zfstream.h │ ├── masmx64 │ │ ├── bld_ml64.bat │ │ ├── gvmat64.asm │ │ ├── inffas8664.c │ │ ├── inffasx64.asm │ │ └── readme.txt │ ├── masmx86 │ │ ├── bld_ml32.bat │ │ ├── inffas32.asm │ │ ├── match686.asm │ │ └── readme.txt │ ├── minizip │ │ ├── Makefile │ │ ├── Makefile.am │ │ ├── MiniZip64_Changes.txt │ │ ├── MiniZip64_info.txt │ │ ├── configure.ac │ │ ├── crypt.h │ │ ├── ioapi.c │ │ ├── ioapi.h │ │ ├── iowin32.c │ │ ├── iowin32.h │ │ ├── make_vms.com │ │ ├── miniunz.c │ │ ├── miniunzip.1 │ │ ├── minizip.1 │ │ ├── minizip.c │ │ ├── minizip.pc.in │ │ ├── mztools.c │ │ ├── mztools.h │ │ ├── unzip.c │ │ ├── unzip.h │ │ ├── zip.c │ │ └── zip.h │ ├── pascal │ │ ├── example.pas │ │ ├── readme.txt │ │ ├── zlibd32.mak │ │ └── zlibpas.pas │ ├── puff │ │ ├── Makefile │ │ ├── README │ │ ├── puff.c │ │ ├── puff.h │ │ ├── pufftest.c │ │ └── zeros.raw │ ├── testzlib │ │ ├── testzlib.c │ │ └── testzlib.txt │ ├── untgz │ │ ├── Makefile │ │ ├── Makefile.msc │ │ └── untgz.c │ └── vstudio │ │ ├── readme.txt │ │ ├── vc10 │ │ ├── miniunz.vcxproj │ │ ├── miniunz.vcxproj.filters │ │ ├── minizip.vcxproj │ │ ├── minizip.vcxproj.filters │ │ ├── testzlib.vcxproj │ │ ├── testzlib.vcxproj.filters │ │ ├── testzlibdll.vcxproj │ │ ├── testzlibdll.vcxproj.filters │ │ ├── zlib.rc │ │ ├── zlibstat.vcxproj │ │ ├── zlibstat.vcxproj.filters │ │ ├── zlibvc.def │ │ ├── zlibvc.sln │ │ ├── zlibvc.vcxproj │ │ └── zlibvc.vcxproj.filters │ │ ├── vc11 │ │ ├── miniunz.vcxproj │ │ ├── minizip.vcxproj │ │ ├── testzlib.vcxproj │ │ ├── testzlibdll.vcxproj │ │ ├── zlib.rc │ │ ├── zlibstat.vcxproj │ │ ├── zlibvc.def │ │ ├── zlibvc.sln │ │ └── zlibvc.vcxproj │ │ └── vc9 │ │ ├── miniunz.vcproj │ │ ├── minizip.vcproj │ │ ├── testzlib.vcproj │ │ ├── testzlibdll.vcproj │ │ ├── zlib.rc │ │ ├── zlibstat.vcproj │ │ ├── zlibvc.def │ │ ├── zlibvc.sln │ │ └── zlibvc.vcproj │ ├── crc32.c │ ├── crc32.h │ ├── deflate.c │ ├── deflate.h │ ├── doc │ ├── algorithm.txt │ ├── rfc1950.txt │ ├── rfc1951.txt │ ├── rfc1952.txt │ └── txtvsbin.txt │ ├── examples │ ├── README.examples │ ├── enough.c │ ├── fitblk.c │ ├── gun.c │ ├── gzappend.c │ ├── gzjoin.c │ ├── gzlog.c │ ├── gzlog.h │ ├── zlib_how.html │ ├── zpipe.c │ └── zran.c │ ├── gzclose.c │ ├── gzguts.h │ ├── gzlib.c │ ├── gzread.c │ ├── gzwrite.c │ ├── infback.c │ ├── inffast.c │ ├── inffast.h │ ├── inffixed.h │ ├── inflate.c │ ├── inflate.h │ ├── inftrees.c │ ├── inftrees.h │ ├── make_vms.com │ ├── msdos │ ├── Makefile.bor │ ├── Makefile.dj2 │ ├── Makefile.emx │ ├── Makefile.msc │ └── Makefile.tc │ ├── nintendods │ ├── Makefile │ └── README │ ├── old │ ├── Makefile.emx │ ├── Makefile.riscos │ ├── README │ ├── descrip.mms │ ├── os2 │ │ ├── Makefile.os2 │ │ └── zlib.def │ └── visual-basic.txt │ ├── qnx │ └── package.qpg │ ├── test │ ├── example.c │ ├── infcover.c │ └── minigzip.c │ ├── treebuild.xml │ ├── trees.c │ ├── trees.h │ ├── uncompr.c │ ├── watcom │ ├── watcom_f.mak │ └── watcom_l.mak │ ├── win32 │ ├── DLL_FAQ.txt │ ├── Makefile.bor │ ├── Makefile.gcc │ ├── Makefile.msc │ ├── README-WIN32.txt │ ├── VisualC.txt │ ├── zlib.def │ └── zlib1.rc │ ├── zconf.h │ ├── zconf.h.cmakein │ ├── zconf.h.in │ ├── zlib.3 │ ├── zlib.3.pdf │ ├── zlib.h │ ├── zlib.map │ ├── zlib.pc.cmakein │ ├── zlib.pc.in │ ├── zlib2ansi │ ├── zutil.c │ └── zutil.h ├── nginx-http2 ├── Dockerfile └── nginx.conf ├── nginx-rtmp ├── Dockerfile └── conf │ └── nginx.conf ├── nginx ├── Dockerfile └── nginx.conf ├── pg ├── Dockerfile ├── README.md └── start ├── powerdns ├── Dockerfile ├── pdns.local.conf └── pdns.local.gmysql.conf ├── rails ├── 6 │ └── Dockerfile ├── 7 │ └── Dockerfile ├── 8 │ └── Dockerfile └── README.md ├── redis └── Dockerfile ├── renovate.json ├── rsyslog ├── Dockerfile └── etc │ └── rsyslog.conf ├── swarm ├── Dockerfile ├── ca-certificates.crt └── swarm_linux_amd64 └── vault ├── Dockerfile └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Joshua Delsman 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Collection of my `Dockerfile` for many open-source projects. Please don't hesitate to [open an issue](https://github.com/voxxit/dockerfiles/issues/new) if you find any problems with them! Similarly, please feel free to offer contributions in form of improvements or suggestions via a [pull request](https://github.com/voxxit/dockerfiles/pull/new/master)! 2 | 3 | ## Star History 4 | 5 | [![Star History Chart](https://api.star-history.com/svg?repos=voxxit/dockerfiles&type=Date)](https://www.star-history.com/#voxxit/dockerfiles&Date) 6 | -------------------------------------------------------------------------------- /apt-mirror/.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | docker-compose.yml 3 | resources/nginx/sites-enabled/apt-mirror.conf 4 | -------------------------------------------------------------------------------- /apt-mirror/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.21 2 | 3 | RUN apk add --no-cache bash perl gettext wget ca-certificates unzip \ 4 | && mkdir -p /usr/src \ 5 | && cd /usr/src \ 6 | && wget https://github.com/apt-mirror/apt-mirror/archive/master.zip \ 7 | && unzip master.zip \ 8 | && install -m 755 -D apt-mirror-master/apt-mirror /usr/local/bin/apt-mirror \ 9 | && rm -rf apt-mirror* master.zip 10 | 11 | ENV BASE_PATH /var/spool/apt-mirror 12 | ENV MIRROR_PATH ${BASE_PATH}/mirror 13 | ENV SKEL_PATH ${BASE_PATH}/skel 14 | ENV VAR_PATH ${BASE_PATH}/var 15 | ENV POSTMIRROR_SCRIPT ${VAR_PATH}/post-mirror.sh 16 | ENV RUN_POSTMIRROR 1 17 | ENV NTHREADS 20 18 | ENV TILDE 0 19 | ENV UNLINK 1 20 | ENV USE_PROXY off 21 | ENV HTTP_PROXY 127.0.0.1:3126 22 | ENV PROXY_USER user 23 | ENV PROXY_PASSWORD password 24 | 25 | # Can be http or ftp 26 | ENV MIRROR_PROTO http 27 | 28 | # Choose a local mirror containing _both_ distros (see below) 29 | ENV MIRROR_HOST archive.ubuntu.com 30 | 31 | # Space-separated list of... 32 | ENV MIRROR_DISTROS "ubuntu" 33 | ENV MIRROR_FLAVORS "trusty" 34 | ENV MIRROR_BRANCHES "security updates proposed backports" 35 | ENV MIRROR_COMPONENTS "main restricted universe multiverse" 36 | 37 | ENV MIRROR_LIMIT_RATE 10m 38 | 39 | # How long to sleep for until the next mirror 40 | ENV SLEEP_SECS 3600 41 | 42 | VOLUME ["${BASE_PATH}"] 43 | 44 | COPY ./resources/apt/mirror.list.template /etc/apt/ 45 | COPY ./resources/apt/post-mirror.sh ${VAR_PATH}/ 46 | COPY ./resources/docker-entrypoint.sh /docker-entrypoint.sh 47 | 48 | ENTRYPOINT ["/docker-entrypoint.sh"] 49 | -------------------------------------------------------------------------------- /apt-mirror/docker-compose.yml.example: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | mirror: 4 | build: . 5 | env_file: .env 6 | volumes: 7 | - ~/mirror:/var/spool/apt-mirror 8 | restart: always 9 | 10 | web: 11 | image: nginx:stable 12 | command: /bin/bash -c "envsubst < /etc/nginx/conf.d/apt-mirror.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'" 13 | volumes: 14 | - ~/mirror:/var/spool/apt-mirror 15 | - ./resources/nginx/sites-enabled/apt-mirror.conf:/etc/nginx/conf.d/apt-mirror.template 16 | ports: 17 | - "8080:80" 18 | links: 19 | - mirror 20 | depends_on: 21 | - mirror 22 | restart: always 23 | env_file: .env 24 | -------------------------------------------------------------------------------- /apt-mirror/resources/apt/mirror.list.template: -------------------------------------------------------------------------------- 1 | set base_path ${BASE_PATH} 2 | set mirror_path ${MIRROR_PATH} 3 | set skel_path ${SKEL_PATH} 4 | set var_path ${VAR_PATH} 5 | set defaultarch ${DEFAULTARCH} 6 | 7 | # Post-mirror script - runs after mirroring; useful for rsync, etc. 8 | set postmirror_script ${POSTMIRROR_SCRIPT} 9 | set run_postmirror ${RUN_POSTMIRROR} 10 | 11 | # How many threads you want, and whether or not to run in the home directory 12 | set nthreads ${NTHREADS} 13 | set _tilde ${TILDE} 14 | 15 | # Use --unlink with wget (for use with hardlinked directories) 16 | set unlink ${UNLINK} 17 | 18 | set limit_rate ${MIRROR_LIMIT_RATE} 19 | 20 | # Proxy settings 21 | set use_proxy ${USE_PROXY} 22 | set http_proxy ${HTTP_PROXY} 23 | set proxy_user ${PROXY_USER} 24 | set proxy_password ${PROXY_PASSWORD} 25 | -------------------------------------------------------------------------------- /apt-mirror/resources/apt/post-mirror.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | ## Anything in this file gets run AFTER the mirror has been run... 4 | ## 5 | ## Put your custom post-mirror operations in here, e.g: 6 | ## 7 | ## - rsync'ing the installer files 8 | ## - running clean.sh automatically 9 | 10 | #rsync \ 11 | # --recursive \ 12 | # --times \ 13 | # --links \ 14 | # --hard-links \ 15 | # --delete \ 16 | # --delete-after \ 17 | # rsync://... 18 | exec /var/spool/apt-mirror/var/clean.sh 19 | -------------------------------------------------------------------------------- /apt-mirror/resources/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | list="/etc/apt/mirror.list" 4 | 5 | export DEFAULTARCH=${DEFAULTARCH:-amd64} 6 | 7 | envsubst < ${list}.template > ${list} 8 | 9 | # Environment variables; helps build the /etc/apt/mirrors.list sources for you... 10 | declare -a distros=(${MIRROR_DISTROS}) 11 | declare -a flavors=(${MIRROR_FLAVORS}) 12 | declare -a branches=(${MIRROR_BRANCHES}) 13 | 14 | for distro in "${distros[@]}"; do 15 | for flavor in "${flavors[@]}"; do 16 | echo "deb ${MIRROR_PROTO}://${MIRROR_HOST}/${distro} ${flavor} ${MIRROR_COMPONENTS}" | tee -a ${list} 17 | 18 | if [ ! -z ${MIRROR_INCLUDE_SOURCE} ]; then 19 | echo "deb-src ${MIRROR_PROTO}://${MIRROR_HOST}/${distro} ${flavor} ${MIRROR_COMPONENTS}" | tee -a ${list} 20 | fi 21 | 22 | for branch in "${branches[@]}"; do 23 | echo "deb ${MIRROR_PROTO}://${MIRROR_HOST}/${distro} ${flavor}-${branch} ${MIRROR_COMPONENTS}" | tee -a ${list} 24 | 25 | if [ ! -z ${MIRROR_INCLUDE_SOURCE} ]; then 26 | echo "deb-src ${MIRROR_PROTO}://${MIRROR_HOST}/${distro} ${flavor}-${branch} ${MIRROR_COMPONENTS}" | tee -a ${list} 27 | fi 28 | done 29 | done 30 | 31 | echo "clean ${MIRROR_PROTO}://${MIRROR_HOST}/${distro}" | tee -a ${list} 32 | done 33 | 34 | while true; do 35 | /usr/local/bin/apt-mirror 36 | echo "Sleeping for ${SLEEP_SECS}..." 37 | sleep ${SLEEP_SECS} 38 | done 39 | -------------------------------------------------------------------------------- /apt-mirror/resources/nginx/sites-enabled/apt-mirror.conf.example: -------------------------------------------------------------------------------- 1 | limit_req_zone $$binary_remote_addr zone=one:10m rate=1r/s; 2 | 3 | server { 4 | listen 80; 5 | 6 | autoindex on; 7 | gzip on; 8 | 9 | access_log ${NGINX_LOGDIR}/access.log; 10 | error_log ${NGINX_LOGDIR}/error.log; 11 | 12 | server_name_in_redirect off; 13 | 14 | root ${MIRROR_PATH}/${MIRROR_HOST}/; 15 | 16 | location /ubuntu/ { 17 | limit_req zone=one burst=5 nodelay; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /bind/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxxit/dockerfiles/452801e6e20de7ebe7f95f38840937c0dc4e4f6f/bind/.gitignore -------------------------------------------------------------------------------- /bind/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.21 2 | 3 | RUN apk add --no-cache bind bind-doc bind-tools 4 | 5 | COPY etc/bind/ /etc/bind/ 6 | COPY entrypoint.sh /sbin/entrypoint.sh 7 | 8 | EXPOSE 53/tcp 53/udp 9 | 10 | VOLUME ["/data"] 11 | 12 | ENTRYPOINT ["/sbin/entrypoint.sh"] 13 | CMD ["/usr/sbin/named", "-f", "-g"] 14 | -------------------------------------------------------------------------------- /bind/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | BIND_USER=${BIND_USER:-named} 5 | BIND_DATA_DIR=${BIND_DATA_DIR:-/data} 6 | 7 | create_bind_data_dir() { 8 | mkdir -p ${BIND_DATA_DIR} 9 | chmod -R 0755 ${BIND_DATA_DIR} 10 | chown -R root:${BIND_USER} ${BIND_DATA_DIR} 11 | 12 | # populate default bind configuration if it does not exist 13 | if [ ! -d ${BIND_DATA_DIR}/etc ]; then 14 | mv /etc/bind ${BIND_DATA_DIR}/etc 15 | fi 16 | 17 | rm -rf /etc/bind 18 | ln -sf ${BIND_DATA_DIR}/etc /etc/bind 19 | 20 | if [ ! -d ${BIND_DATA_DIR}/lib ]; then 21 | mkdir -p ${BIND_DATA_DIR}/lib 22 | chown root:${BIND_USER} ${BIND_DATA_DIR}/lib 23 | fi 24 | 25 | rm -rf /var/lib/bind 26 | ln -sf ${BIND_DATA_DIR}/lib /var/lib/bind 27 | } 28 | 29 | create_pid_dir() { 30 | mkdir -p /var/run/named 31 | chown root:${BIND_USER} /var/run/named 32 | } 33 | 34 | create_bind_cache_dir() { 35 | mkdir -p /var/cache/bind 36 | chown root:${BIND_USER} /var/cache/bind 37 | } 38 | 39 | create_pid_dir 40 | create_bind_data_dir 41 | create_bind_cache_dir 42 | 43 | # allow arguments to be passed to named 44 | if [[ ${1:0:1} = '-' ]]; then 45 | EXTRA_ARGS="$@" 46 | set -- 47 | elif [[ ${1} == named || ${1} == $(which named) ]]; then 48 | EXTRA_ARGS="${@:2}" 49 | set -- 50 | fi 51 | 52 | # default behaviour is to launch named 53 | if [[ -z ${1} ]]; then 54 | echo "Starting named..." 55 | exec $(which named) -u ${BIND_USER} -f -g -4 ${EXTRA_ARGS} 56 | else 57 | exec "$@" 58 | fi 59 | -------------------------------------------------------------------------------- /bind/etc/bind/db.0: -------------------------------------------------------------------------------- 1 | ; 2 | ; BIND reverse data file for broadcast zone 3 | ; 4 | $TTL 604800 5 | @ IN SOA localhost. root.localhost. ( 6 | 1 ; Serial 7 | 604800 ; Refresh 8 | 86400 ; Retry 9 | 2419200 ; Expire 10 | 604800 ) ; Negative Cache TTL 11 | ; 12 | @ IN NS localhost. 13 | -------------------------------------------------------------------------------- /bind/etc/bind/db.127: -------------------------------------------------------------------------------- 1 | ; 2 | ; BIND reverse data file for local loopback interface 3 | ; 4 | $TTL 604800 5 | @ IN SOA localhost. root.localhost. ( 6 | 1 ; Serial 7 | 604800 ; Refresh 8 | 86400 ; Retry 9 | 2419200 ; Expire 10 | 604800 ) ; Negative Cache TTL 11 | ; 12 | @ IN NS localhost. 13 | 1.0.0 IN PTR localhost. 14 | -------------------------------------------------------------------------------- /bind/etc/bind/db.255: -------------------------------------------------------------------------------- 1 | ; 2 | ; BIND reverse data file for broadcast zone 3 | ; 4 | $TTL 604800 5 | @ IN SOA localhost. root.localhost. ( 6 | 1 ; Serial 7 | 604800 ; Refresh 8 | 86400 ; Retry 9 | 2419200 ; Expire 10 | 604800 ) ; Negative Cache TTL 11 | ; 12 | @ IN NS localhost. 13 | -------------------------------------------------------------------------------- /bind/etc/bind/db.empty: -------------------------------------------------------------------------------- 1 | ; BIND reverse data file for empty rfc1918 zone 2 | ; 3 | ; DO NOT EDIT THIS FILE - it is used for multiple zones. 4 | ; Instead, copy it, edit named.conf, and use that copy. 5 | ; 6 | $TTL 86400 7 | @ IN SOA localhost. root.localhost. ( 8 | 1 ; Serial 9 | 604800 ; Refresh 10 | 86400 ; Retry 11 | 2419200 ; Expire 12 | 86400 ) ; Negative Cache TTL 13 | ; 14 | @ IN NS localhost. 15 | -------------------------------------------------------------------------------- /bind/etc/bind/db.local: -------------------------------------------------------------------------------- 1 | ; 2 | ; BIND data file for local loopback interface 3 | ; 4 | $TTL 604800 5 | @ IN SOA localhost. root.localhost. ( 6 | 1 ; Serial 7 | 604800 ; Refresh 8 | 86400 ; Retry 9 | 2419200 ; Expire 10 | 604800 ) ; Negative Cache TTL 11 | ; 12 | @ IN NS localhost. 13 | @ IN A 127.0.0.1 14 | @ IN AAAA ::1 15 | -------------------------------------------------------------------------------- /bind/etc/bind/named.conf: -------------------------------------------------------------------------------- 1 | // This is the primary configuration file for the BIND DNS server named. 2 | // 3 | // Please read /usr/share/doc/bind9/README.Debian.gz for information on the 4 | // structure of BIND configuration files in Debian, *BEFORE* you customize 5 | // this configuration file. 6 | // 7 | // If you are just adding zones, please do that in /etc/bind/named.conf.local 8 | 9 | include "/etc/bind/named.conf.options"; 10 | include "/etc/bind/named.conf.local"; 11 | include "/etc/bind/named.conf.default-zones"; 12 | -------------------------------------------------------------------------------- /bind/etc/bind/named.conf.default-zones: -------------------------------------------------------------------------------- 1 | // prime the server with knowledge of the root servers 2 | zone "." { 3 | type hint; 4 | file "/etc/bind/db.root"; 5 | }; 6 | 7 | // be authoritative for the localhost forward and reverse zones, and for 8 | // broadcast zones as per RFC 1912 9 | 10 | zone "localhost" { 11 | type master; 12 | file "/etc/bind/db.local"; 13 | }; 14 | 15 | zone "127.in-addr.arpa" { 16 | type master; 17 | file "/etc/bind/db.127"; 18 | }; 19 | 20 | zone "0.in-addr.arpa" { 21 | type master; 22 | file "/etc/bind/db.0"; 23 | }; 24 | 25 | zone "255.in-addr.arpa" { 26 | type master; 27 | file "/etc/bind/db.255"; 28 | }; 29 | 30 | // Consider adding the 1918 zones here, if they are not used in your organization 31 | include "/etc/bind/zones.rfc1918"; 32 | -------------------------------------------------------------------------------- /bind/etc/bind/named.conf.local: -------------------------------------------------------------------------------- 1 | // 2 | // Local DNS configuration 3 | // 4 | -------------------------------------------------------------------------------- /bind/etc/bind/zones.rfc1918: -------------------------------------------------------------------------------- 1 | zone "10.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 2 | 3 | zone "16.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 4 | zone "17.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 5 | zone "18.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 6 | zone "19.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 7 | zone "20.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 8 | zone "21.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 9 | zone "22.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 10 | zone "23.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 11 | zone "24.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 12 | zone "25.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 13 | zone "26.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 14 | zone "27.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 15 | zone "28.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 16 | zone "29.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 17 | zone "30.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 18 | zone "31.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 19 | 20 | zone "168.192.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; 21 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if [ -z "$1" ]; then 6 | echo "Usage: $0 " 7 | exit 1 8 | fi 9 | 10 | if ! command -v docker > /dev/null; then 11 | echo "Docker is not installed!" 12 | exit 1 13 | fi 14 | 15 | if ! docker buildx ls | grep -q buildkite-builder > /dev/null; then 16 | echo "Creating buildx builder ..." 17 | 18 | docker buildx create \ 19 | --use \ 20 | --name=buildkite-builder \ 21 | --driver=docker-container 22 | fi 23 | 24 | cachedir="/tmp/.buildx-cache" 25 | context="$1" 26 | bname=$(basename "$context") 27 | image="voxxit/$bname:latest" 28 | 29 | echo 30 | echo "----------------------------------------" 31 | echo "🏗 $image" 32 | echo 33 | 34 | if ! docker buildx build \ 35 | --pull \ 36 | --progress=plain \ 37 | --push \ 38 | --tag "$image" \ 39 | --cache-to type=local,dest="$cachedir" \ 40 | --cache-from type=local,src="$cachedir" \ 41 | "$context" 42 | then 43 | echo "🚨 $image failed to build! 🚨" 44 | exit 1 45 | fi 46 | 47 | echo 48 | echo "✅ $image built successfully! ✅" 49 | echo 50 | -------------------------------------------------------------------------------- /consul/.gitignore: -------------------------------------------------------------------------------- 1 | docker-compose.yml 2 | -------------------------------------------------------------------------------- /consul/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:edge 2 | 3 | ENV CONSUL_VERSION 0.6.4 4 | 5 | RUN apk add --no-cache wget ca-certificates \ 6 | && wget https://releases.hashicorp.com/consul/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_linux_amd64.zip \ 7 | && unzip consul_${CONSUL_VERSION}_linux_amd64.zip \ 8 | && mv consul /bin/ \ 9 | && rm -rf consul_${CONSUL_VERSION}_linux_amd64.zip \ 10 | && cd /tmp \ 11 | && wget -O ui.zip https://releases.hashicorp.com/consul/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_web_ui.zip \ 12 | && unzip ui.zip \ 13 | && mkdir -p /ui \ 14 | && mv * /ui \ 15 | && rm -rf /ui/ui.zip /tmp/* 16 | 17 | EXPOSE 8300 8301 8301/udp 8302 8302/udp 8400 8500 8600 8600/udp 18 | 19 | VOLUME [ "/data" ] 20 | 21 | ENTRYPOINT [ "/bin/consul" ] 22 | 23 | CMD [ "agent", "-data-dir", "/data" ] 24 | -------------------------------------------------------------------------------- /consul/docker-compose.yml.example: -------------------------------------------------------------------------------- 1 | consul1: 2 | image: "voxxit/consul:latest" 3 | container_name: "consul1" 4 | hostname: "consul1" 5 | ports: 6 | - "8400:8400" 7 | - "8500:8500" 8 | - "53:53" 9 | command: "agent -data-dir /data -server -bootstrap-expect 3 -ui-dir /ui -client=0.0.0.0" 10 | 11 | consul2: 12 | image: "voxxit/consul:latest" 13 | container_name: "consul2" 14 | hostname: "consul2" 15 | ports: 16 | - "8400" 17 | - "8500" 18 | - "8600" 19 | links: 20 | - "consul1:consul1" 21 | command: "agent -server -join consul1" 22 | 23 | consul3: 24 | image: "voxxit/consul:latest" 25 | container_name: "consul3" 26 | hostname: "consul3" 27 | ports: 28 | - "8400" 29 | - "8500" 30 | - "8600" 31 | links: 32 | - "consul1:consul1" 33 | command: "agent -server -join consul1" 34 | -------------------------------------------------------------------------------- /goaccess/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.21 2 | 3 | RUN apk add --no-cache goaccess 4 | 5 | ENTRYPOINT [ "goaccess" ] 6 | -------------------------------------------------------------------------------- /grunt/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.21 2 | 3 | LABEL org.opencontainers.image.authors="j@srv.im" 4 | 5 | RUN apk add --no-cache nodejs nodejs-dev npm git \ 6 | && npm install -g npm@latest \ 7 | && npm install -g grunt-cli bower 8 | 9 | CMD [ "bash" ] 10 | -------------------------------------------------------------------------------- /grunt/runtime/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM voxxit/grunt:latest 2 | 3 | WORKDIR /app 4 | 5 | ONBUILD COPY package.json /app/ 6 | ONBUILD RUN npm install 7 | ONBUILD COPY bower.json /app/ 8 | ONBUILD RUN bower install --allow-root 9 | ONBUILD COPY . /app 10 | 11 | CMD [ "grunt" ] 12 | -------------------------------------------------------------------------------- /haproxy/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.21 2 | 3 | LABEL org.opencontainers.image.authors="j@srv.im" 4 | 5 | RUN apk add --no-cache haproxy 6 | 7 | EXPOSE 80/tcp 443/tcp 8 | 9 | VOLUME [ "/etc/haproxy", "/var/lib/haproxy" ] 10 | 11 | ENTRYPOINT [ "haproxy" ] 12 | CMD [ "-f", "/etc/haproxy/haproxy.cfg" ] 13 | -------------------------------------------------------------------------------- /haproxy/haproxy.ctmpl: -------------------------------------------------------------------------------- 1 | global 2 | log {{key "service/haproxy/log"}} local2 3 | log-send-hostname 4 | pidfile /var/run/haproxy.pid 5 | maxconn {{key "service/haproxy/maxconn"}} 6 | user haproxy 7 | group haproxy 8 | 9 | defaults 10 | mode {{key "service/haproxy/mode"}} 11 | log global{{range ls "service/haproxy/options"}} 12 | option {{.Key}} {{.Value}}{{end}} 13 | retries {{key "service/haproxy/retries"}}{{range ls "service/haproxy/timeouts"}} 14 | timeout {{.Key}} {{.Value}}{{end}} 15 | maxconn {{key "service/haproxy/maxconn"}} 16 | 17 | listen stats *:8000 18 | stats uri /stats 19 | stats refresh {{key "service/haproxy/stats/refresh"}} 20 | stats realm HAProxy\ Global\ Stats 21 | stats auth {{key "service/haproxy/stats/username"}}:{{key "service/haproxy/stats/password"}} 22 | 23 | frontend web 24 | bind *:80 25 | 26 | acl is_consul hdr(host) -i consul.srv.im 27 | use_backend consul if is_consul 28 | 29 | backend consul 30 | balance roundrobin{{range service "consul"}} 31 | server {{.Node}} {{.Address}}:8500{{end}} 32 | -------------------------------------------------------------------------------- /icecast/.gitignore: -------------------------------------------------------------------------------- 1 | docker-compose.yml 2 | -------------------------------------------------------------------------------- /icecast/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.21 2 | 3 | ENV ICECAST_VERSION 2.5-beta3 4 | 5 | RUN apk add --no-cache tar build-base pwgen libxslt-dev libvorbis-dev curl-dev libressl-dev libtheora-dev speex-dev opus-dev \ 6 | && cd /tmp \ 7 | && wget http://downloads.xiph.org/releases/icecast/icecast-${ICECAST_VERSION}.tar.gz -O- | tar -zx --strip-components=1 \ 8 | && ./configure --prefix=/usr \ 9 | && make -j$(getconf _NPROCESSORS_ONLN) \ 10 | && make install \ 11 | && rm -rf /tmp/* \ 12 | && apk del --purge build-base 13 | 14 | EXPOSE 80/tcp 15 | 16 | RUN addgroup -g 1000 icecast \ 17 | && adduser -s /bin/false -G icecast -D -H -u 1000 icecast \ 18 | && install -d -o icecast -g icecast /var/log/icecast \ 19 | && install -d -o icecast -g icecast /etc/icecast \ 20 | && chown -R icecast:icecast /usr/share/icecast 21 | 22 | COPY etc/mime.types /etc/ 23 | 24 | USER icecast:icecast 25 | 26 | COPY etc/icecast.xml /etc/icecast/ 27 | COPY docker-entrypoint.sh / 28 | 29 | CMD [ "/docker-entrypoint.sh" ] 30 | -------------------------------------------------------------------------------- /icecast/README.md: -------------------------------------------------------------------------------- 1 | ``` 2 | docker pull voxxit/icecast:latest 3 | docker run -d -p 80:80 -v :/etc/icecast.xml:ro \ 4 | --restart always --name icecast voxxit/icecast:latest 5 | ``` 6 | -------------------------------------------------------------------------------- /icecast/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | SOURCE_PASSWORD=${SOURCE_PASSWORD-`pwgen -1 20`} 4 | RELAY_PASSWORD=${RELAY_PASSWORD-`pwgen -1 20`} 5 | ADMIN_PASSWORD=${ADMIN_PASSWORD-`pwgen -1 20`} 6 | 7 | sed -i "s/HOSTNAME/${HOSTNAME}/g" /etc/icecast/icecast.xml 8 | sed -i "s/SOURCE_PASSWORD/${SOURCE_PASSWORD}/g" /etc/icecast/icecast.xml 9 | sed -i "s/RELAY_PASSWORD/${RELAY_PASSWORD}/g" /etc/icecast/icecast.xml 10 | sed -i "s/ADMIN_PASSWORD/${ADMIN_PASSWORD}/g" /etc/icecast/icecast.xml 11 | 12 | echo 13 | icecast -v 14 | echo 15 | echo "Source Login: source / ${SOURCE_PASSWORD}" 16 | echo "Relay Login: relay / ${RELAY_PASSWORD}" 17 | echo "Admin Login: admin / ${ADMIN_PASSWORD}" 18 | echo 19 | 20 | exec icecast -c /etc/icecast/icecast.xml 21 | -------------------------------------------------------------------------------- /jq/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.21 2 | 3 | RUN apk add --no-cache build-base git automake autoconf flex bison libtool oniguruma-dev \ 4 | && git clone https://github.com/stedolan/jq.git /usr/local/src/jq \ 5 | && cd /usr/local/src/jq \ 6 | && autoreconf -i \ 7 | && ./configure \ 8 | && make -j$(getconf _NPROCESSORS_ONLN) \ 9 | && make install \ 10 | && apk del build-base git automake autoconf flex bison libtool oniguruma-dev \ 11 | && rm -rf /usr/local/src/* 12 | 13 | CMD [ "jq" ] 14 | -------------------------------------------------------------------------------- /liquidsoap/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:noble 2 | 3 | LABEL org.opencontainers.image.authors="j@srv.im" 4 | 5 | ENV LIQUIDSOAP_VERSION="2.2.0" 6 | 7 | COPY install.sh /tmp/install.sh 8 | 9 | RUN chmod +x /tmp/install.sh \ 10 | && /tmp/install.sh "${LIQUIDSOAP_VERSION}" \ 11 | && rm /tmp/install.sh 12 | 13 | ENV LOG_NAME "stream.log" 14 | ENV PLAYLIST_DIR "/media" 15 | ENV LIVE_ENDPOINT "/live" 16 | ENV LIVE_PORT 10000 17 | ENV LIVE_PASSWORD "hackme" 18 | 19 | ENV STREAM_URL "http://example.com" 20 | ENV STREAM_GENRE "Various" 21 | ENV STREAM_NAME "Example Radio" 22 | 23 | ENV ICECAST_HOSTNAME "stream.example.com" 24 | ENV ICECAST_PORT 8000 25 | ENV ICECAST_PASS "hackme" 26 | 27 | VOLUME [ "/media", "/var/log/liquidsoap" ] 28 | 29 | EXPOSE 10000/tcp 30 | 31 | COPY --chown=1001:1001 start-liquidsoap.sh /usr/bin/start-liquidsoap.sh 32 | USER 1001:1001 33 | 34 | ENTRYPOINT [ "/usr/bin/start-liquidsoap.sh" ] 35 | -------------------------------------------------------------------------------- /liquidsoap/start-liquidsoap.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | exec liquidsoap - <<-LIQ 4 | set("init.daemon", false) 5 | set("log.stdout", true) 6 | set("log.file", false) 7 | set("log.file.path","/var/log/liquidsoap/${LOG_NAME}") 8 | set("harbor.bind_addr", "0.0.0.0") 9 | 10 | live = input.harbor("$LIVE_ENDPOINT", port=$LIVE_PORT, password="$LIVE_PASSWORD") 11 | files = playlist.safe("$PLAYLIST_DIR", reload=300, reload_mode="seconds") 12 | radio = fallback(track_sensitive=false, [ live, files ]) 13 | 14 | output.icecast( 15 | %mp3.cbr(bitrate=128, samplerate=48000, stereo=true), 16 | mount="/stream.mp3", 17 | name="${STREAM_NAME} [MP3]", 18 | url="${STREAM_URL}", 19 | genre="${STREAM_GENRE}", 20 | host="${ICECAST_HOSTNAME}", 21 | port=${ICECAST_PORT}, 22 | password="${ICECAST_PASS}", 23 | radio 24 | ) 25 | 26 | output.icecast( 27 | %vorbis.cbr(bitrate=96, samplerate=48000, channels=2), 28 | mount="/stream.ogg", 29 | name="${STREAM_NAME} [OGG]", 30 | url="${STREAM_URL}", 31 | genre="${STREAM_GENRE}", 32 | host="${ICECAST_HOSTNAME}", 33 | port=${ICECAST_PORT}, 34 | password="${ICECAST_PASS}", 35 | radio 36 | ) 37 | 38 | output.icecast( 39 | %opus(bitrate=64, samplerate=48000, channels=2), 40 | mount="/stream.opus", 41 | name="${STREAM_NAME} [Opus]", 42 | url="${STREAM_URL}", 43 | genre="${STREAM_GENRE}", 44 | host="${ICECAST_HOSTNAME}", 45 | port=${ICECAST_PORT}, 46 | password="${ICECAST_PASS}", 47 | radio 48 | ) 49 | LIQ 50 | -------------------------------------------------------------------------------- /memcached/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phusion/baseimage:jammy-1.0.1 2 | 3 | LABEL org.opencontainers.image.authors="j@srv.im" 4 | 5 | ENV HOME /root 6 | 7 | COPY start /start 8 | 9 | RUN apt-get update && \ 10 | apt-get install -y memcached sasl2-bin pwgen && \ 11 | apt-get autoremove --purge && \ 12 | apt-get clean && \ 13 | rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/lib/postgresql/* && \ 14 | chmod +x /start 15 | 16 | EXPOSE 11211 17 | 18 | CMD ["/start"] 19 | -------------------------------------------------------------------------------- /memcached/README.md: -------------------------------------------------------------------------------- 1 | # quay.io/voxxit/memcached 2 | 3 | Docker image for [memcached 1.4.20](http://memcached.org), compiled from source with the latest security patches on Alpine Linux 3.0. This build also requires authenticated memcached calls using SASL. 4 | 5 | ### Getting Started 6 | 7 | To use this container on its own: 8 | 9 | ```shell 10 | $ docker run -d -p 11211:11211 --name memcached quay.io/voxxit/memcached 11 | ``` 12 | 13 | ### Username & Password 14 | 15 | If you run the instance in the foreground (without `-d` or `--detach`) you'll be provided immediately with a username and password to connect using: 16 | 17 | ```shell 18 | $ docker run --rm -it -p 11211:11211 quay.io/voxxit/memcached 19 | USERNAME=admin 20 | PASSWORD=zf9bLafMTKmVedNHVYgR 21 | ``` 22 | 23 | You can also get this using `docker logs ` for detached instances. 24 | 25 | Want to use your own username and/or password? 26 | 27 | ```shell 28 | $ docker run -d -e USERNAME=voxxit PASSWORD=sos3cur3 quay.io/voxxit/memcached 29 | ``` 30 | 31 | ### Configuration 32 | 33 | [All of memcached's options](https://code.google.com/p/memcached/wiki/NewConfiguringServer) are available to add on to the ENTRYPOINT: 34 | 35 | ```shell 36 | $ docker run -d -e USERNAME=voxxit PASSWORD=sos3cur3 quay.io/voxxit/memcached -m 512 37 | ``` 38 | 39 | ### Custom ENTRYPOINT 40 | 41 | Don't care about security and want to disable SASL? Want to use your own ENTRYPOINT, period? No problem! 42 | 43 | ```shell 44 | docker run -it --entrypoint="sh" quay.io/voxxit/memcached 45 | ``` 46 | -------------------------------------------------------------------------------- /memcached/start: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sasldblistusers2 /etc/sasldb2 | grep "admin" 4 | 5 | if [ $? -ne 0 ]; then 6 | PASSWORD=${PASSWORD:-`pwgen -s 20 1`} 7 | 8 | echo ${PASSWORD} | saslpasswd2 -a memcached -c admin 9 | 10 | echo "USERNAME=admin" 11 | echo "PASSWORD=${PASSWORD}" 12 | fi 13 | 14 | exec memcached -S -u nobody -l 0.0.0.0 $@ 15 | -------------------------------------------------------------------------------- /nginx-geoip2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:noble 2 | 3 | COPY . / 4 | 5 | RUN export DEBIAN_FRONTEND=noninteractive \ 6 | && apt-get update \ 7 | && apt-get -y install build-essential libpcre3-dev software-properties-common \ 8 | && add-apt-repository ppa:maxmind/ppa \ 9 | && apt-get update \ 10 | && apt-get -y install libmaxminddb0 libmaxminddb-dev mmdb-bin \ 11 | && cd zlib-1.2.8 \ 12 | && ./configure \ 13 | && make -j$(getconf _NPROCESSORS_ONLN) \ 14 | && make install \ 15 | && cd ../nginx-1.15.12 \ 16 | && ./configure --add-module=/ngx_http_geoip2_module-1.0 \ 17 | && make -j$(getconf _NPROCESSORS_ONLN) \ 18 | && make install \ 19 | && apt-get -y remove --purge build-essential \ 20 | && apt-get -y autoremove --purge \ 21 | && rm -rf /var/lib/apt/lists/* /nginx-1.15.12 /ngx_http_geoip2_module-1.0 /zlib-1.2.8 22 | 23 | RUN echo "\ndaemon off;" >> /usr/local/nginx/conf/nginx.conf 24 | 25 | WORKDIR /usr/local/nginx 26 | EXPOSE 80/tcp 443/tcp 27 | 28 | CMD [ "/usr/local/nginx/sbin/nginx" ] 29 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/LICENSE: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2002-2019 Igor Sysoev 3 | * Copyright (C) 2011-2019 Nginx, Inc. 4 | * All rights reserved. 5 | * 6 | * Redistribution and use in source and binary forms, with or without 7 | * modification, are permitted provided that the following conditions 8 | * are met: 9 | * 1. Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 2. Redistributions in binary form must reproduce the above copyright 12 | * notice, this list of conditions and the following disclaimer in the 13 | * documentation and/or other materials provided with the distribution. 14 | * 15 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 | * SUCH DAMAGE. 26 | */ 27 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/README: -------------------------------------------------------------------------------- 1 | 2 | Documentation is available at http://nginx.org 3 | 4 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/cc/acc: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | # aCC: HP ANSI C++ B3910B A.03.55.02 7 | 8 | # C89 mode 9 | 10 | CFLAGS="$CFLAGS -Ae" 11 | CC_TEST_FLAGS="-Ae" 12 | 13 | PCRE_OPT="$PCRE_OPT -Ae" 14 | ZLIB_OPT="$ZLIB_OPT -Ae" 15 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/cc/bcc: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | # Borland C++ 5.5 7 | 8 | # optimizations 9 | 10 | # maximize speed 11 | CFLAGS="$CFLAGS -O2" 12 | 13 | case $CPU in 14 | pentium) 15 | # optimize for Pentium and Athlon 16 | CPU_OPT="-5" 17 | ;; 18 | 19 | pentiumpro) 20 | # optimize for Pentium Pro, Pentium II and Pentium III 21 | CPU_OPT="-6" 22 | ;; 23 | esac 24 | 25 | # __stdcall 26 | #CPU_OPT="$CPU_OPT -ps" 27 | # __fastcall 28 | #CPU_OPT="$CPU_OPT -pr" 29 | 30 | CFLAGS="$CFLAGS $CPU_OPT" 31 | 32 | # multithreaded 33 | CFLAGS="$CFLAGS -tWM" 34 | 35 | # stop on warning 36 | CFLAGS="$CFLAGS -w!" 37 | 38 | # disable logo 39 | CFLAGS="$CFLAGS -q" 40 | 41 | 42 | # precompiled headers 43 | CORE_DEPS="$CORE_DEPS $NGX_OBJS/ngx_config.csm" 44 | NGX_PCH="$NGX_OBJS/ngx_config.csm" 45 | NGX_BUILD_PCH="-H=$NGX_OBJS/ngx_config.csm" 46 | NGX_USE_PCH="-Hu -H=$NGX_OBJS/ngx_config.csm" 47 | 48 | 49 | # Win32 GUI mode application 50 | #LINK="\$(CC) -laa" 51 | 52 | 53 | # the resource file 54 | NGX_RES="$NGX_OBJS/nginx.res" 55 | NGX_RCC="brcc32 -fo$NGX_OBJS/nginx.res \$(CORE_INCS) $NGX_WIN32_RC" 56 | # the pragma allows to link the resource file using bcc32 and 57 | # to avoid the direct ilink32 calling and the c0w32.obj's WinMain/main problem 58 | NGX_PRAGMA="#pragma resource \"$NGX_OBJS/nginx.res\"" 59 | 60 | 61 | ngx_include_opt="-I" 62 | ngx_objout="-o" 63 | ngx_binout="-e" 64 | ngx_objext="obj" 65 | 66 | ngx_long_start='@&&| 67 | ' 68 | ngx_long_end='|' 69 | 70 | ngx_regex_dirsep='\\' 71 | ngx_dirsep="\\" 72 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/cc/ccc: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | # Compaq C V6.5-207 7 | 8 | ngx_include_opt="-I" 9 | 10 | # warnings 11 | 12 | CFLAGS="$CFLAGS -msg_enable level6 -msg_fatal level6" 13 | 14 | CFLAGS="$CFLAGS -msg_disable unknownmacro" 15 | CFLAGS="$CFLAGS -msg_disable unusedincl" 16 | CFLAGS="$CFLAGS -msg_disable unnecincl" 17 | CFLAGS="$CFLAGS -msg_disable nestincl" 18 | CFLAGS="$CFLAGS -msg_disable strctpadding" 19 | CFLAGS="$CFLAGS -msg_disable ansialiascast" 20 | CFLAGS="$CFLAGS -msg_disable inlinestoclsmod" 21 | CFLAGS="$CFLAGS -msg_disable cxxkeyword" 22 | CFLAGS="$CFLAGS -msg_disable longlongsufx" 23 | CFLAGS="$CFLAGS -msg_disable valuepres" 24 | 25 | # STUB 26 | CFLAGS="$CFLAGS -msg_disable truncintcast" 27 | CFLAGS="$CFLAGS -msg_disable trunclongcast" 28 | 29 | CFLAGS="$CFLAGS -msg_disable truncintasn" 30 | CFLAGS="$CFLAGS -msg_disable trunclongint" 31 | CFLAGS="$CFLAGS -msg_disable intconcastsgn" 32 | CFLAGS="$CFLAGS -msg_disable intconstsign" 33 | CFLAGS="$CFLAGS -msg_disable switchlong" 34 | CFLAGS="$CFLAGS -msg_disable subscrbounds2" 35 | 36 | CFLAGS="$CFLAGS -msg_disable hexoctunsign" 37 | 38 | CFLAGS="$CFLAGS -msg_disable ignorecallval" 39 | CFLAGS="$CFLAGS -msg_disable nonstandcast" 40 | CFLAGS="$CFLAGS -msg_disable embedcomment" 41 | CFLAGS="$CFLAGS -msg_disable unreachcode" 42 | CFLAGS="$CFLAGS -msg_disable questcompare2" 43 | CFLAGS="$CFLAGS -msg_disable unusedtop" 44 | CFLAGS="$CFLAGS -msg_disable unrefdecl" 45 | 46 | CFLAGS="$CFLAGS -msg_disable bitnotint" 47 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/define: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | cat << END >> $NGX_AUTO_CONFIG_H 7 | 8 | #ifndef $have 9 | #define $have $value 10 | #endif 11 | 12 | END 13 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/endianness: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | echo $ngx_n "checking for system byte ordering ...$ngx_c" 7 | 8 | cat << END >> $NGX_AUTOCONF_ERR 9 | 10 | ---------------------------------------- 11 | checking for system byte ordering 12 | 13 | END 14 | 15 | 16 | cat << END > $NGX_AUTOTEST.c 17 | 18 | int main(void) { 19 | int i = 0x11223344; 20 | char *p; 21 | 22 | p = (char *) &i; 23 | if (*p == 0x44) return 0; 24 | return 1; 25 | } 26 | 27 | END 28 | 29 | ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \ 30 | -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs" 31 | 32 | eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1" 33 | 34 | if [ -x $NGX_AUTOTEST ]; then 35 | if $NGX_AUTOTEST >/dev/null 2>&1; then 36 | echo " little endian" 37 | have=NGX_HAVE_LITTLE_ENDIAN . auto/have 38 | else 39 | echo " big endian" 40 | fi 41 | 42 | rm -rf $NGX_AUTOTEST* 43 | 44 | else 45 | rm -rf $NGX_AUTOTEST* 46 | 47 | echo 48 | echo "$0: error: cannot detect system byte ordering" 49 | exit 1 50 | fi 51 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/have: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | cat << END >> $NGX_AUTO_CONFIG_H 7 | 8 | #ifndef $have 9 | #define $have 1 10 | #endif 11 | 12 | END 13 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/have_headers: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | cat << END >> $NGX_AUTO_HEADERS_H 7 | 8 | #ifndef $have 9 | #define $have 1 10 | #endif 11 | 12 | END 13 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/headers: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | ngx_include="unistd.h"; . auto/include 7 | ngx_include="inttypes.h"; . auto/include 8 | ngx_include="limits.h"; . auto/include 9 | ngx_include="sys/filio.h"; . auto/include 10 | ngx_include="sys/param.h"; . auto/include 11 | ngx_include="sys/mount.h"; . auto/include 12 | ngx_include="sys/statvfs.h"; . auto/include 13 | ngx_include="crypt.h"; . auto/include 14 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/include: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | echo $ngx_n "checking for $ngx_include ...$ngx_c" 7 | 8 | cat << END >> $NGX_AUTOCONF_ERR 9 | 10 | ---------------------------------------- 11 | checking for $ngx_include 12 | 13 | END 14 | 15 | 16 | ngx_found=no 17 | 18 | cat << END > $NGX_AUTOTEST.c 19 | 20 | $NGX_INCLUDE_SYS_PARAM_H 21 | #include <$ngx_include> 22 | 23 | int main(void) { 24 | return 0; 25 | } 26 | 27 | END 28 | 29 | 30 | ngx_test="$CC -o $NGX_AUTOTEST $NGX_AUTOTEST.c" 31 | 32 | eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1" 33 | 34 | if [ -x $NGX_AUTOTEST ]; then 35 | 36 | ngx_found=yes 37 | 38 | echo " found" 39 | 40 | ngx_name=`echo $ngx_include \ 41 | | tr abcdefghijklmnopqrstuvwxyz/. ABCDEFGHIJKLMNOPQRSTUVWXYZ__` 42 | 43 | 44 | have=NGX_HAVE_$ngx_name . auto/have_headers 45 | 46 | eval "NGX_INCLUDE_$ngx_name='#include <$ngx_include>'" 47 | 48 | else 49 | echo " not found" 50 | 51 | echo "----------" >> $NGX_AUTOCONF_ERR 52 | cat $NGX_AUTOTEST.c >> $NGX_AUTOCONF_ERR 53 | echo "----------" >> $NGX_AUTOCONF_ERR 54 | echo $ngx_test >> $NGX_AUTOCONF_ERR 55 | echo "----------" >> $NGX_AUTOCONF_ERR 56 | fi 57 | 58 | rm -rf $NGX_AUTOTEST* 59 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/init: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | NGX_MAKEFILE=$NGX_OBJS/Makefile 7 | NGX_MODULES_C=$NGX_OBJS/ngx_modules.c 8 | 9 | NGX_AUTO_HEADERS_H=$NGX_OBJS/ngx_auto_headers.h 10 | NGX_AUTO_CONFIG_H=$NGX_OBJS/ngx_auto_config.h 11 | 12 | NGX_AUTOTEST=$NGX_OBJS/autotest 13 | NGX_AUTOCONF_ERR=$NGX_OBJS/autoconf.err 14 | 15 | # STUBs 16 | NGX_ERR=$NGX_OBJS/autoconf.err 17 | MAKEFILE=$NGX_OBJS/Makefile 18 | 19 | 20 | NGX_PCH= 21 | NGX_USE_PCH= 22 | 23 | 24 | # check the echo's "-n" option and "\c" capability 25 | 26 | if echo "test\c" | grep c >/dev/null; then 27 | 28 | if echo -n test | grep n >/dev/null; then 29 | ngx_n= 30 | ngx_c= 31 | 32 | else 33 | ngx_n=-n 34 | ngx_c= 35 | fi 36 | 37 | else 38 | ngx_n= 39 | ngx_c='\c' 40 | fi 41 | 42 | 43 | # create Makefile 44 | 45 | cat << END > Makefile 46 | 47 | default: build 48 | 49 | clean: 50 | rm -rf Makefile $NGX_OBJS 51 | END 52 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/lib/conf: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | if [ $USE_PCRE = YES -o $PCRE != NONE ]; then 7 | . auto/lib/pcre/conf 8 | 9 | else 10 | if [ $USE_PCRE = DISABLED -a $HTTP = YES -a $HTTP_REWRITE = YES ]; then 11 | 12 | cat << END 13 | 14 | $0: error: the HTTP rewrite module requires the PCRE library. 15 | You can either disable the module by using --without-http_rewrite_module 16 | option or you have to enable the PCRE support. 17 | 18 | END 19 | exit 1 20 | fi 21 | fi 22 | 23 | 24 | if [ $USE_OPENSSL = YES ]; then 25 | . auto/lib/openssl/conf 26 | fi 27 | 28 | if [ $USE_ZLIB = YES ]; then 29 | . auto/lib/zlib/conf 30 | fi 31 | 32 | if [ $USE_LIBXSLT != NO ]; then 33 | . auto/lib/libxslt/conf 34 | fi 35 | 36 | if [ $USE_LIBGD != NO ]; then 37 | . auto/lib/libgd/conf 38 | fi 39 | 40 | if [ $USE_PERL != NO ]; then 41 | . auto/lib/perl/conf 42 | fi 43 | 44 | if [ $USE_GEOIP != NO ]; then 45 | . auto/lib/geoip/conf 46 | fi 47 | 48 | if [ $NGX_GOOGLE_PERFTOOLS = YES ]; then 49 | . auto/lib/google-perftools/conf 50 | fi 51 | 52 | if [ $NGX_LIBATOMIC != NO ]; then 53 | . auto/lib/libatomic/conf 54 | fi 55 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/lib/google-perftools/conf: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | ngx_feature="Google perftools" 7 | ngx_feature_name= 8 | ngx_feature_run=no 9 | ngx_feature_incs= 10 | ngx_feature_path= 11 | ngx_feature_libs="-lprofiler" 12 | ngx_feature_test="void ProfilerStop(void); 13 | ProfilerStop()" 14 | . auto/feature 15 | 16 | 17 | if [ $ngx_found = no ]; then 18 | 19 | # FreeBSD port 20 | 21 | ngx_feature="Google perftools in /usr/local/" 22 | 23 | if [ $NGX_RPATH = YES ]; then 24 | ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lprofiler" 25 | else 26 | ngx_feature_libs="-L/usr/local/lib -lprofiler" 27 | fi 28 | 29 | . auto/feature 30 | fi 31 | 32 | 33 | if [ $ngx_found = no ]; then 34 | 35 | # MacPorts 36 | 37 | ngx_feature="Google perftools in /opt/local/" 38 | 39 | if [ $NGX_RPATH = YES ]; then 40 | ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lprofiler" 41 | else 42 | ngx_feature_libs="-L/opt/local/lib -lprofiler" 43 | fi 44 | 45 | . auto/feature 46 | fi 47 | 48 | 49 | if [ $ngx_found = yes ]; then 50 | CORE_LIBS="$CORE_LIBS $ngx_feature_libs" 51 | 52 | else 53 | 54 | cat << END 55 | 56 | $0: error: the Google perftools module requires the Google perftools 57 | library. You can either do not enable the module or install the library. 58 | 59 | END 60 | 61 | exit 1 62 | fi 63 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/lib/libatomic/conf: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | if [ $NGX_LIBATOMIC != YES ]; then 7 | 8 | have=NGX_HAVE_LIBATOMIC . auto/have 9 | CORE_INCS="$CORE_INCS $NGX_LIBATOMIC/src" 10 | LINK_DEPS="$LINK_DEPS $NGX_LIBATOMIC/src/libatomic_ops.a" 11 | CORE_LIBS="$CORE_LIBS $NGX_LIBATOMIC/src/libatomic_ops.a" 12 | 13 | else 14 | 15 | ngx_feature="atomic_ops library" 16 | ngx_feature_name=NGX_HAVE_LIBATOMIC 17 | ngx_feature_run=yes 18 | ngx_feature_incs="#define AO_REQUIRE_CAS 19 | #include " 20 | ngx_feature_path= 21 | ngx_feature_libs="-latomic_ops" 22 | ngx_feature_test="long n = 0; 23 | if (!AO_compare_and_swap(&n, 0, 1)) 24 | return 1; 25 | if (AO_fetch_and_add(&n, 1) != 1) 26 | return 1; 27 | if (n != 2) 28 | return 1; 29 | AO_nop();" 30 | . auto/feature 31 | 32 | if [ $ngx_found = yes ]; then 33 | CORE_LIBS="$CORE_LIBS $ngx_feature_libs" 34 | else 35 | 36 | cat << END 37 | 38 | $0: error: libatomic_ops library was not found. 39 | 40 | END 41 | exit 1 42 | fi 43 | fi 44 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/lib/libatomic/make: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | cat << END >> $NGX_MAKEFILE 7 | 8 | $NGX_LIBATOMIC/src/libatomic_ops.a: $NGX_LIBATOMIC/Makefile 9 | cd $NGX_LIBATOMIC && \$(MAKE) 10 | 11 | $NGX_LIBATOMIC/Makefile: $NGX_MAKEFILE 12 | cd $NGX_LIBATOMIC \\ 13 | && if [ -f Makefile ]; then \$(MAKE) distclean; fi \\ 14 | && ./configure 15 | 16 | END 17 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/lib/make: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | if [ $PCRE != NONE -a $PCRE != NO -a $PCRE != YES ]; then 7 | . auto/lib/pcre/make 8 | fi 9 | 10 | if [ $OPENSSL != NONE -a $OPENSSL != NO -a $OPENSSL != YES ]; then 11 | . auto/lib/openssl/make 12 | fi 13 | 14 | if [ $ZLIB != NONE -a $ZLIB != NO -a $ZLIB != YES ]; then 15 | . auto/lib/zlib/make 16 | fi 17 | 18 | if [ $NGX_LIBATOMIC != NO -a $NGX_LIBATOMIC != YES ]; then 19 | . auto/lib/libatomic/make 20 | fi 21 | 22 | if [ $USE_PERL != NO ]; then 23 | . auto/lib/perl/make 24 | fi 25 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/lib/openssl/make: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | case "$CC" in 7 | 8 | cl) 9 | 10 | cat << END >> $NGX_MAKEFILE 11 | 12 | $OPENSSL/openssl/include/openssl/ssl.h: $NGX_MAKEFILE 13 | \$(MAKE) -f auto/lib/openssl/makefile.msvc \ 14 | OPENSSL="$OPENSSL" OPENSSL_OPT="$OPENSSL_OPT" 15 | 16 | END 17 | 18 | ;; 19 | 20 | bcc32) 21 | 22 | ngx_opt=`echo "-DOPENSSL=\"$OPENSSL\" -DOPENSSL_OPT=\"$OPENSSL_OPT\"" \ 23 | | sed -e "s/\//$ngx_regex_dirsep/g"` 24 | 25 | cat << END >> $NGX_MAKEFILE 26 | 27 | `echo "$OPENSSL\\openssl\\lib\\libeay32.lib: \ 28 | $OPENSSL\\openssl\\include\\openssl\\ssl.h" \ 29 | | sed -e "s/\//$ngx_regex_dirsep/g"` 30 | 31 | `echo "$OPENSSL\\openssl\\lib\\ssleay32.lib: \ 32 | $OPENSSL\\openssl\\include\\openssl\\ssl.h" \ 33 | | sed -e "s/\//$ngx_regex_dirsep/g"` 34 | 35 | `echo "$OPENSSL\\openssl\\include\\openssl\\ssl.h: $NGX_MAKEFILE" \ 36 | | sed -e "s/\//$ngx_regex_dirsep/g"` 37 | \$(MAKE) -f auto/lib/openssl/makefile.bcc $ngx_opt 38 | 39 | END 40 | 41 | ;; 42 | 43 | *) 44 | case $OPENSSL in 45 | /*) ngx_prefix="$OPENSSL/.openssl" ;; 46 | *) ngx_prefix="$PWD/$OPENSSL/.openssl" ;; 47 | esac 48 | 49 | cat << END >> $NGX_MAKEFILE 50 | 51 | $OPENSSL/.openssl/include/openssl/ssl.h: $NGX_MAKEFILE 52 | cd $OPENSSL \\ 53 | && if [ -f Makefile ]; then \$(MAKE) clean; fi \\ 54 | && ./config --prefix=$ngx_prefix no-shared no-threads $OPENSSL_OPT \\ 55 | && \$(MAKE) \\ 56 | && \$(MAKE) install_sw LIBDIR=lib 57 | 58 | END 59 | 60 | ;; 61 | 62 | esac 63 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/lib/openssl/makefile.bcc: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | all: 7 | cd $(OPENSSL) 8 | 9 | perl Configure BC-32 no-shared --prefix=openssl $(OPENSSL_OPT) 10 | 11 | ms\do_nasm 12 | 13 | $(MAKE) -f ms\bcb.mak 14 | $(MAKE) -f ms\bcb.mak install 15 | 16 | # Borland's make does not expand "[ch]" in 17 | # copy "inc32\openssl\*.[ch]" "openssl\include\openssl" 18 | copy inc32\openssl\*.h openssl\include\openssl 19 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/lib/openssl/makefile.msvc: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | all: 7 | cd $(OPENSSL) 8 | 9 | perl Configure VC-WIN32 no-shared \ 10 | --prefix="%cd%/openssl" \ 11 | --openssldir="%cd%/openssl/ssl" \ 12 | $(OPENSSL_OPT) 13 | 14 | if exist ms\do_ms.bat ( \ 15 | ms\do_ms \ 16 | && $(MAKE) -f ms\nt.mak \ 17 | && $(MAKE) -f ms\nt.mak install \ 18 | ) else ( \ 19 | $(MAKE) \ 20 | && $(MAKE) install_sw \ 21 | ) 22 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/lib/pcre/make: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | case "$NGX_CC_NAME" in 7 | 8 | msvc) 9 | ngx_makefile=makefile.msvc 10 | ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC" 11 | ngx_pcre="PCRE=\"$PCRE\"" 12 | ;; 13 | 14 | owc) 15 | ngx_makefile=makefile.owc 16 | ngx_opt="CPU_OPT=\"$CPU_OPT\"" 17 | ngx_pcre=`echo PCRE=\"$PCRE\" | sed -e "s/\//$ngx_regex_dirsep/g"` 18 | ;; 19 | 20 | bcc) 21 | ngx_makefile=makefile.bcc 22 | ngx_opt="-DCPU_OPT=\"$CPU_OPT\"" 23 | ngx_pcre=`echo \-DPCRE=\"$PCRE\" | sed -e "s/\//$ngx_regex_dirsep/g"` 24 | ;; 25 | 26 | *) 27 | ngx_makefile= 28 | ;; 29 | 30 | esac 31 | 32 | 33 | if [ -n "$ngx_makefile" ]; then 34 | 35 | cat << END >> $NGX_MAKEFILE 36 | 37 | `echo "$PCRE/pcre.lib: $PCRE/pcre.h $NGX_MAKEFILE" \ 38 | | sed -e "s/\//$ngx_regex_dirsep/g"` 39 | \$(MAKE) -f auto/lib/pcre/$ngx_makefile $ngx_pcre $ngx_opt 40 | 41 | `echo "$PCRE/pcre.h:" | sed -e "s/\//$ngx_regex_dirsep/g"` 42 | \$(MAKE) -f auto/lib/pcre/$ngx_makefile $ngx_pcre pcre.h 43 | 44 | END 45 | 46 | else 47 | 48 | cat << END >> $NGX_MAKEFILE 49 | 50 | $PCRE/pcre.h: $PCRE/Makefile 51 | 52 | $PCRE/Makefile: $NGX_MAKEFILE 53 | cd $PCRE \\ 54 | && if [ -f Makefile ]; then \$(MAKE) distclean; fi \\ 55 | && CC="\$(CC)" CFLAGS="$PCRE_OPT" \\ 56 | ./configure --disable-shared $PCRE_CONF_OPT 57 | 58 | $PCRE/.libs/libpcre.a: $PCRE/Makefile 59 | cd $PCRE \\ 60 | && \$(MAKE) libpcre.la 61 | 62 | END 63 | 64 | fi 65 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/lib/pcre/makefile.bcc: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | CFLAGS = -q -O2 -tWM -w-8004 $(CPU_OPT) 7 | PCREFLAGS = -DHAVE_CONFIG_H -DPCRE_STATIC -DPOSIX_MALLOC_THRESHOLD=10 \ 8 | -DSUPPORT_PCRE8 -DHAVE_MEMMOVE 9 | 10 | 11 | pcre.lib: 12 | cd $(PCRE) 13 | 14 | bcc32 -c $(CFLAGS) -I. $(PCREFLAGS) pcre_*.c 15 | 16 | copy /y nul pcre.lst 17 | for %n in (*.obj) do @echo +%n ^^& >> pcre.lst 18 | echo + >> pcre.lst 19 | 20 | tlib pcre.lib @pcre.lst 21 | 22 | pcre.h: 23 | cd $(PCRE) 24 | 25 | copy /y pcre.h.generic pcre.h 26 | copy /y config.h.generic config.h 27 | copy /y pcre_chartables.c.dist pcre_chartables.c 28 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/lib/pcre/makefile.msvc: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | CFLAGS = -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT) 7 | PCREFLAGS = -DHAVE_CONFIG_H -DPCRE_STATIC -DPOSIX_MALLOC_THRESHOLD=10 \ 8 | -DSUPPORT_PCRE8 -DHAVE_MEMMOVE 9 | 10 | 11 | pcre.lib: 12 | cd $(PCRE) 13 | 14 | cl -nologo -c $(CFLAGS) -I . $(PCREFLAGS) pcre_*.c 15 | 16 | link -lib -out:pcre.lib -verbose:lib pcre_*.obj 17 | 18 | pcre.h: 19 | cd $(PCRE) 20 | 21 | copy /y pcre.h.generic pcre.h 22 | copy /y config.h.generic config.h 23 | copy /y pcre_chartables.c.dist pcre_chartables.c 24 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/lib/pcre/makefile.owc: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | CFLAGS = -c -zq -bt=nt -ot -op -oi -oe -s -bm $(CPU_OPT) 7 | PCREFLAGS = -DHAVE_CONFIG_H -DPCRE_STATIC -DPOSIX_MALLOC_THRESHOLD=10 & 8 | -DSUPPORT_PCRE8 -DHAVE_MEMMOVE 9 | 10 | 11 | pcre.lib: 12 | cd $(PCRE) 13 | 14 | wcl386 $(CFLAGS) -i=. $(PCREFLAGS) pcre_*.c 15 | 16 | dir /b *.obj > pcre.lst 17 | 18 | wlib -n pcre.lib @pcre.lst 19 | 20 | pcre.h: 21 | cd $(PCRE) 22 | 23 | copy /y pcre.h.generic pcre.h 24 | copy /y config.h.generic config.h 25 | copy /y pcre_chartables.c.dist pcre_chartables.c 26 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/lib/perl/make: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | cat << END >> $NGX_MAKEFILE 7 | 8 | $NGX_OBJS/src/http/modules/perl/ngx_http_perl_module.o: \\ 9 | $NGX_OBJS/$ngx_perl_module 10 | 11 | $NGX_OBJS/$ngx_perl_module: \\ 12 | \$(CORE_DEPS) \$(HTTP_DEPS) \\ 13 | src/http/modules/perl/ngx_http_perl_module.h \\ 14 | $NGX_OBJS/src/http/modules/perl/Makefile 15 | cd $NGX_OBJS/src/http/modules/perl && \$(MAKE) 16 | 17 | rm -rf $NGX_OBJS/install_perl 18 | 19 | 20 | $NGX_OBJS/src/http/modules/perl/Makefile: \\ 21 | $NGX_AUTO_CONFIG_H \\ 22 | src/core/nginx.h \\ 23 | src/http/modules/perl/Makefile.PL \\ 24 | src/http/modules/perl/nginx.pm \\ 25 | src/http/modules/perl/nginx.xs \\ 26 | src/http/modules/perl/typemap 27 | grep 'define NGINX_VERSION' src/core/nginx.h \\ 28 | | sed -e 's/^.*"\(.*\)".*/\1/' > \\ 29 | $NGX_OBJS/src/http/modules/perl/version 30 | sed "s/%%VERSION%%/\`cat $NGX_OBJS/src/http/modules/perl/version\`/" \\ 31 | src/http/modules/perl/nginx.pm > \\ 32 | $NGX_OBJS/src/http/modules/perl/nginx.pm 33 | cp -p src/http/modules/perl/nginx.xs $NGX_OBJS/src/http/modules/perl/ 34 | cp -p src/http/modules/perl/typemap $NGX_OBJS/src/http/modules/perl/ 35 | cp -p src/http/modules/perl/Makefile.PL $NGX_OBJS/src/http/modules/perl/ 36 | 37 | cd $NGX_OBJS/src/http/modules/perl \\ 38 | && NGX_PM_CFLAGS="\$(NGX_PM_CFLAGS) -g $NGX_CC_OPT" \\ 39 | NGX_PM_LDFLAGS="$NGX_LD_OPT \$(NGX_PM_LDFLAGS)" \\ 40 | NGX_INCS="$CORE_INCS $NGX_OBJS $HTTP_INCS" \\ 41 | NGX_DEPS="\$(CORE_DEPS) \$(HTTP_DEPS)" \\ 42 | $NGX_PERL Makefile.PL \\ 43 | LIB=$NGX_PERL_MODULES \\ 44 | INSTALLSITEMAN3DIR=$NGX_PERL_MODULES_MAN 45 | 46 | END 47 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/lib/zlib/makefile.bcc: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | CFLAGS = -q -O2 -tWM -w-8004 -w-8012 $(CPU_OPT) 7 | 8 | zlib.lib: 9 | cd $(ZLIB) 10 | 11 | bcc32 -c $(CFLAGS) adler32.c crc32.c deflate.c \ 12 | trees.c zutil.c compress.c \ 13 | inflate.c inffast.c inftrees.c 14 | 15 | tlib zlib.lib +adler32.obj +crc32.obj +deflate.obj \ 16 | +trees.obj +zutil.obj +compress.obj \ 17 | +inflate.obj +inffast.obj +inftrees.obj 18 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/lib/zlib/makefile.msvc: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | CFLAGS = -nologo -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT) 7 | 8 | zlib.lib: 9 | cd $(ZLIB) 10 | 11 | cl -c $(CFLAGS) adler32.c crc32.c deflate.c \ 12 | trees.c zutil.c compress.c \ 13 | inflate.c inffast.c inftrees.c 14 | 15 | link -lib -out:zlib.lib adler32.obj crc32.obj deflate.obj \ 16 | trees.obj zutil.obj compress.obj \ 17 | inflate.obj inffast.obj inftrees.obj 18 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/lib/zlib/makefile.owc: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | CFLAGS = -zq -bt=nt -ot -op -oi -oe -s -bm $(CPU_OPT) 7 | 8 | zlib.lib: 9 | cd $(ZLIB) 10 | 11 | wcl386 -c $(CFLAGS) adler32.c crc32.c deflate.c trees.c zutil.c & 12 | compress.c inflate.c inffast.c inftrees.c 13 | wlib -n zlib.lib adler32.obj crc32.obj deflate.obj trees.obj & 14 | zutil.obj compress.obj inflate.obj inffast.obj inftrees.obj 15 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/nohave: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | cat << END >> $NGX_AUTO_CONFIG_H 7 | 8 | #ifndef $have 9 | #define $have 0 10 | #endif 11 | 12 | END 13 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/os/solaris: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | have=NGX_SOLARIS . auto/have_headers 7 | 8 | CORE_INCS="$UNIX_INCS" 9 | CORE_DEPS="$UNIX_DEPS $SOLARIS_DEPS" 10 | CORE_SRCS="$UNIX_SRCS $SOLARIS_SRCS " 11 | CORE_LIBS="$CORE_LIBS -lsocket -lnsl" 12 | 13 | NGX_RPATH=YES 14 | 15 | # Solaris's make does not support a blank line between target and rules 16 | ngx_spacer= 17 | 18 | CC_AUX_FLAGS="$CC_AUX_FLAGS -D_FILE_OFFSET_BITS=64 -lsocket -lnsl" 19 | 20 | 21 | if [ $ZLIB_ASM != NO ]; then 22 | echo "$0: error: the --with-zlib-asm=CPU option is not supported" 23 | echo "on that platform" 24 | echo 25 | 26 | exit 1 27 | fi 28 | 29 | 30 | ngx_feature="sendfilev()" 31 | ngx_feature_name="NGX_HAVE_SENDFILE" 32 | ngx_feature_run=no 33 | ngx_feature_incs="#include " 34 | ngx_feature_path= 35 | ngx_feature_libs="-lsendfile" 36 | ngx_feature_test="int fd = 1; sendfilevec_t vec[1]; 37 | size_t sent; ssize_t n; 38 | n = sendfilev(fd, vec, 1, &sent); 39 | if (n == -1) return 1" 40 | . auto/feature 41 | 42 | 43 | if [ $ngx_found = yes ]; then 44 | CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS" 45 | CORE_LIBS="$CORE_LIBS -lsendfile" 46 | fi 47 | 48 | 49 | ngx_feature="event ports" 50 | ngx_feature_name="NGX_HAVE_EVENTPORT" 51 | ngx_feature_run=no 52 | ngx_feature_incs="#include " 53 | ngx_feature_path= 54 | ngx_feature_libs= 55 | ngx_feature_test="(void) port_create()" 56 | . auto/feature 57 | 58 | if [ $ngx_found = yes ]; then 59 | CORE_SRCS="$CORE_SRCS $EVENTPORT_SRCS" 60 | EVENT_MODULES="$EVENT_MODULES $EVENTPORT_MODULE" 61 | fi 62 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/os/win32: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | have=NGX_WIN32 . auto/have_headers 7 | 8 | CORE_INCS="$WIN32_INCS" 9 | CORE_DEPS="$WIN32_DEPS" 10 | CORE_SRCS="$WIN32_SRCS $IOCP_SRCS" 11 | OS_CONFIG="$WIN32_CONFIG" 12 | NGX_ICONS="$NGX_WIN32_ICONS" 13 | SELECT_SRCS=$WIN32_SELECT_SRCS 14 | POLL_SRCS=$WIN32_POLL_SRCS 15 | 16 | ngx_pic_opt= 17 | ngx_binext=".exe" 18 | 19 | case "$NGX_CC_NAME" in 20 | 21 | gcc) 22 | CORE_LIBS="$CORE_LIBS -ladvapi32 -lws2_32" 23 | MAIN_LINK="$MAIN_LINK -Wl,--export-all-symbols" 24 | MAIN_LINK="$MAIN_LINK -Wl,--out-implib=$NGX_OBJS/libnginx.a" 25 | MODULE_LINK="-shared -L $NGX_OBJS -lnginx" 26 | ;; 27 | 28 | *) 29 | CORE_LIBS="$CORE_LIBS advapi32.lib ws2_32.lib" 30 | ;; 31 | 32 | esac 33 | 34 | EVENT_MODULES="$EVENT_MODULES $IOCP_MODULE" 35 | #EVENT_FOUND=YES 36 | 37 | have=NGX_HAVE_INET6 . auto/have 38 | 39 | have=NGX_HAVE_IOCP . auto/have 40 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/stubs: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | have=NGX_SUPPRESS_WARN . auto/have 7 | 8 | have=NGX_SMP . auto/have 9 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/threads: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Nginx, Inc. 3 | 4 | 5 | if [ $USE_THREADS = YES ]; then 6 | 7 | if [ "$NGX_PLATFORM" = win32 ]; then 8 | cat << END 9 | 10 | $0: --with-threads is not supported on Windows 11 | 12 | END 13 | exit 1 14 | fi 15 | 16 | have=NGX_THREADS . auto/have 17 | CORE_DEPS="$CORE_DEPS $THREAD_POOL_DEPS" 18 | CORE_SRCS="$CORE_SRCS $THREAD_POOL_SRCS" 19 | CORE_LIBS="$CORE_LIBS -lpthread" 20 | NGX_LIBPTHREAD="-lpthread" 21 | fi 22 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/types/sizeof: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | echo $ngx_n "checking for $ngx_type size ...$ngx_c" 7 | 8 | cat << END >> $NGX_AUTOCONF_ERR 9 | 10 | ---------------------------------------- 11 | checking for $ngx_type size 12 | 13 | END 14 | 15 | ngx_size= 16 | 17 | cat << END > $NGX_AUTOTEST.c 18 | 19 | #include 20 | #include 21 | $NGX_INCLUDE_UNISTD_H 22 | #include 23 | #include 24 | #include 25 | $NGX_INCLUDE_INTTYPES_H 26 | $NGX_INCLUDE_AUTO_CONFIG_H 27 | 28 | int main(void) { 29 | printf("%d", (int) sizeof($ngx_type)); 30 | return 0; 31 | } 32 | 33 | END 34 | 35 | 36 | ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \ 37 | -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs" 38 | 39 | eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1" 40 | 41 | 42 | if [ -x $NGX_AUTOTEST ]; then 43 | ngx_size=`$NGX_AUTOTEST` 44 | echo " $ngx_size bytes" 45 | fi 46 | 47 | 48 | case $ngx_size in 49 | 4) 50 | ngx_max_value=2147483647 51 | ngx_max_len='(sizeof("-2147483648") - 1)' 52 | ;; 53 | 54 | 8) 55 | ngx_max_value=9223372036854775807LL 56 | ngx_max_len='(sizeof("-9223372036854775808") - 1)' 57 | ;; 58 | 59 | *) 60 | echo 61 | echo "$0: error: can not detect $ngx_type size" 62 | 63 | echo "----------" >> $NGX_AUTOCONF_ERR 64 | cat $NGX_AUTOTEST.c >> $NGX_AUTOCONF_ERR 65 | echo "----------" >> $NGX_AUTOCONF_ERR 66 | echo $ngx_test >> $NGX_AUTOCONF_ERR 67 | echo "----------" >> $NGX_AUTOCONF_ERR 68 | 69 | rm -rf $NGX_AUTOTEST* 70 | 71 | exit 1 72 | esac 73 | 74 | 75 | rm -rf $NGX_AUTOTEST* 76 | 77 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/types/uintptr_t: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | echo $ngx_n "checking for uintptr_t ...$ngx_c" 7 | 8 | cat << END >> $NGX_AUTOCONF_ERR 9 | 10 | ---------------------------------------- 11 | checking for uintptr_t 12 | 13 | END 14 | 15 | found=no 16 | 17 | cat << END > $NGX_AUTOTEST.c 18 | 19 | #include 20 | $NGX_INCLUDE_INTTYPES_H 21 | 22 | int main(void) { 23 | uintptr_t i = 0; 24 | return (int) i; 25 | } 26 | 27 | END 28 | 29 | ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \ 30 | -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT" 31 | 32 | eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1" 33 | 34 | if [ -x $NGX_AUTOTEST ]; then 35 | echo " uintptr_t found" 36 | found=yes 37 | else 38 | echo $ngx_n " uintptr_t not found" $ngx_c 39 | fi 40 | 41 | rm -rf $NGX_AUTOTEST* 42 | 43 | 44 | if [ $found = no ]; then 45 | found="uint`expr 8 \* $ngx_ptr_size`_t" 46 | echo ", $found used" 47 | 48 | echo "typedef $found uintptr_t;" >> $NGX_AUTO_CONFIG_H 49 | echo "typedef $found intptr_t;" | sed -e 's/u//g' >> $NGX_AUTO_CONFIG_H 50 | fi 51 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/auto/types/value: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | 6 | cat << END >> $NGX_AUTO_CONFIG_H 7 | 8 | #ifndef $ngx_param 9 | #define $ngx_param $ngx_value 10 | #endif 11 | 12 | END 13 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/conf/fastcgi.conf: -------------------------------------------------------------------------------- 1 | 2 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 3 | fastcgi_param QUERY_STRING $query_string; 4 | fastcgi_param REQUEST_METHOD $request_method; 5 | fastcgi_param CONTENT_TYPE $content_type; 6 | fastcgi_param CONTENT_LENGTH $content_length; 7 | 8 | fastcgi_param SCRIPT_NAME $fastcgi_script_name; 9 | fastcgi_param REQUEST_URI $request_uri; 10 | fastcgi_param DOCUMENT_URI $document_uri; 11 | fastcgi_param DOCUMENT_ROOT $document_root; 12 | fastcgi_param SERVER_PROTOCOL $server_protocol; 13 | fastcgi_param REQUEST_SCHEME $scheme; 14 | fastcgi_param HTTPS $https if_not_empty; 15 | 16 | fastcgi_param GATEWAY_INTERFACE CGI/1.1; 17 | fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; 18 | 19 | fastcgi_param REMOTE_ADDR $remote_addr; 20 | fastcgi_param REMOTE_PORT $remote_port; 21 | fastcgi_param SERVER_ADDR $server_addr; 22 | fastcgi_param SERVER_PORT $server_port; 23 | fastcgi_param SERVER_NAME $server_name; 24 | 25 | # PHP only, required if PHP was built with --enable-force-cgi-redirect 26 | fastcgi_param REDIRECT_STATUS 200; 27 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/conf/fastcgi_params: -------------------------------------------------------------------------------- 1 | 2 | fastcgi_param QUERY_STRING $query_string; 3 | fastcgi_param REQUEST_METHOD $request_method; 4 | fastcgi_param CONTENT_TYPE $content_type; 5 | fastcgi_param CONTENT_LENGTH $content_length; 6 | 7 | fastcgi_param SCRIPT_NAME $fastcgi_script_name; 8 | fastcgi_param REQUEST_URI $request_uri; 9 | fastcgi_param DOCUMENT_URI $document_uri; 10 | fastcgi_param DOCUMENT_ROOT $document_root; 11 | fastcgi_param SERVER_PROTOCOL $server_protocol; 12 | fastcgi_param REQUEST_SCHEME $scheme; 13 | fastcgi_param HTTPS $https if_not_empty; 14 | 15 | fastcgi_param GATEWAY_INTERFACE CGI/1.1; 16 | fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; 17 | 18 | fastcgi_param REMOTE_ADDR $remote_addr; 19 | fastcgi_param REMOTE_PORT $remote_port; 20 | fastcgi_param SERVER_ADDR $server_addr; 21 | fastcgi_param SERVER_PORT $server_port; 22 | fastcgi_param SERVER_NAME $server_name; 23 | 24 | # PHP only, required if PHP was built with --enable-force-cgi-redirect 25 | fastcgi_param REDIRECT_STATUS 200; 26 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/conf/scgi_params: -------------------------------------------------------------------------------- 1 | 2 | scgi_param REQUEST_METHOD $request_method; 3 | scgi_param REQUEST_URI $request_uri; 4 | scgi_param QUERY_STRING $query_string; 5 | scgi_param CONTENT_TYPE $content_type; 6 | 7 | scgi_param DOCUMENT_URI $document_uri; 8 | scgi_param DOCUMENT_ROOT $document_root; 9 | scgi_param SCGI 1; 10 | scgi_param SERVER_PROTOCOL $server_protocol; 11 | scgi_param REQUEST_SCHEME $scheme; 12 | scgi_param HTTPS $https if_not_empty; 13 | 14 | scgi_param REMOTE_ADDR $remote_addr; 15 | scgi_param REMOTE_PORT $remote_port; 16 | scgi_param SERVER_PORT $server_port; 17 | scgi_param SERVER_NAME $server_name; 18 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/conf/uwsgi_params: -------------------------------------------------------------------------------- 1 | 2 | uwsgi_param QUERY_STRING $query_string; 3 | uwsgi_param REQUEST_METHOD $request_method; 4 | uwsgi_param CONTENT_TYPE $content_type; 5 | uwsgi_param CONTENT_LENGTH $content_length; 6 | 7 | uwsgi_param REQUEST_URI $request_uri; 8 | uwsgi_param PATH_INFO $document_uri; 9 | uwsgi_param DOCUMENT_ROOT $document_root; 10 | uwsgi_param SERVER_PROTOCOL $server_protocol; 11 | uwsgi_param REQUEST_SCHEME $scheme; 12 | uwsgi_param HTTPS $https if_not_empty; 13 | 14 | uwsgi_param REMOTE_ADDR $remote_addr; 15 | uwsgi_param REMOTE_PORT $remote_port; 16 | uwsgi_param SERVER_PORT $server_port; 17 | uwsgi_param SERVER_NAME $server_name; 18 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/contrib/README: -------------------------------------------------------------------------------- 1 | 2 | geo2nginx.pl by Andrei Nigmatulin 3 | 4 | The perl script to convert CSV geoip database ( free download 5 | at http://www.maxmind.com/app/geoip_country ) to format, suitable 6 | for use by the ngx_http_geo_module. 7 | 8 | 9 | unicode2nginx by Maxim Dounin 10 | 11 | The perl script to convert unicode mappings ( available 12 | at http://www.unicode.org/Public/MAPPINGS/ ) to the nginx 13 | configuration file format. 14 | Two generated full maps for windows-1251 and koi8-r. 15 | 16 | 17 | vim by Evan Miller 18 | 19 | Syntax highlighting of nginx configuration for vim, to be 20 | placed into ~/.vim/. 21 | 22 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/contrib/geo2nginx.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -w 2 | 3 | # (c) Andrei Nigmatulin, 2005 4 | # 5 | # this script provided "as is", without any warranties. use it at your own risk. 6 | # 7 | # special thanx to Andrew Sitnikov for perl port 8 | # 9 | # this script converts CSV geoip database (free download at http://www.maxmind.com/app/geoip_country) 10 | # to format, suitable for use with nginx_http_geo module (http://sysoev.ru/nginx) 11 | # 12 | # for example, line with ip range 13 | # 14 | # "62.16.68.0","62.16.127.255","1041253376","1041268735","RU","Russian Federation" 15 | # 16 | # will be converted to four subnetworks: 17 | # 18 | # 62.16.68.0/22 RU; 19 | # 62.16.72.0/21 RU; 20 | # 62.16.80.0/20 RU; 21 | # 62.16.96.0/19 RU; 22 | 23 | 24 | use warnings; 25 | use strict; 26 | 27 | while( ){ 28 | if (/"[^"]+","[^"]+","([^"]+)","([^"]+)","([^"]+)"/){ 29 | print_subnets($1, $2, $3); 30 | } 31 | } 32 | 33 | sub print_subnets { 34 | my ($a1, $a2, $c) = @_; 35 | my $l; 36 | while ($a1 <= $a2) { 37 | for ($l = 0; ($a1 & (1 << $l)) == 0 && ($a1 + ((1 << ($l + 1)) - 1)) <= $a2; $l++){}; 38 | print long2ip($a1) . "/" . (32 - $l) . " " . $c . ";\n"; 39 | $a1 += (1 << $l); 40 | } 41 | } 42 | 43 | sub long2ip { 44 | my $ip = shift; 45 | 46 | my $str = 0; 47 | 48 | $str = ($ip & 255); 49 | 50 | $ip >>= 8; 51 | $str = ($ip & 255).".$str"; 52 | 53 | $ip >>= 8; 54 | $str = ($ip & 255).".$str"; 55 | 56 | $ip >>= 8; 57 | $str = ($ip & 255).".$str"; 58 | } 59 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/contrib/unicode2nginx/unicode-to-nginx.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -w 2 | 3 | # Convert unicode mappings to nginx configuration file format. 4 | 5 | # You may find useful mappings in various places, including 6 | # unicode.org official site: 7 | # 8 | # http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXT 9 | # http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT 10 | 11 | # Needs perl 5.6 or later. 12 | 13 | # Written by Maxim Dounin, mdounin@mdounin.ru 14 | 15 | ############################################################################### 16 | 17 | require 5.006; 18 | 19 | while (<>) { 20 | # Skip comments and empty lines 21 | 22 | next if /^#/; 23 | next if /^\s*$/; 24 | chomp; 25 | 26 | # Convert mappings 27 | 28 | if (/^\s*0x(..)\s*0x(....)\s*(#.*)/) { 29 | # Mapping "#" 30 | my $cs_code = $1; 31 | my $un_code = $2; 32 | my $un_name = $3; 33 | 34 | # Produce UTF-8 sequence from character code; 35 | 36 | my $un_utf8 = join('', 37 | map { sprintf("%02X", $_) } 38 | unpack("U0C*", pack("U", hex($un_code))) 39 | ); 40 | 41 | print " $cs_code $un_utf8 ; $un_name\n"; 42 | 43 | } else { 44 | warn "Unrecognized line: '$_'"; 45 | } 46 | } 47 | 48 | ############################################################################### 49 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/contrib/vim/ftdetect/nginx.vim: -------------------------------------------------------------------------------- 1 | au BufRead,BufNewFile *.nginx set ft=nginx 2 | au BufRead,BufNewFile */etc/nginx/* set ft=nginx 3 | au BufRead,BufNewFile */usr/local/nginx/conf/* set ft=nginx 4 | au BufRead,BufNewFile nginx.conf set ft=nginx 5 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/contrib/vim/ftplugin/nginx.vim: -------------------------------------------------------------------------------- 1 | setlocal commentstring=#\ %s 2 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/contrib/vim/indent/nginx.vim: -------------------------------------------------------------------------------- 1 | if exists("b:did_indent") 2 | finish 3 | endif 4 | let b:did_indent = 1 5 | 6 | setlocal indentexpr= 7 | 8 | " cindent actually works for nginx' simple file structure 9 | setlocal cindent 10 | " Just make sure that the comments are not reset as defs would be. 11 | setlocal cinkeys-=0# 12 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/html/50x.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Error 5 | 12 | 13 | 14 |

An error occurred.

15 |

Sorry, the page you are looking for is currently unavailable.
16 | Please try again later.

17 |

If you are the system administrator of this resource then you should check 18 | the error log for details.

19 |

Faithfully yours, nginx.

20 | 21 | 22 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Welcome to nginx! 5 | 12 | 13 | 14 |

Welcome to nginx!

15 |

If you see this page, the nginx web server is successfully installed and 16 | working. Further configuration is required.

17 | 18 |

For online documentation and support please refer to 19 | nginx.org.
20 | Commercial support is available at 21 | nginx.com.

22 | 23 |

Thank you for using nginx.

24 | 25 | 26 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/nginx.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGINX_H_INCLUDED_ 9 | #define _NGINX_H_INCLUDED_ 10 | 11 | 12 | #define nginx_version 1015012 13 | #define NGINX_VERSION "1.15.12" 14 | #define NGINX_VER "nginx/" NGINX_VERSION 15 | 16 | #ifdef NGX_BUILD 17 | #define NGINX_VER_BUILD NGINX_VER " (" NGX_BUILD ")" 18 | #else 19 | #define NGINX_VER_BUILD NGINX_VER 20 | #endif 21 | 22 | #define NGINX_VAR "NGINX" 23 | #define NGX_OLDPID_EXT ".oldbin" 24 | 25 | 26 | #endif /* _NGINX_H_INCLUDED_ */ 27 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_array.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_ARRAY_H_INCLUDED_ 9 | #define _NGX_ARRAY_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | typedef struct { 17 | void *elts; 18 | ngx_uint_t nelts; 19 | size_t size; 20 | ngx_uint_t nalloc; 21 | ngx_pool_t *pool; 22 | } ngx_array_t; 23 | 24 | 25 | ngx_array_t *ngx_array_create(ngx_pool_t *p, ngx_uint_t n, size_t size); 26 | void ngx_array_destroy(ngx_array_t *a); 27 | void *ngx_array_push(ngx_array_t *a); 28 | void *ngx_array_push_n(ngx_array_t *a, ngx_uint_t n); 29 | 30 | 31 | static ngx_inline ngx_int_t 32 | ngx_array_init(ngx_array_t *array, ngx_pool_t *pool, ngx_uint_t n, size_t size) 33 | { 34 | /* 35 | * set "array->nelts" before "array->elts", otherwise MSVC thinks 36 | * that "array->nelts" may be used without having been initialized 37 | */ 38 | 39 | array->nelts = 0; 40 | array->size = size; 41 | array->nalloc = n; 42 | array->pool = pool; 43 | 44 | array->elts = ngx_palloc(pool, n * size); 45 | if (array->elts == NULL) { 46 | return NGX_ERROR; 47 | } 48 | 49 | return NGX_OK; 50 | } 51 | 52 | 53 | #endif /* _NGX_ARRAY_H_INCLUDED_ */ 54 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_crc.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_CRC_H_INCLUDED_ 9 | #define _NGX_CRC_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | /* 32-bit crc16 */ 17 | 18 | static ngx_inline uint32_t 19 | ngx_crc(u_char *data, size_t len) 20 | { 21 | uint32_t sum; 22 | 23 | for (sum = 0; len; len--) { 24 | 25 | /* 26 | * gcc 2.95.2 x86 and icc 7.1.006 compile 27 | * that operator into the single "rol" opcode, 28 | * msvc 6.0sp2 compiles it into four opcodes. 29 | */ 30 | sum = sum >> 1 | sum << 31; 31 | 32 | sum += *data++; 33 | } 34 | 35 | return sum; 36 | } 37 | 38 | 39 | #endif /* _NGX_CRC_H_INCLUDED_ */ 40 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_crc32.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_CRC32_H_INCLUDED_ 9 | #define _NGX_CRC32_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | extern uint32_t *ngx_crc32_table_short; 17 | extern uint32_t ngx_crc32_table256[]; 18 | 19 | 20 | static ngx_inline uint32_t 21 | ngx_crc32_short(u_char *p, size_t len) 22 | { 23 | u_char c; 24 | uint32_t crc; 25 | 26 | crc = 0xffffffff; 27 | 28 | while (len--) { 29 | c = *p++; 30 | crc = ngx_crc32_table_short[(crc ^ (c & 0xf)) & 0xf] ^ (crc >> 4); 31 | crc = ngx_crc32_table_short[(crc ^ (c >> 4)) & 0xf] ^ (crc >> 4); 32 | } 33 | 34 | return crc ^ 0xffffffff; 35 | } 36 | 37 | 38 | static ngx_inline uint32_t 39 | ngx_crc32_long(u_char *p, size_t len) 40 | { 41 | uint32_t crc; 42 | 43 | crc = 0xffffffff; 44 | 45 | while (len--) { 46 | crc = ngx_crc32_table256[(crc ^ *p++) & 0xff] ^ (crc >> 8); 47 | } 48 | 49 | return crc ^ 0xffffffff; 50 | } 51 | 52 | 53 | #define ngx_crc32_init(crc) \ 54 | crc = 0xffffffff 55 | 56 | 57 | static ngx_inline void 58 | ngx_crc32_update(uint32_t *crc, u_char *p, size_t len) 59 | { 60 | uint32_t c; 61 | 62 | c = *crc; 63 | 64 | while (len--) { 65 | c = ngx_crc32_table256[(c ^ *p++) & 0xff] ^ (c >> 8); 66 | } 67 | 68 | *crc = c; 69 | } 70 | 71 | 72 | #define ngx_crc32_final(crc) \ 73 | crc ^= 0xffffffff 74 | 75 | 76 | ngx_int_t ngx_crc32_table_init(void); 77 | 78 | 79 | #endif /* _NGX_CRC32_H_INCLUDED_ */ 80 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_crypt.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_CRYPT_H_INCLUDED_ 9 | #define _NGX_CRYPT_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | ngx_int_t ngx_crypt(ngx_pool_t *pool, u_char *key, u_char *salt, 17 | u_char **encrypted); 18 | 19 | 20 | #endif /* _NGX_CRYPT_H_INCLUDED_ */ 21 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_list.c: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #include 9 | #include 10 | 11 | 12 | ngx_list_t * 13 | ngx_list_create(ngx_pool_t *pool, ngx_uint_t n, size_t size) 14 | { 15 | ngx_list_t *list; 16 | 17 | list = ngx_palloc(pool, sizeof(ngx_list_t)); 18 | if (list == NULL) { 19 | return NULL; 20 | } 21 | 22 | if (ngx_list_init(list, pool, n, size) != NGX_OK) { 23 | return NULL; 24 | } 25 | 26 | return list; 27 | } 28 | 29 | 30 | void * 31 | ngx_list_push(ngx_list_t *l) 32 | { 33 | void *elt; 34 | ngx_list_part_t *last; 35 | 36 | last = l->last; 37 | 38 | if (last->nelts == l->nalloc) { 39 | 40 | /* the last part is full, allocate a new list part */ 41 | 42 | last = ngx_palloc(l->pool, sizeof(ngx_list_part_t)); 43 | if (last == NULL) { 44 | return NULL; 45 | } 46 | 47 | last->elts = ngx_palloc(l->pool, l->nalloc * l->size); 48 | if (last->elts == NULL) { 49 | return NULL; 50 | } 51 | 52 | last->nelts = 0; 53 | last->next = NULL; 54 | 55 | l->last->next = last; 56 | l->last = last; 57 | } 58 | 59 | elt = (char *) last->elts + l->size * last->nelts; 60 | last->nelts++; 61 | 62 | return elt; 63 | } 64 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_md5.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_MD5_H_INCLUDED_ 9 | #define _NGX_MD5_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | typedef struct { 17 | uint64_t bytes; 18 | uint32_t a, b, c, d; 19 | u_char buffer[64]; 20 | } ngx_md5_t; 21 | 22 | 23 | void ngx_md5_init(ngx_md5_t *ctx); 24 | void ngx_md5_update(ngx_md5_t *ctx, const void *data, size_t size); 25 | void ngx_md5_final(u_char result[16], ngx_md5_t *ctx); 26 | 27 | 28 | #endif /* _NGX_MD5_H_INCLUDED_ */ 29 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_murmurhash.c: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Austin Appleby 4 | */ 5 | 6 | 7 | #include 8 | #include 9 | 10 | 11 | uint32_t 12 | ngx_murmur_hash2(u_char *data, size_t len) 13 | { 14 | uint32_t h, k; 15 | 16 | h = 0 ^ len; 17 | 18 | while (len >= 4) { 19 | k = data[0]; 20 | k |= data[1] << 8; 21 | k |= data[2] << 16; 22 | k |= data[3] << 24; 23 | 24 | k *= 0x5bd1e995; 25 | k ^= k >> 24; 26 | k *= 0x5bd1e995; 27 | 28 | h *= 0x5bd1e995; 29 | h ^= k; 30 | 31 | data += 4; 32 | len -= 4; 33 | } 34 | 35 | switch (len) { 36 | case 3: 37 | h ^= data[2] << 16; 38 | /* fall through */ 39 | case 2: 40 | h ^= data[1] << 8; 41 | /* fall through */ 42 | case 1: 43 | h ^= data[0]; 44 | h *= 0x5bd1e995; 45 | } 46 | 47 | h ^= h >> 13; 48 | h *= 0x5bd1e995; 49 | h ^= h >> 15; 50 | 51 | return h; 52 | } 53 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_murmurhash.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_MURMURHASH_H_INCLUDED_ 9 | #define _NGX_MURMURHASH_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | uint32_t ngx_murmur_hash2(u_char *data, size_t len); 17 | 18 | 19 | #endif /* _NGX_MURMURHASH_H_INCLUDED_ */ 20 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_parse.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_PARSE_H_INCLUDED_ 9 | #define _NGX_PARSE_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | ssize_t ngx_parse_size(ngx_str_t *line); 17 | off_t ngx_parse_offset(ngx_str_t *line); 18 | ngx_int_t ngx_parse_time(ngx_str_t *line, ngx_uint_t is_sec); 19 | 20 | 21 | #endif /* _NGX_PARSE_H_INCLUDED_ */ 22 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_parse_time.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_PARSE_TIME_H_INCLUDED_ 9 | #define _NGX_PARSE_TIME_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | time_t ngx_parse_http_time(u_char *value, size_t len); 17 | 18 | /* compatibility */ 19 | #define ngx_http_parse_time(value, len) ngx_parse_http_time(value, len) 20 | 21 | 22 | #endif /* _NGX_PARSE_TIME_H_INCLUDED_ */ 23 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_proxy_protocol.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Roman Arutyunyan 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_PROXY_PROTOCOL_H_INCLUDED_ 9 | #define _NGX_PROXY_PROTOCOL_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | #define NGX_PROXY_PROTOCOL_MAX_HEADER 107 17 | 18 | 19 | u_char *ngx_proxy_protocol_read(ngx_connection_t *c, u_char *buf, 20 | u_char *last); 21 | u_char *ngx_proxy_protocol_write(ngx_connection_t *c, u_char *buf, 22 | u_char *last); 23 | 24 | 25 | #endif /* _NGX_PROXY_PROTOCOL_H_INCLUDED_ */ 26 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_radix_tree.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_RADIX_TREE_H_INCLUDED_ 9 | #define _NGX_RADIX_TREE_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | #define NGX_RADIX_NO_VALUE (uintptr_t) -1 17 | 18 | typedef struct ngx_radix_node_s ngx_radix_node_t; 19 | 20 | struct ngx_radix_node_s { 21 | ngx_radix_node_t *right; 22 | ngx_radix_node_t *left; 23 | ngx_radix_node_t *parent; 24 | uintptr_t value; 25 | }; 26 | 27 | 28 | typedef struct { 29 | ngx_radix_node_t *root; 30 | ngx_pool_t *pool; 31 | ngx_radix_node_t *free; 32 | char *start; 33 | size_t size; 34 | } ngx_radix_tree_t; 35 | 36 | 37 | ngx_radix_tree_t *ngx_radix_tree_create(ngx_pool_t *pool, 38 | ngx_int_t preallocate); 39 | 40 | ngx_int_t ngx_radix32tree_insert(ngx_radix_tree_t *tree, 41 | uint32_t key, uint32_t mask, uintptr_t value); 42 | ngx_int_t ngx_radix32tree_delete(ngx_radix_tree_t *tree, 43 | uint32_t key, uint32_t mask); 44 | uintptr_t ngx_radix32tree_find(ngx_radix_tree_t *tree, uint32_t key); 45 | 46 | #if (NGX_HAVE_INET6) 47 | ngx_int_t ngx_radix128tree_insert(ngx_radix_tree_t *tree, 48 | u_char *key, u_char *mask, uintptr_t value); 49 | ngx_int_t ngx_radix128tree_delete(ngx_radix_tree_t *tree, 50 | u_char *key, u_char *mask); 51 | uintptr_t ngx_radix128tree_find(ngx_radix_tree_t *tree, u_char *key); 52 | #endif 53 | 54 | 55 | #endif /* _NGX_RADIX_TREE_H_INCLUDED_ */ 56 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_regex.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_REGEX_H_INCLUDED_ 9 | #define _NGX_REGEX_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | #include 16 | 17 | 18 | #define NGX_REGEX_NO_MATCHED PCRE_ERROR_NOMATCH /* -1 */ 19 | 20 | #define NGX_REGEX_CASELESS PCRE_CASELESS 21 | 22 | 23 | typedef struct { 24 | pcre *code; 25 | pcre_extra *extra; 26 | } ngx_regex_t; 27 | 28 | 29 | typedef struct { 30 | ngx_str_t pattern; 31 | ngx_pool_t *pool; 32 | ngx_int_t options; 33 | 34 | ngx_regex_t *regex; 35 | int captures; 36 | int named_captures; 37 | int name_size; 38 | u_char *names; 39 | ngx_str_t err; 40 | } ngx_regex_compile_t; 41 | 42 | 43 | typedef struct { 44 | ngx_regex_t *regex; 45 | u_char *name; 46 | } ngx_regex_elt_t; 47 | 48 | 49 | void ngx_regex_init(void); 50 | ngx_int_t ngx_regex_compile(ngx_regex_compile_t *rc); 51 | 52 | #define ngx_regex_exec(re, s, captures, size) \ 53 | pcre_exec(re->code, re->extra, (const char *) (s)->data, (s)->len, 0, 0, \ 54 | captures, size) 55 | #define ngx_regex_exec_n "pcre_exec()" 56 | 57 | ngx_int_t ngx_regex_exec_array(ngx_array_t *a, ngx_str_t *s, ngx_log_t *log); 58 | 59 | 60 | #endif /* _NGX_REGEX_H_INCLUDED_ */ 61 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_rwlock.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Ruslan Ermilov 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_RWLOCK_H_INCLUDED_ 9 | #define _NGX_RWLOCK_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | void ngx_rwlock_wlock(ngx_atomic_t *lock); 17 | void ngx_rwlock_rlock(ngx_atomic_t *lock); 18 | void ngx_rwlock_unlock(ngx_atomic_t *lock); 19 | void ngx_rwlock_downgrade(ngx_atomic_t *lock); 20 | 21 | 22 | #endif /* _NGX_RWLOCK_H_INCLUDED_ */ 23 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_sha1.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_SHA1_H_INCLUDED_ 9 | #define _NGX_SHA1_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | typedef struct { 17 | uint64_t bytes; 18 | uint32_t a, b, c, d, e, f; 19 | u_char buffer[64]; 20 | } ngx_sha1_t; 21 | 22 | 23 | void ngx_sha1_init(ngx_sha1_t *ctx); 24 | void ngx_sha1_update(ngx_sha1_t *ctx, const void *data, size_t size); 25 | void ngx_sha1_final(u_char result[20], ngx_sha1_t *ctx); 26 | 27 | 28 | #endif /* _NGX_SHA1_H_INCLUDED_ */ 29 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_shmtx.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_SHMTX_H_INCLUDED_ 9 | #define _NGX_SHMTX_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | typedef struct { 17 | ngx_atomic_t lock; 18 | #if (NGX_HAVE_POSIX_SEM) 19 | ngx_atomic_t wait; 20 | #endif 21 | } ngx_shmtx_sh_t; 22 | 23 | 24 | typedef struct { 25 | #if (NGX_HAVE_ATOMIC_OPS) 26 | ngx_atomic_t *lock; 27 | #if (NGX_HAVE_POSIX_SEM) 28 | ngx_atomic_t *wait; 29 | ngx_uint_t semaphore; 30 | sem_t sem; 31 | #endif 32 | #else 33 | ngx_fd_t fd; 34 | u_char *name; 35 | #endif 36 | ngx_uint_t spin; 37 | } ngx_shmtx_t; 38 | 39 | 40 | ngx_int_t ngx_shmtx_create(ngx_shmtx_t *mtx, ngx_shmtx_sh_t *addr, 41 | u_char *name); 42 | void ngx_shmtx_destroy(ngx_shmtx_t *mtx); 43 | ngx_uint_t ngx_shmtx_trylock(ngx_shmtx_t *mtx); 44 | void ngx_shmtx_lock(ngx_shmtx_t *mtx); 45 | void ngx_shmtx_unlock(ngx_shmtx_t *mtx); 46 | ngx_uint_t ngx_shmtx_force_unlock(ngx_shmtx_t *mtx, ngx_pid_t pid); 47 | 48 | 49 | #endif /* _NGX_SHMTX_H_INCLUDED_ */ 50 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_spinlock.c: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #include 9 | #include 10 | 11 | 12 | void 13 | ngx_spinlock(ngx_atomic_t *lock, ngx_atomic_int_t value, ngx_uint_t spin) 14 | { 15 | 16 | #if (NGX_HAVE_ATOMIC_OPS) 17 | 18 | ngx_uint_t i, n; 19 | 20 | for ( ;; ) { 21 | 22 | if (*lock == 0 && ngx_atomic_cmp_set(lock, 0, value)) { 23 | return; 24 | } 25 | 26 | if (ngx_ncpu > 1) { 27 | 28 | for (n = 1; n < spin; n <<= 1) { 29 | 30 | for (i = 0; i < n; i++) { 31 | ngx_cpu_pause(); 32 | } 33 | 34 | if (*lock == 0 && ngx_atomic_cmp_set(lock, 0, value)) { 35 | return; 36 | } 37 | } 38 | } 39 | 40 | ngx_sched_yield(); 41 | } 42 | 43 | #else 44 | 45 | #if (NGX_THREADS) 46 | 47 | #error ngx_spinlock() or ngx_atomic_cmp_set() are not defined ! 48 | 49 | #endif 50 | 51 | #endif 52 | 53 | } 54 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_syslog.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Nginx, Inc. 4 | */ 5 | 6 | 7 | #ifndef _NGX_SYSLOG_H_INCLUDED_ 8 | #define _NGX_SYSLOG_H_INCLUDED_ 9 | 10 | 11 | typedef struct { 12 | ngx_uint_t facility; 13 | ngx_uint_t severity; 14 | ngx_str_t tag; 15 | 16 | ngx_addr_t server; 17 | ngx_connection_t conn; 18 | unsigned busy:1; 19 | unsigned nohostname:1; 20 | } ngx_syslog_peer_t; 21 | 22 | 23 | char *ngx_syslog_process_conf(ngx_conf_t *cf, ngx_syslog_peer_t *peer); 24 | u_char *ngx_syslog_add_header(ngx_syslog_peer_t *peer, u_char *buf); 25 | void ngx_syslog_writer(ngx_log_t *log, ngx_uint_t level, u_char *buf, 26 | size_t len); 27 | ssize_t ngx_syslog_send(ngx_syslog_peer_t *peer, u_char *buf, size_t len); 28 | 29 | 30 | #endif /* _NGX_SYSLOG_H_INCLUDED_ */ 31 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_thread_pool.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Nginx, Inc. 4 | * Copyright (C) Valentin V. Bartenev 5 | */ 6 | 7 | 8 | #ifndef _NGX_THREAD_POOL_H_INCLUDED_ 9 | #define _NGX_THREAD_POOL_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | 17 | struct ngx_thread_task_s { 18 | ngx_thread_task_t *next; 19 | ngx_uint_t id; 20 | void *ctx; 21 | void (*handler)(void *data, ngx_log_t *log); 22 | ngx_event_t event; 23 | }; 24 | 25 | 26 | typedef struct ngx_thread_pool_s ngx_thread_pool_t; 27 | 28 | 29 | ngx_thread_pool_t *ngx_thread_pool_add(ngx_conf_t *cf, ngx_str_t *name); 30 | ngx_thread_pool_t *ngx_thread_pool_get(ngx_cycle_t *cycle, ngx_str_t *name); 31 | 32 | ngx_thread_task_t *ngx_thread_task_alloc(ngx_pool_t *pool, size_t size); 33 | ngx_int_t ngx_thread_task_post(ngx_thread_pool_t *tp, ngx_thread_task_t *task); 34 | 35 | 36 | #endif /* _NGX_THREAD_POOL_H_INCLUDED_ */ 37 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/core/ngx_times.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_TIMES_H_INCLUDED_ 9 | #define _NGX_TIMES_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | typedef struct { 17 | time_t sec; 18 | ngx_uint_t msec; 19 | ngx_int_t gmtoff; 20 | } ngx_time_t; 21 | 22 | 23 | void ngx_time_init(void); 24 | void ngx_time_update(void); 25 | void ngx_time_sigsafe_update(void); 26 | u_char *ngx_http_time(u_char *buf, time_t t); 27 | u_char *ngx_http_cookie_time(u_char *buf, time_t t); 28 | void ngx_gmtime(time_t t, ngx_tm_t *tp); 29 | 30 | time_t ngx_next_time(time_t when); 31 | #define ngx_next_time_n "mktime()" 32 | 33 | 34 | extern volatile ngx_time_t *ngx_cached_time; 35 | 36 | #define ngx_time() ngx_cached_time->sec 37 | #define ngx_timeofday() (ngx_time_t *) ngx_cached_time 38 | 39 | extern volatile ngx_str_t ngx_cached_err_log_time; 40 | extern volatile ngx_str_t ngx_cached_http_time; 41 | extern volatile ngx_str_t ngx_cached_http_log_time; 42 | extern volatile ngx_str_t ngx_cached_http_log_iso8601; 43 | extern volatile ngx_str_t ngx_cached_syslog_time; 44 | 45 | /* 46 | * milliseconds elapsed since some unspecified point in the past 47 | * and truncated to ngx_msec_t, used in event timers 48 | */ 49 | extern volatile ngx_msec_t ngx_current_msec; 50 | 51 | 52 | #endif /* _NGX_TIMES_H_INCLUDED_ */ 53 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/event/ngx_event_posted.c: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | 13 | ngx_queue_t ngx_posted_accept_events; 14 | ngx_queue_t ngx_posted_events; 15 | 16 | 17 | void 18 | ngx_event_process_posted(ngx_cycle_t *cycle, ngx_queue_t *posted) 19 | { 20 | ngx_queue_t *q; 21 | ngx_event_t *ev; 22 | 23 | while (!ngx_queue_empty(posted)) { 24 | 25 | q = ngx_queue_head(posted); 26 | ev = ngx_queue_data(q, ngx_event_t, queue); 27 | 28 | ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, 29 | "posted event %p", ev); 30 | 31 | ngx_delete_posted_event(ev); 32 | 33 | ev->handler(ev); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/http/modules/perl/Makefile.PL: -------------------------------------------------------------------------------- 1 | 2 | # Copyright (C) Igor Sysoev 3 | # Copyright (C) Nginx, Inc. 4 | 5 | use 5.006001; 6 | use ExtUtils::MakeMaker; 7 | 8 | WriteMakefile( 9 | NAME => 'nginx', 10 | VERSION_FROM => 'nginx.pm', # finds $VERSION 11 | PREREQ_PM => {}, # e.g., Module::Name => 1.1 12 | 13 | ABSTRACT_FROM => 'nginx.pm', # retrieve abstract from module 14 | AUTHOR => 'Igor Sysoev', 15 | 16 | CCFLAGS => "$ENV{NGX_PM_CFLAGS}", 17 | OPTIMIZE => '-O', 18 | 19 | LDDLFLAGS => "$ENV{NGX_PM_LDFLAGS}", 20 | 21 | INC => join(" ", map { 22 | m#^/# ? "-I $_" : "-I ../../../../../$_" 23 | } (split /\s+/, $ENV{NGX_INCS})), 24 | 25 | depend => { 26 | 'nginx.c' => join(" ", map { 27 | m#^/# ? $_ : "../../../../../$_" 28 | } (split(/\s+/, $ENV{NGX_DEPS}), 29 | "src/http/modules/perl/ngx_http_perl_module.h")) 30 | }, 31 | 32 | PM => { 33 | 'nginx.pm' => '$(INST_LIBDIR)/nginx.pm' 34 | } 35 | ); 36 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/http/modules/perl/ngx_http_perl_module.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_HTTP_PERL_MODULE_H_INCLUDED_ 9 | #define _NGX_HTTP_PERL_MODULE_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | #include 18 | #include 19 | 20 | 21 | typedef ngx_http_request_t *nginx; 22 | 23 | typedef struct { 24 | ngx_str_t filename; 25 | ngx_str_t redirect_uri; 26 | ngx_str_t redirect_args; 27 | 28 | SV *next; 29 | 30 | ngx_uint_t done; /* unsigned done:1; */ 31 | 32 | ngx_array_t *variables; /* array of ngx_http_perl_var_t */ 33 | 34 | #if (NGX_HTTP_SSI) 35 | ngx_http_ssi_ctx_t *ssi; 36 | #endif 37 | } ngx_http_perl_ctx_t; 38 | 39 | 40 | typedef struct { 41 | ngx_uint_t hash; 42 | ngx_str_t name; 43 | ngx_str_t value; 44 | } ngx_http_perl_var_t; 45 | 46 | 47 | extern ngx_module_t ngx_http_perl_module; 48 | 49 | 50 | /* 51 | * workaround for "unused variable `Perl___notused'" warning 52 | * when building with perl 5.6.1 53 | */ 54 | #ifndef PERL_IMPLICIT_CONTEXT 55 | #undef dTHXa 56 | #define dTHXa(a) 57 | #endif 58 | 59 | 60 | extern void boot_DynaLoader(pTHX_ CV* cv); 61 | 62 | 63 | void ngx_http_perl_handle_request(ngx_http_request_t *r); 64 | void ngx_http_perl_sleep_handler(ngx_http_request_t *r); 65 | 66 | 67 | #endif /* _NGX_HTTP_PERL_MODULE_H_INCLUDED_ */ 68 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/http/modules/perl/typemap: -------------------------------------------------------------------------------- 1 | TYPEMAP 2 | 3 | nginx T_PTROBJ 4 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/http/v2/ngx_http_v2_encode.c: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Nginx, Inc. 4 | * Copyright (C) Valentin V. Bartenev 5 | */ 6 | 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | 13 | static u_char *ngx_http_v2_write_int(u_char *pos, ngx_uint_t prefix, 14 | ngx_uint_t value); 15 | 16 | 17 | u_char * 18 | ngx_http_v2_string_encode(u_char *dst, u_char *src, size_t len, u_char *tmp, 19 | ngx_uint_t lower) 20 | { 21 | size_t hlen; 22 | 23 | hlen = ngx_http_v2_huff_encode(src, len, tmp, lower); 24 | 25 | if (hlen > 0) { 26 | *dst = NGX_HTTP_V2_ENCODE_HUFF; 27 | dst = ngx_http_v2_write_int(dst, ngx_http_v2_prefix(7), hlen); 28 | return ngx_cpymem(dst, tmp, hlen); 29 | } 30 | 31 | *dst = NGX_HTTP_V2_ENCODE_RAW; 32 | dst = ngx_http_v2_write_int(dst, ngx_http_v2_prefix(7), len); 33 | 34 | if (lower) { 35 | ngx_strlow(dst, src, len); 36 | return dst + len; 37 | } 38 | 39 | return ngx_cpymem(dst, src, len); 40 | } 41 | 42 | 43 | static u_char * 44 | ngx_http_v2_write_int(u_char *pos, ngx_uint_t prefix, ngx_uint_t value) 45 | { 46 | if (value < prefix) { 47 | *pos++ |= value; 48 | return pos; 49 | } 50 | 51 | *pos++ |= prefix; 52 | value -= prefix; 53 | 54 | while (value >= 128) { 55 | *pos++ = value % 128 + 128; 56 | value /= 128; 57 | } 58 | 59 | *pos++ = (u_char) value; 60 | 61 | return pos; 62 | } 63 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/http/v2/ngx_http_v2_module.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Nginx, Inc. 4 | * Copyright (C) Valentin V. Bartenev 5 | */ 6 | 7 | 8 | #ifndef _NGX_HTTP_V2_MODULE_H_INCLUDED_ 9 | #define _NGX_HTTP_V2_MODULE_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | 17 | typedef struct { 18 | size_t recv_buffer_size; 19 | u_char *recv_buffer; 20 | } ngx_http_v2_main_conf_t; 21 | 22 | 23 | typedef struct { 24 | size_t pool_size; 25 | ngx_uint_t concurrent_streams; 26 | ngx_uint_t concurrent_pushes; 27 | ngx_uint_t max_requests; 28 | size_t max_field_size; 29 | size_t max_header_size; 30 | size_t preread_size; 31 | ngx_uint_t streams_index_mask; 32 | ngx_msec_t recv_timeout; 33 | ngx_msec_t idle_timeout; 34 | } ngx_http_v2_srv_conf_t; 35 | 36 | 37 | typedef struct { 38 | size_t chunk_size; 39 | 40 | ngx_flag_t push_preload; 41 | 42 | ngx_flag_t push; 43 | ngx_array_t *pushes; 44 | } ngx_http_v2_loc_conf_t; 45 | 46 | 47 | extern ngx_module_t ngx_http_v2_module; 48 | 49 | 50 | #endif /* _NGX_HTTP_V2_MODULE_H_INCLUDED_ */ 51 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/mail/ngx_mail_imap_module.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_MAIL_IMAP_MODULE_H_INCLUDED_ 9 | #define _NGX_MAIL_IMAP_MODULE_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | 17 | typedef struct { 18 | size_t client_buffer_size; 19 | 20 | ngx_str_t capability; 21 | ngx_str_t starttls_capability; 22 | ngx_str_t starttls_only_capability; 23 | 24 | ngx_uint_t auth_methods; 25 | 26 | ngx_array_t capabilities; 27 | } ngx_mail_imap_srv_conf_t; 28 | 29 | 30 | void ngx_mail_imap_init_session(ngx_mail_session_t *s, ngx_connection_t *c); 31 | void ngx_mail_imap_init_protocol(ngx_event_t *rev); 32 | void ngx_mail_imap_auth_state(ngx_event_t *rev); 33 | ngx_int_t ngx_mail_imap_parse_command(ngx_mail_session_t *s); 34 | 35 | 36 | extern ngx_module_t ngx_mail_imap_module; 37 | 38 | 39 | #endif /* _NGX_MAIL_IMAP_MODULE_H_INCLUDED_ */ 40 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/mail/ngx_mail_pop3_module.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_MAIL_POP3_MODULE_H_INCLUDED_ 9 | #define _NGX_MAIL_POP3_MODULE_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | 17 | typedef struct { 18 | ngx_str_t capability; 19 | ngx_str_t starttls_capability; 20 | ngx_str_t starttls_only_capability; 21 | ngx_str_t auth_capability; 22 | 23 | ngx_uint_t auth_methods; 24 | 25 | ngx_array_t capabilities; 26 | } ngx_mail_pop3_srv_conf_t; 27 | 28 | 29 | void ngx_mail_pop3_init_session(ngx_mail_session_t *s, ngx_connection_t *c); 30 | void ngx_mail_pop3_init_protocol(ngx_event_t *rev); 31 | void ngx_mail_pop3_auth_state(ngx_event_t *rev); 32 | ngx_int_t ngx_mail_pop3_parse_command(ngx_mail_session_t *s); 33 | 34 | 35 | extern ngx_module_t ngx_mail_pop3_module; 36 | 37 | 38 | #endif /* _NGX_MAIL_POP3_MODULE_H_INCLUDED_ */ 39 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/mail/ngx_mail_smtp_module.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_MAIL_SMTP_MODULE_H_INCLUDED_ 9 | #define _NGX_MAIL_SMTP_MODULE_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | 18 | typedef struct { 19 | ngx_msec_t greeting_delay; 20 | 21 | size_t client_buffer_size; 22 | 23 | ngx_str_t capability; 24 | ngx_str_t starttls_capability; 25 | ngx_str_t starttls_only_capability; 26 | 27 | ngx_str_t server_name; 28 | ngx_str_t greeting; 29 | 30 | ngx_uint_t auth_methods; 31 | 32 | ngx_array_t capabilities; 33 | } ngx_mail_smtp_srv_conf_t; 34 | 35 | 36 | void ngx_mail_smtp_init_session(ngx_mail_session_t *s, ngx_connection_t *c); 37 | void ngx_mail_smtp_init_protocol(ngx_event_t *rev); 38 | void ngx_mail_smtp_auth_state(ngx_event_t *rev); 39 | ngx_int_t ngx_mail_smtp_parse_command(ngx_mail_session_t *s); 40 | 41 | 42 | extern ngx_module_t ngx_mail_smtp_module; 43 | 44 | 45 | #endif /* _NGX_MAIL_SMTP_MODULE_H_INCLUDED_ */ 46 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/mail/ngx_mail_ssl_module.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_MAIL_SSL_H_INCLUDED_ 9 | #define _NGX_MAIL_SSL_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | 17 | #define NGX_MAIL_STARTTLS_OFF 0 18 | #define NGX_MAIL_STARTTLS_ON 1 19 | #define NGX_MAIL_STARTTLS_ONLY 2 20 | 21 | 22 | typedef struct { 23 | ngx_flag_t enable; 24 | ngx_flag_t prefer_server_ciphers; 25 | 26 | ngx_ssl_t ssl; 27 | 28 | ngx_uint_t starttls; 29 | ngx_uint_t listen; 30 | ngx_uint_t protocols; 31 | 32 | ngx_uint_t verify; 33 | ngx_uint_t verify_depth; 34 | 35 | ssize_t builtin_session_cache; 36 | 37 | time_t session_timeout; 38 | 39 | ngx_array_t *certificates; 40 | ngx_array_t *certificate_keys; 41 | 42 | ngx_str_t dhparam; 43 | ngx_str_t ecdh_curve; 44 | ngx_str_t client_certificate; 45 | ngx_str_t trusted_certificate; 46 | ngx_str_t crl; 47 | 48 | ngx_str_t ciphers; 49 | 50 | ngx_array_t *passwords; 51 | 52 | ngx_shm_zone_t *shm_zone; 53 | 54 | ngx_flag_t session_tickets; 55 | ngx_array_t *session_ticket_keys; 56 | 57 | u_char *file; 58 | ngx_uint_t line; 59 | } ngx_mail_ssl_conf_t; 60 | 61 | 62 | extern ngx_module_t ngx_mail_ssl_module; 63 | 64 | 65 | #endif /* _NGX_MAIL_SSL_H_INCLUDED_ */ 66 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/misc/ngx_cpp_test_module.cpp: -------------------------------------------------------------------------------- 1 | 2 | // stub module to test header files' C++ compatibility 3 | 4 | extern "C" { 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | #include 12 | 13 | #include 14 | #include 15 | #include 16 | #include 17 | } 18 | 19 | // nginx header files should go before other, because they define 64-bit off_t 20 | // #include 21 | 22 | 23 | void ngx_cpp_test_handler(void *data); 24 | 25 | void 26 | ngx_cpp_test_handler(void *data) 27 | { 28 | return; 29 | } 30 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_alloc.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_ALLOC_H_INCLUDED_ 9 | #define _NGX_ALLOC_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | void *ngx_alloc(size_t size, ngx_log_t *log); 17 | void *ngx_calloc(size_t size, ngx_log_t *log); 18 | 19 | #define ngx_free free 20 | 21 | 22 | /* 23 | * Linux has memalign() or posix_memalign() 24 | * Solaris has memalign() 25 | * FreeBSD 7.0 has posix_memalign(), besides, early version's malloc() 26 | * aligns allocations bigger than page size at the page boundary 27 | */ 28 | 29 | #if (NGX_HAVE_POSIX_MEMALIGN || NGX_HAVE_MEMALIGN) 30 | 31 | void *ngx_memalign(size_t alignment, size_t size, ngx_log_t *log); 32 | 33 | #else 34 | 35 | #define ngx_memalign(alignment, size, log) ngx_alloc(size, log) 36 | 37 | #endif 38 | 39 | 40 | extern ngx_uint_t ngx_pagesize; 41 | extern ngx_uint_t ngx_pagesize_shift; 42 | extern ngx_uint_t ngx_cacheline_size; 43 | 44 | 45 | #endif /* _NGX_ALLOC_H_INCLUDED_ */ 46 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_channel.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_CHANNEL_H_INCLUDED_ 9 | #define _NGX_CHANNEL_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | 17 | typedef struct { 18 | ngx_uint_t command; 19 | ngx_pid_t pid; 20 | ngx_int_t slot; 21 | ngx_fd_t fd; 22 | } ngx_channel_t; 23 | 24 | 25 | ngx_int_t ngx_write_channel(ngx_socket_t s, ngx_channel_t *ch, size_t size, 26 | ngx_log_t *log); 27 | ngx_int_t ngx_read_channel(ngx_socket_t s, ngx_channel_t *ch, size_t size, 28 | ngx_log_t *log); 29 | ngx_int_t ngx_add_channel_event(ngx_cycle_t *cycle, ngx_fd_t fd, 30 | ngx_int_t event, ngx_event_handler_pt handler); 31 | void ngx_close_channel(ngx_fd_t *fd, ngx_log_t *log); 32 | 33 | 34 | #endif /* _NGX_CHANNEL_H_INCLUDED_ */ 35 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_daemon.c: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #include 9 | #include 10 | 11 | 12 | ngx_int_t 13 | ngx_daemon(ngx_log_t *log) 14 | { 15 | int fd; 16 | 17 | switch (fork()) { 18 | case -1: 19 | ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "fork() failed"); 20 | return NGX_ERROR; 21 | 22 | case 0: 23 | break; 24 | 25 | default: 26 | exit(0); 27 | } 28 | 29 | ngx_parent = ngx_pid; 30 | ngx_pid = ngx_getpid(); 31 | 32 | if (setsid() == -1) { 33 | ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "setsid() failed"); 34 | return NGX_ERROR; 35 | } 36 | 37 | umask(0); 38 | 39 | fd = open("/dev/null", O_RDWR); 40 | if (fd == -1) { 41 | ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, 42 | "open(\"/dev/null\") failed"); 43 | return NGX_ERROR; 44 | } 45 | 46 | if (dup2(fd, STDIN_FILENO) == -1) { 47 | ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "dup2(STDIN) failed"); 48 | return NGX_ERROR; 49 | } 50 | 51 | if (dup2(fd, STDOUT_FILENO) == -1) { 52 | ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "dup2(STDOUT) failed"); 53 | return NGX_ERROR; 54 | } 55 | 56 | #if 0 57 | if (dup2(fd, STDERR_FILENO) == -1) { 58 | ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "dup2(STDERR) failed"); 59 | return NGX_ERROR; 60 | } 61 | #endif 62 | 63 | if (fd > STDERR_FILENO) { 64 | if (close(fd) == -1) { 65 | ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "close() failed"); 66 | return NGX_ERROR; 67 | } 68 | } 69 | 70 | return NGX_OK; 71 | } 72 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_darwin.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_DARWIN_H_INCLUDED_ 9 | #define _NGX_DARWIN_H_INCLUDED_ 10 | 11 | 12 | void ngx_debug_init(void); 13 | ngx_chain_t *ngx_darwin_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, 14 | off_t limit); 15 | 16 | extern int ngx_darwin_kern_osreldate; 17 | extern int ngx_darwin_hw_ncpu; 18 | extern u_long ngx_darwin_net_inet_tcp_sendspace; 19 | 20 | extern ngx_uint_t ngx_debug_malloc; 21 | 22 | 23 | #endif /* _NGX_DARWIN_H_INCLUDED_ */ 24 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_dlopen.c: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Maxim Dounin 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #include 9 | #include 10 | 11 | 12 | #if (NGX_HAVE_DLOPEN) 13 | 14 | char * 15 | ngx_dlerror(void) 16 | { 17 | char *err; 18 | 19 | err = (char *) dlerror(); 20 | 21 | if (err == NULL) { 22 | return ""; 23 | } 24 | 25 | return err; 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_dlopen.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Maxim Dounin 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_DLOPEN_H_INCLUDED_ 9 | #define _NGX_DLOPEN_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | #define ngx_dlopen(path) dlopen((char *) path, RTLD_NOW | RTLD_GLOBAL) 17 | #define ngx_dlopen_n "dlopen()" 18 | 19 | #define ngx_dlsym(handle, symbol) dlsym(handle, symbol) 20 | #define ngx_dlsym_n "dlsym()" 21 | 22 | #define ngx_dlclose(handle) dlclose(handle) 23 | #define ngx_dlclose_n "dlclose()" 24 | 25 | 26 | #if (NGX_HAVE_DLOPEN) 27 | char *ngx_dlerror(void); 28 | #endif 29 | 30 | 31 | #endif /* _NGX_DLOPEN_H_INCLUDED_ */ 32 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_freebsd.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_FREEBSD_H_INCLUDED_ 9 | #define _NGX_FREEBSD_H_INCLUDED_ 10 | 11 | 12 | void ngx_debug_init(void); 13 | ngx_chain_t *ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, 14 | off_t limit); 15 | 16 | extern int ngx_freebsd_kern_osreldate; 17 | extern int ngx_freebsd_hw_ncpu; 18 | extern u_long ngx_freebsd_net_inet_tcp_sendspace; 19 | 20 | extern ngx_uint_t ngx_freebsd_sendfile_nbytes_bug; 21 | extern ngx_uint_t ngx_freebsd_use_tcp_nopush; 22 | extern ngx_uint_t ngx_debug_malloc; 23 | 24 | 25 | #endif /* _NGX_FREEBSD_H_INCLUDED_ */ 26 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_linux.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_LINUX_H_INCLUDED_ 9 | #define _NGX_LINUX_H_INCLUDED_ 10 | 11 | 12 | ngx_chain_t *ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, 13 | off_t limit); 14 | 15 | 16 | #endif /* _NGX_LINUX_H_INCLUDED_ */ 17 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_linux_init.c: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #include 9 | #include 10 | 11 | 12 | u_char ngx_linux_kern_ostype[50]; 13 | u_char ngx_linux_kern_osrelease[50]; 14 | 15 | 16 | static ngx_os_io_t ngx_linux_io = { 17 | ngx_unix_recv, 18 | ngx_readv_chain, 19 | ngx_udp_unix_recv, 20 | ngx_unix_send, 21 | ngx_udp_unix_send, 22 | ngx_udp_unix_sendmsg_chain, 23 | #if (NGX_HAVE_SENDFILE) 24 | ngx_linux_sendfile_chain, 25 | NGX_IO_SENDFILE 26 | #else 27 | ngx_writev_chain, 28 | 0 29 | #endif 30 | }; 31 | 32 | 33 | ngx_int_t 34 | ngx_os_specific_init(ngx_log_t *log) 35 | { 36 | struct utsname u; 37 | 38 | if (uname(&u) == -1) { 39 | ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, "uname() failed"); 40 | return NGX_ERROR; 41 | } 42 | 43 | (void) ngx_cpystrn(ngx_linux_kern_ostype, (u_char *) u.sysname, 44 | sizeof(ngx_linux_kern_ostype)); 45 | 46 | (void) ngx_cpystrn(ngx_linux_kern_osrelease, (u_char *) u.release, 47 | sizeof(ngx_linux_kern_osrelease)); 48 | 49 | ngx_os_io = ngx_linux_io; 50 | 51 | return NGX_OK; 52 | } 53 | 54 | 55 | void 56 | ngx_os_specific_status(ngx_log_t *log) 57 | { 58 | ngx_log_error(NGX_LOG_NOTICE, log, 0, "OS: %s %s", 59 | ngx_linux_kern_ostype, ngx_linux_kern_osrelease); 60 | } 61 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_process_cycle.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_PROCESS_CYCLE_H_INCLUDED_ 9 | #define _NGX_PROCESS_CYCLE_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | #define NGX_CMD_OPEN_CHANNEL 1 17 | #define NGX_CMD_CLOSE_CHANNEL 2 18 | #define NGX_CMD_QUIT 3 19 | #define NGX_CMD_TERMINATE 4 20 | #define NGX_CMD_REOPEN 5 21 | 22 | 23 | #define NGX_PROCESS_SINGLE 0 24 | #define NGX_PROCESS_MASTER 1 25 | #define NGX_PROCESS_SIGNALLER 2 26 | #define NGX_PROCESS_WORKER 3 27 | #define NGX_PROCESS_HELPER 4 28 | 29 | 30 | typedef struct { 31 | ngx_event_handler_pt handler; 32 | char *name; 33 | ngx_msec_t delay; 34 | } ngx_cache_manager_ctx_t; 35 | 36 | 37 | void ngx_master_process_cycle(ngx_cycle_t *cycle); 38 | void ngx_single_process_cycle(ngx_cycle_t *cycle); 39 | 40 | 41 | extern ngx_uint_t ngx_process; 42 | extern ngx_uint_t ngx_worker; 43 | extern ngx_pid_t ngx_pid; 44 | extern ngx_pid_t ngx_new_binary; 45 | extern ngx_uint_t ngx_inherited; 46 | extern ngx_uint_t ngx_daemonized; 47 | extern ngx_uint_t ngx_exiting; 48 | 49 | extern sig_atomic_t ngx_reap; 50 | extern sig_atomic_t ngx_sigio; 51 | extern sig_atomic_t ngx_sigalrm; 52 | extern sig_atomic_t ngx_quit; 53 | extern sig_atomic_t ngx_debug_quit; 54 | extern sig_atomic_t ngx_terminate; 55 | extern sig_atomic_t ngx_noaccept; 56 | extern sig_atomic_t ngx_reconfigure; 57 | extern sig_atomic_t ngx_reopen; 58 | extern sig_atomic_t ngx_change_binary; 59 | 60 | 61 | #endif /* _NGX_PROCESS_CYCLE_H_INCLUDED_ */ 62 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_setaffinity.c: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Nginx, Inc. 4 | */ 5 | 6 | 7 | #include 8 | #include 9 | 10 | 11 | #if (NGX_HAVE_CPUSET_SETAFFINITY) 12 | 13 | void 14 | ngx_setaffinity(ngx_cpuset_t *cpu_affinity, ngx_log_t *log) 15 | { 16 | ngx_uint_t i; 17 | 18 | for (i = 0; i < CPU_SETSIZE; i++) { 19 | if (CPU_ISSET(i, cpu_affinity)) { 20 | ngx_log_error(NGX_LOG_NOTICE, log, 0, 21 | "cpuset_setaffinity(): using cpu #%ui", i); 22 | } 23 | } 24 | 25 | if (cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, -1, 26 | sizeof(cpuset_t), cpu_affinity) == -1) 27 | { 28 | ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, 29 | "cpuset_setaffinity() failed"); 30 | } 31 | } 32 | 33 | #elif (NGX_HAVE_SCHED_SETAFFINITY) 34 | 35 | void 36 | ngx_setaffinity(ngx_cpuset_t *cpu_affinity, ngx_log_t *log) 37 | { 38 | ngx_uint_t i; 39 | 40 | for (i = 0; i < CPU_SETSIZE; i++) { 41 | if (CPU_ISSET(i, cpu_affinity)) { 42 | ngx_log_error(NGX_LOG_NOTICE, log, 0, 43 | "sched_setaffinity(): using cpu #%ui", i); 44 | } 45 | } 46 | 47 | if (sched_setaffinity(0, sizeof(cpu_set_t), cpu_affinity) == -1) { 48 | ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, 49 | "sched_setaffinity() failed"); 50 | } 51 | } 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_setaffinity.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Nginx, Inc. 4 | */ 5 | 6 | #ifndef _NGX_SETAFFINITY_H_INCLUDED_ 7 | #define _NGX_SETAFFINITY_H_INCLUDED_ 8 | 9 | 10 | #if (NGX_HAVE_SCHED_SETAFFINITY || NGX_HAVE_CPUSET_SETAFFINITY) 11 | 12 | #define NGX_HAVE_CPU_AFFINITY 1 13 | 14 | #if (NGX_HAVE_SCHED_SETAFFINITY) 15 | 16 | typedef cpu_set_t ngx_cpuset_t; 17 | 18 | #elif (NGX_HAVE_CPUSET_SETAFFINITY) 19 | 20 | #include 21 | 22 | typedef cpuset_t ngx_cpuset_t; 23 | 24 | #endif 25 | 26 | void ngx_setaffinity(ngx_cpuset_t *cpu_affinity, ngx_log_t *log); 27 | 28 | #else 29 | 30 | #define ngx_setaffinity(cpu_affinity, log) 31 | 32 | typedef uint64_t ngx_cpuset_t; 33 | 34 | #endif 35 | 36 | 37 | #endif /* _NGX_SETAFFINITY_H_INCLUDED_ */ 38 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_setproctitle.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_SETPROCTITLE_H_INCLUDED_ 9 | #define _NGX_SETPROCTITLE_H_INCLUDED_ 10 | 11 | 12 | #if (NGX_HAVE_SETPROCTITLE) 13 | 14 | /* FreeBSD, NetBSD, OpenBSD */ 15 | 16 | #define ngx_init_setproctitle(log) NGX_OK 17 | #define ngx_setproctitle(title) setproctitle("%s", title) 18 | 19 | 20 | #else /* !NGX_HAVE_SETPROCTITLE */ 21 | 22 | #if !defined NGX_SETPROCTITLE_USES_ENV 23 | 24 | #if (NGX_SOLARIS) 25 | 26 | #define NGX_SETPROCTITLE_USES_ENV 1 27 | #define NGX_SETPROCTITLE_PAD ' ' 28 | 29 | ngx_int_t ngx_init_setproctitle(ngx_log_t *log); 30 | void ngx_setproctitle(char *title); 31 | 32 | #elif (NGX_LINUX) || (NGX_DARWIN) 33 | 34 | #define NGX_SETPROCTITLE_USES_ENV 1 35 | #define NGX_SETPROCTITLE_PAD '\0' 36 | 37 | ngx_int_t ngx_init_setproctitle(ngx_log_t *log); 38 | void ngx_setproctitle(char *title); 39 | 40 | #else 41 | 42 | #define ngx_init_setproctitle(log) NGX_OK 43 | #define ngx_setproctitle(title) 44 | 45 | #endif /* OSes */ 46 | 47 | #endif /* NGX_SETPROCTITLE_USES_ENV */ 48 | 49 | #endif /* NGX_HAVE_SETPROCTITLE */ 50 | 51 | 52 | #endif /* _NGX_SETPROCTITLE_H_INCLUDED_ */ 53 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_shmem.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_SHMEM_H_INCLUDED_ 9 | #define _NGX_SHMEM_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | typedef struct { 17 | u_char *addr; 18 | size_t size; 19 | ngx_str_t name; 20 | ngx_log_t *log; 21 | ngx_uint_t exists; /* unsigned exists:1; */ 22 | } ngx_shm_t; 23 | 24 | 25 | ngx_int_t ngx_shm_alloc(ngx_shm_t *shm); 26 | void ngx_shm_free(ngx_shm_t *shm); 27 | 28 | 29 | #endif /* _NGX_SHMEM_H_INCLUDED_ */ 30 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_socket.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_SOCKET_H_INCLUDED_ 9 | #define _NGX_SOCKET_H_INCLUDED_ 10 | 11 | 12 | #include 13 | 14 | 15 | #define NGX_WRITE_SHUTDOWN SHUT_WR 16 | 17 | typedef int ngx_socket_t; 18 | 19 | #define ngx_socket socket 20 | #define ngx_socket_n "socket()" 21 | 22 | 23 | #if (NGX_HAVE_FIONBIO) 24 | 25 | int ngx_nonblocking(ngx_socket_t s); 26 | int ngx_blocking(ngx_socket_t s); 27 | 28 | #define ngx_nonblocking_n "ioctl(FIONBIO)" 29 | #define ngx_blocking_n "ioctl(!FIONBIO)" 30 | 31 | #else 32 | 33 | #define ngx_nonblocking(s) fcntl(s, F_SETFL, fcntl(s, F_GETFL) | O_NONBLOCK) 34 | #define ngx_nonblocking_n "fcntl(O_NONBLOCK)" 35 | 36 | #define ngx_blocking(s) fcntl(s, F_SETFL, fcntl(s, F_GETFL) & ~O_NONBLOCK) 37 | #define ngx_blocking_n "fcntl(!O_NONBLOCK)" 38 | 39 | #endif 40 | 41 | int ngx_tcp_nopush(ngx_socket_t s); 42 | int ngx_tcp_push(ngx_socket_t s); 43 | 44 | #if (NGX_LINUX) 45 | 46 | #define ngx_tcp_nopush_n "setsockopt(TCP_CORK)" 47 | #define ngx_tcp_push_n "setsockopt(!TCP_CORK)" 48 | 49 | #else 50 | 51 | #define ngx_tcp_nopush_n "setsockopt(TCP_NOPUSH)" 52 | #define ngx_tcp_push_n "setsockopt(!TCP_NOPUSH)" 53 | 54 | #endif 55 | 56 | 57 | #define ngx_shutdown_socket shutdown 58 | #define ngx_shutdown_socket_n "shutdown()" 59 | 60 | #define ngx_close_socket close 61 | #define ngx_close_socket_n "close() socket" 62 | 63 | 64 | #endif /* _NGX_SOCKET_H_INCLUDED_ */ 65 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_solaris.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_SOLARIS_H_INCLUDED_ 9 | #define _NGX_SOLARIS_H_INCLUDED_ 10 | 11 | 12 | ngx_chain_t *ngx_solaris_sendfilev_chain(ngx_connection_t *c, ngx_chain_t *in, 13 | off_t limit); 14 | 15 | 16 | #endif /* _NGX_SOLARIS_H_INCLUDED_ */ 17 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_sunpro_amd64.il: -------------------------------------------------------------------------------- 1 | / 2 | / Copyright (C) Igor Sysoev 3 | / Copyright (C) Nginx, Inc. 4 | / 5 | 6 | / ngx_atomic_uint_t ngx_atomic_cmp_set(ngx_atomic_t *lock, 7 | / ngx_atomic_uint_t old, ngx_atomic_uint_t set); 8 | / 9 | / the arguments are passed in %rdi, %rsi, %rdx 10 | / the result is returned in the %rax 11 | 12 | .inline ngx_atomic_cmp_set,0 13 | movq %rsi, %rax 14 | lock 15 | cmpxchgq %rdx, (%rdi) 16 | setz %al 17 | movzbq %al, %rax 18 | .end 19 | 20 | 21 | / ngx_atomic_int_t ngx_atomic_fetch_add(ngx_atomic_t *value, 22 | / ngx_atomic_int_t add); 23 | / 24 | / the arguments are passed in %rdi, %rsi 25 | / the result is returned in the %rax 26 | 27 | .inline ngx_atomic_fetch_add,0 28 | movq %rsi, %rax 29 | lock 30 | xaddq %rax, (%rdi) 31 | .end 32 | 33 | 34 | / ngx_cpu_pause() 35 | / 36 | / the "rep; nop" is used instead of "pause" to avoid the "[ PAUSE ]" hardware 37 | / capability added by linker because Solaris/amd64 does not know about it: 38 | / 39 | / ld.so.1: nginx: fatal: hardware capability unsupported: 0x2000 [ PAUSE ] 40 | 41 | .inline ngx_cpu_pause,0 42 | rep; nop 43 | .end 44 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_sunpro_atomic_sparc64.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #if (NGX_PTR_SIZE == 4) 9 | #define NGX_CASA ngx_casa 10 | #else 11 | #define NGX_CASA ngx_casxa 12 | #endif 13 | 14 | 15 | ngx_atomic_uint_t 16 | ngx_casa(ngx_atomic_uint_t set, ngx_atomic_uint_t old, ngx_atomic_t *lock); 17 | 18 | ngx_atomic_uint_t 19 | ngx_casxa(ngx_atomic_uint_t set, ngx_atomic_uint_t old, ngx_atomic_t *lock); 20 | 21 | /* the code in src/os/unix/ngx_sunpro_sparc64.il */ 22 | 23 | 24 | static ngx_inline ngx_atomic_uint_t 25 | ngx_atomic_cmp_set(ngx_atomic_t *lock, ngx_atomic_uint_t old, 26 | ngx_atomic_uint_t set) 27 | { 28 | set = NGX_CASA(set, old, lock); 29 | 30 | return (set == old); 31 | } 32 | 33 | 34 | static ngx_inline ngx_atomic_int_t 35 | ngx_atomic_fetch_add(ngx_atomic_t *value, ngx_atomic_int_t add) 36 | { 37 | ngx_atomic_uint_t old, res; 38 | 39 | old = *value; 40 | 41 | for ( ;; ) { 42 | 43 | res = old + add; 44 | 45 | res = NGX_CASA(res, old, value); 46 | 47 | if (res == old) { 48 | return res; 49 | } 50 | 51 | old = res; 52 | } 53 | } 54 | 55 | 56 | #define ngx_memory_barrier() \ 57 | __asm (".volatile"); \ 58 | __asm ("membar #LoadLoad | #LoadStore | #StoreStore | #StoreLoad"); \ 59 | __asm (".nonvolatile") 60 | 61 | #define ngx_cpu_pause() 62 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_sunpro_sparc64.il: -------------------------------------------------------------------------------- 1 | / 2 | / Copyright (C) Igor Sysoev 3 | / Copyright (C) Nginx, Inc. 4 | / 5 | 6 | 7 | / "casa [%o2] 0x80, %o1, %o0" and 8 | / "casxa [%o2] 0x80, %o1, %o0" do the following: 9 | / 10 | / if ([%o2] == %o1) { 11 | / swap(%o0, [%o2]); 12 | / } else { 13 | / %o0 = [%o2]; 14 | / } 15 | 16 | 17 | / ngx_atomic_uint_t ngx_casa(ngx_atomic_uint_t set, ngx_atomic_uint_t old, 18 | / ngx_atomic_t *lock); 19 | / 20 | / the arguments are passed in the %o0, %o1, %o2 21 | / the result is returned in the %o0 22 | 23 | .inline ngx_casa,0 24 | casa [%o2] 0x80, %o1, %o0 25 | .end 26 | 27 | 28 | / ngx_atomic_uint_t ngx_casxa(ngx_atomic_uint_t set, ngx_atomic_uint_t old, 29 | / ngx_atomic_t *lock); 30 | / 31 | / the arguments are passed in the %o0, %o1, %o2 32 | / the result is returned in the %o0 33 | 34 | .inline ngx_casxa,0 35 | casxa [%o2] 0x80, %o1, %o0 36 | .end 37 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_sunpro_x86.il: -------------------------------------------------------------------------------- 1 | / 2 | / Copyright (C) Igor Sysoev 3 | / Copyright (C) Nginx, Inc. 4 | / 5 | 6 | / ngx_atomic_uint_t ngx_atomic_cmp_set(ngx_atomic_t *lock, 7 | / ngx_atomic_uint_t old, ngx_atomic_uint_t set); 8 | / 9 | / the arguments are passed on stack (%esp), 4(%esp), 8(%esp) 10 | 11 | .inline ngx_atomic_cmp_set,0 12 | movl (%esp), %ecx 13 | movl 4(%esp), %eax 14 | movl 8(%esp), %edx 15 | lock 16 | cmpxchgl %edx, (%ecx) 17 | setz %al 18 | movzbl %al, %eax 19 | .end 20 | 21 | 22 | / ngx_atomic_int_t ngx_atomic_fetch_add(ngx_atomic_t *value, 23 | / ngx_atomic_int_t add); 24 | / 25 | / the arguments are passed on stack (%esp), 4(%esp) 26 | 27 | .inline ngx_atomic_fetch_add,0 28 | movl (%esp), %ecx 29 | movl 4(%esp), %eax 30 | lock 31 | xaddl %eax, (%ecx) 32 | .end 33 | 34 | 35 | / ngx_cpu_pause() 36 | / 37 | / the "rep; nop" is used instead of "pause" to avoid the "[ PAUSE ]" hardware 38 | / capability added by linker because Solaris/i386 does not know about it: 39 | / 40 | / ld.so.1: nginx: fatal: hardware capability unsupported: 0x2000 [ PAUSE ] 41 | 42 | .inline ngx_cpu_pause,0 43 | rep; nop 44 | .end 45 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_thread_cond.c: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #include 9 | #include 10 | 11 | 12 | ngx_int_t 13 | ngx_thread_cond_create(ngx_thread_cond_t *cond, ngx_log_t *log) 14 | { 15 | ngx_err_t err; 16 | 17 | err = pthread_cond_init(cond, NULL); 18 | if (err == 0) { 19 | return NGX_OK; 20 | } 21 | 22 | ngx_log_error(NGX_LOG_EMERG, log, err, "pthread_cond_init() failed"); 23 | return NGX_ERROR; 24 | } 25 | 26 | 27 | ngx_int_t 28 | ngx_thread_cond_destroy(ngx_thread_cond_t *cond, ngx_log_t *log) 29 | { 30 | ngx_err_t err; 31 | 32 | err = pthread_cond_destroy(cond); 33 | if (err == 0) { 34 | return NGX_OK; 35 | } 36 | 37 | ngx_log_error(NGX_LOG_EMERG, log, err, "pthread_cond_destroy() failed"); 38 | return NGX_ERROR; 39 | } 40 | 41 | 42 | ngx_int_t 43 | ngx_thread_cond_signal(ngx_thread_cond_t *cond, ngx_log_t *log) 44 | { 45 | ngx_err_t err; 46 | 47 | err = pthread_cond_signal(cond); 48 | if (err == 0) { 49 | return NGX_OK; 50 | } 51 | 52 | ngx_log_error(NGX_LOG_EMERG, log, err, "pthread_cond_signal() failed"); 53 | return NGX_ERROR; 54 | } 55 | 56 | 57 | ngx_int_t 58 | ngx_thread_cond_wait(ngx_thread_cond_t *cond, ngx_thread_mutex_t *mtx, 59 | ngx_log_t *log) 60 | { 61 | ngx_err_t err; 62 | 63 | err = pthread_cond_wait(cond, mtx); 64 | 65 | #if 0 66 | ngx_time_update(); 67 | #endif 68 | 69 | if (err == 0) { 70 | return NGX_OK; 71 | } 72 | 73 | ngx_log_error(NGX_LOG_ALERT, log, err, "pthread_cond_wait() failed"); 74 | 75 | return NGX_ERROR; 76 | } 77 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_thread_id.c: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | 13 | #if (NGX_LINUX) 14 | 15 | /* 16 | * Linux thread id is a pid of thread created by clone(2), 17 | * glibc does not provide a wrapper for gettid(). 18 | */ 19 | 20 | ngx_tid_t 21 | ngx_thread_tid(void) 22 | { 23 | return syscall(SYS_gettid); 24 | } 25 | 26 | #elif (NGX_FREEBSD) && (__FreeBSD_version >= 900031) 27 | 28 | #include 29 | 30 | ngx_tid_t 31 | ngx_thread_tid(void) 32 | { 33 | return pthread_getthreadid_np(); 34 | } 35 | 36 | #elif (NGX_DARWIN) 37 | 38 | /* 39 | * MacOSX thread has two thread ids: 40 | * 41 | * 1) MacOSX 10.6 (Snow Leoprad) has pthread_threadid_np() returning 42 | * an uint64_t value, which is obtained using the __thread_selfid() 43 | * syscall. It is a number above 300,000. 44 | */ 45 | 46 | ngx_tid_t 47 | ngx_thread_tid(void) 48 | { 49 | uint64_t tid; 50 | 51 | (void) pthread_threadid_np(NULL, &tid); 52 | return tid; 53 | } 54 | 55 | /* 56 | * 2) Kernel thread mach_port_t returned by pthread_mach_thread_np(). 57 | * It is a number in range 100-100,000. 58 | * 59 | * return pthread_mach_thread_np(pthread_self()); 60 | */ 61 | 62 | #else 63 | 64 | ngx_tid_t 65 | ngx_thread_tid(void) 66 | { 67 | return (uint64_t) (uintptr_t) pthread_self(); 68 | } 69 | 70 | #endif 71 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_udp_recv.c: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | 13 | ssize_t 14 | ngx_udp_unix_recv(ngx_connection_t *c, u_char *buf, size_t size) 15 | { 16 | ssize_t n; 17 | ngx_err_t err; 18 | ngx_event_t *rev; 19 | 20 | rev = c->read; 21 | 22 | do { 23 | n = recv(c->fd, buf, size, 0); 24 | 25 | ngx_log_debug3(NGX_LOG_DEBUG_EVENT, c->log, 0, 26 | "recv: fd:%d %z of %uz", c->fd, n, size); 27 | 28 | if (n >= 0) { 29 | 30 | #if (NGX_HAVE_KQUEUE) 31 | 32 | if (ngx_event_flags & NGX_USE_KQUEUE_EVENT) { 33 | rev->available -= n; 34 | 35 | /* 36 | * rev->available may be negative here because some additional 37 | * bytes may be received between kevent() and recv() 38 | */ 39 | 40 | if (rev->available <= 0) { 41 | rev->ready = 0; 42 | rev->available = 0; 43 | } 44 | } 45 | 46 | #endif 47 | 48 | return n; 49 | } 50 | 51 | err = ngx_socket_errno; 52 | 53 | if (err == NGX_EAGAIN || err == NGX_EINTR) { 54 | ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, err, 55 | "recv() not ready"); 56 | n = NGX_AGAIN; 57 | 58 | } else { 59 | n = ngx_connection_error(c, err, "recv() failed"); 60 | break; 61 | } 62 | 63 | } while (err == NGX_EINTR); 64 | 65 | rev->ready = 0; 66 | 67 | if (n == NGX_ERROR) { 68 | rev->error = 1; 69 | } 70 | 71 | return n; 72 | } 73 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_udp_send.c: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | 13 | ssize_t 14 | ngx_udp_unix_send(ngx_connection_t *c, u_char *buf, size_t size) 15 | { 16 | ssize_t n; 17 | ngx_err_t err; 18 | ngx_event_t *wev; 19 | 20 | wev = c->write; 21 | 22 | for ( ;; ) { 23 | n = sendto(c->fd, buf, size, 0, c->sockaddr, c->socklen); 24 | 25 | ngx_log_debug4(NGX_LOG_DEBUG_EVENT, c->log, 0, 26 | "sendto: fd:%d %z of %uz to \"%V\"", 27 | c->fd, n, size, &c->addr_text); 28 | 29 | if (n >= 0) { 30 | if ((size_t) n != size) { 31 | wev->error = 1; 32 | (void) ngx_connection_error(c, 0, "sendto() incomplete"); 33 | return NGX_ERROR; 34 | } 35 | 36 | c->sent += n; 37 | 38 | return n; 39 | } 40 | 41 | err = ngx_socket_errno; 42 | 43 | if (err == NGX_EAGAIN) { 44 | wev->ready = 0; 45 | ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, NGX_EAGAIN, 46 | "sendto() not ready"); 47 | return NGX_AGAIN; 48 | } 49 | 50 | if (err != NGX_EINTR) { 51 | wev->error = 1; 52 | (void) ngx_connection_error(c, err, "sendto() failed"); 53 | return NGX_ERROR; 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_user.c: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #include 9 | #include 10 | 11 | 12 | #if (NGX_CRYPT) 13 | 14 | #if (NGX_HAVE_GNU_CRYPT_R) 15 | 16 | ngx_int_t 17 | ngx_libc_crypt(ngx_pool_t *pool, u_char *key, u_char *salt, u_char **encrypted) 18 | { 19 | char *value; 20 | size_t len; 21 | struct crypt_data cd; 22 | 23 | cd.initialized = 0; 24 | 25 | value = crypt_r((char *) key, (char *) salt, &cd); 26 | 27 | if (value) { 28 | len = ngx_strlen(value) + 1; 29 | 30 | *encrypted = ngx_pnalloc(pool, len); 31 | if (*encrypted == NULL) { 32 | return NGX_ERROR; 33 | } 34 | 35 | ngx_memcpy(*encrypted, value, len); 36 | return NGX_OK; 37 | } 38 | 39 | ngx_log_error(NGX_LOG_CRIT, pool->log, ngx_errno, "crypt_r() failed"); 40 | 41 | return NGX_ERROR; 42 | } 43 | 44 | #else 45 | 46 | ngx_int_t 47 | ngx_libc_crypt(ngx_pool_t *pool, u_char *key, u_char *salt, u_char **encrypted) 48 | { 49 | char *value; 50 | size_t len; 51 | ngx_err_t err; 52 | 53 | value = crypt((char *) key, (char *) salt); 54 | 55 | if (value) { 56 | len = ngx_strlen(value) + 1; 57 | 58 | *encrypted = ngx_pnalloc(pool, len); 59 | if (*encrypted == NULL) { 60 | return NGX_ERROR; 61 | } 62 | 63 | ngx_memcpy(*encrypted, value, len); 64 | return NGX_OK; 65 | } 66 | 67 | err = ngx_errno; 68 | 69 | ngx_log_error(NGX_LOG_CRIT, pool->log, err, "crypt() failed"); 70 | 71 | return NGX_ERROR; 72 | } 73 | 74 | #endif 75 | 76 | #endif /* NGX_CRYPT */ 77 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/os/unix/ngx_user.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_USER_H_INCLUDED_ 9 | #define _NGX_USER_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | 15 | 16 | typedef uid_t ngx_uid_t; 17 | typedef gid_t ngx_gid_t; 18 | 19 | 20 | ngx_int_t ngx_libc_crypt(ngx_pool_t *pool, u_char *key, u_char *salt, 21 | u_char **encrypted); 22 | 23 | 24 | #endif /* _NGX_USER_H_INCLUDED_ */ 25 | -------------------------------------------------------------------------------- /nginx-geoip2/nginx-1.15.12/src/stream/ngx_stream_ssl_module.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | * Copyright (C) Igor Sysoev 4 | * Copyright (C) Nginx, Inc. 5 | */ 6 | 7 | 8 | #ifndef _NGX_STREAM_SSL_H_INCLUDED_ 9 | #define _NGX_STREAM_SSL_H_INCLUDED_ 10 | 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | 17 | typedef struct { 18 | ngx_msec_t handshake_timeout; 19 | 20 | ngx_flag_t prefer_server_ciphers; 21 | 22 | ngx_ssl_t ssl; 23 | 24 | ngx_uint_t listen; 25 | ngx_uint_t protocols; 26 | 27 | ngx_uint_t verify; 28 | ngx_uint_t verify_depth; 29 | 30 | ssize_t builtin_session_cache; 31 | 32 | time_t session_timeout; 33 | 34 | ngx_array_t *certificates; 35 | ngx_array_t *certificate_keys; 36 | 37 | ngx_array_t *certificate_values; 38 | ngx_array_t *certificate_key_values; 39 | 40 | ngx_str_t dhparam; 41 | ngx_str_t ecdh_curve; 42 | ngx_str_t client_certificate; 43 | ngx_str_t trusted_certificate; 44 | ngx_str_t crl; 45 | 46 | ngx_str_t ciphers; 47 | 48 | ngx_array_t *passwords; 49 | 50 | ngx_shm_zone_t *shm_zone; 51 | 52 | ngx_flag_t session_tickets; 53 | ngx_array_t *session_ticket_keys; 54 | 55 | u_char *file; 56 | ngx_uint_t line; 57 | } ngx_stream_ssl_conf_t; 58 | 59 | 60 | extern ngx_module_t ngx_stream_ssl_module; 61 | 62 | 63 | #endif /* _NGX_STREAM_SSL_H_INCLUDED_ */ 64 | -------------------------------------------------------------------------------- /nginx-geoip2/ngx_http_geoip2_module-1.0/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014, Lee Valentine 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, 5 | are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, this 11 | list of conditions and the following disclaimer in the documentation and/or 12 | other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 18 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 21 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | -------------------------------------------------------------------------------- /nginx-geoip2/ngx_http_geoip2_module-1.0/README.md: -------------------------------------------------------------------------------- 1 | Description 2 | =========== 3 | 4 | **ngx_http_geoip2_module** - creates variables with values from the maxmind geoip2 databases based on the client IP (supports both IPv4 and IPv6) 5 | 6 | ## Installing 7 | First install [libmaxminddb](https://github.com/maxmind/libmaxminddb) as described in its [README.md 8 | file](https://github.com/maxmind/libmaxminddb/blob/master/README.md#installing-from-a-tarball). 9 | 10 | Compile nginx: 11 | ``` 12 | ./configure --add-module=/path/to/ngx_http_geoip2_module 13 | make 14 | make install 15 | ``` 16 | 17 | ## Download Maxmind GeoLite2 Database (optional) 18 | The free GeoLite2 databases are available from [Maxminds website](http://dev.maxmind.com/geoip/geoip2/geolite2/) 19 | 20 | [GeoLite2 City](http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz) 21 | [GeoLite2 Country](http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz) 22 | 23 | ## Example Usage: 24 | ``` 25 | http { 26 | ... 27 | geoip2 /etc/maxmind-country.mmdb { 28 | $geoip2_data_country_code default=US country iso_code; 29 | $geoip2_data_country_name country names en; 30 | } 31 | 32 | geoip2 /etc/maxmind-city.mmdb { 33 | $geoip2_data_city_name default=London city names en; 34 | } 35 | .... 36 | } 37 | ``` 38 | -------------------------------------------------------------------------------- /nginx-geoip2/ngx_http_geoip2_module-1.0/config: -------------------------------------------------------------------------------- 1 | ngx_feature="MaxmindDB library" 2 | ngx_feature_name= 3 | ngx_feature_run=no 4 | ngx_feature_incs="#include " 5 | ngx_feature_libs=-lmaxminddb 6 | . auto/feature 7 | 8 | if [ $ngx_found = yes ]; then 9 | ngx_addon_name=ngx_http_geoip2_module 10 | HTTP_MODULES="$HTTP_MODULES ngx_http_geoip2_module" 11 | NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_geoip2_module.c" 12 | CORE_LIBS="$CORE_LIBS -lmaxminddb" 13 | else 14 | cat << END 15 | $0: error: the geoip2 module requires the maxminddb library. 16 | END 17 | exit 1 18 | fi 19 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/.gitignore: -------------------------------------------------------------------------------- 1 | *.diff 2 | *.patch 3 | *.orig 4 | *.rej 5 | 6 | *~ 7 | *.a 8 | *.lo 9 | *.o 10 | *.dylib 11 | 12 | *.gcda 13 | *.gcno 14 | *.gcov 15 | 16 | /example 17 | /example64 18 | /examplesh 19 | /libz.so* 20 | /minigzip 21 | /minigzip64 22 | /minigzipsh 23 | /zlib.pc 24 | 25 | .DS_Store 26 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/ChangeLog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxxit/dockerfiles/452801e6e20de7ebe7f95f38840937c0dc4e4f6f/nginx-geoip2/zlib-1.2.8/ChangeLog -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | -@echo "Please use ./configure first. Thank you." 3 | 4 | distclean: 5 | make -f Makefile.in distclean 6 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/README.contrib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxxit/dockerfiles/452801e6e20de7ebe7f95f38840937c0dc4e4f6f/nginx-geoip2/zlib-1.2.8/contrib/README.contrib -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/ada/zlib.gpr: -------------------------------------------------------------------------------- 1 | project Zlib is 2 | 3 | for Languages use ("Ada"); 4 | for Source_Dirs use ("."); 5 | for Object_Dir use "."; 6 | for Main use ("test.adb", "mtest.adb", "read.adb", "buffer_demo"); 7 | 8 | package Compiler is 9 | for Default_Switches ("ada") use ("-gnatwcfilopru", "-gnatVcdfimorst", "-gnatyabcefhiklmnoprst"); 10 | end Compiler; 11 | 12 | package Linker is 13 | for Default_Switches ("ada") use ("-lz"); 14 | end Linker; 15 | 16 | package Builder is 17 | for Default_Switches ("ada") use ("-s", "-gnatQ"); 18 | end Builder; 19 | 20 | end Zlib; 21 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/blast/Makefile: -------------------------------------------------------------------------------- 1 | blast: blast.c blast.h 2 | cc -DTEST -o blast blast.c 3 | 4 | test: blast 5 | blast < test.pk | cmp - test.txt 6 | 7 | clean: 8 | rm -f blast blast.o 9 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/blast/README: -------------------------------------------------------------------------------- 1 | Read blast.h for purpose and usage. 2 | 3 | Mark Adler 4 | madler@alumni.caltech.edu 5 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/blast/test.pk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxxit/dockerfiles/452801e6e20de7ebe7f95f38840937c0dc4e4f6f/nginx-geoip2/zlib-1.2.8/contrib/blast/test.pk -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/blast/test.txt: -------------------------------------------------------------------------------- 1 | AIAIAIAIAIAIA -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/delphi/ZLibConst.pas: -------------------------------------------------------------------------------- 1 | unit ZLibConst; 2 | 3 | interface 4 | 5 | resourcestring 6 | sTargetBufferTooSmall = 'ZLib error: target buffer may be too small'; 7 | sInvalidStreamOp = 'Invalid stream operation'; 8 | 9 | implementation 10 | 11 | end. 12 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib.build: -------------------------------------------------------------------------------- 1 |  2 | 3 | A .Net wrapper library around ZLib1.dll 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxxit/dockerfiles/452801e6e20de7ebe7f95f38840937c0dc4e4f6f/nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib.chm -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 8.00 2 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotZLib", "DotZLib\DotZLib.csproj", "{BB1EE0B1-1808-46CB-B786-949D91117FC5}" 3 | ProjectSection(ProjectDependencies) = postProject 4 | EndProjectSection 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfiguration) = preSolution 8 | Debug = Debug 9 | Release = Release 10 | EndGlobalSection 11 | GlobalSection(ProjectConfiguration) = postSolution 12 | {BB1EE0B1-1808-46CB-B786-949D91117FC5}.Debug.ActiveCfg = Debug|.NET 13 | {BB1EE0B1-1808-46CB-B786-949D91117FC5}.Debug.Build.0 = Debug|.NET 14 | {BB1EE0B1-1808-46CB-B786-949D91117FC5}.Release.ActiveCfg = Release|.NET 15 | {BB1EE0B1-1808-46CB-B786-949D91117FC5}.Release.Build.0 = Release|.NET 16 | EndGlobalSection 17 | GlobalSection(ExtensibilityGlobals) = postSolution 18 | EndGlobalSection 19 | GlobalSection(ExtensibilityAddIns) = postSolution 20 | EndGlobalSection 21 | EndGlobal 22 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib/ChecksumImpl.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxxit/dockerfiles/452801e6e20de7ebe7f95f38840937c0dc4e4f6f/nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib/ChecksumImpl.cs -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib/CircularBuffer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxxit/dockerfiles/452801e6e20de7ebe7f95f38840937c0dc4e4f6f/nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib/CircularBuffer.cs -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib/CodecBase.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxxit/dockerfiles/452801e6e20de7ebe7f95f38840937c0dc4e4f6f/nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib/CodecBase.cs -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib/Deflater.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxxit/dockerfiles/452801e6e20de7ebe7f95f38840937c0dc4e4f6f/nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib/Deflater.cs -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib/DotZLib.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxxit/dockerfiles/452801e6e20de7ebe7f95f38840937c0dc4e4f6f/nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib/DotZLib.cs -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib/GZipStream.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxxit/dockerfiles/452801e6e20de7ebe7f95f38840937c0dc4e4f6f/nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib/GZipStream.cs -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib/Inflater.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxxit/dockerfiles/452801e6e20de7ebe7f95f38840937c0dc4e4f6f/nginx-geoip2/zlib-1.2.8/contrib/dotzlib/DotZLib/Inflater.cs -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/dotzlib/LICENSE_1_0.txt: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | 3 | Permission is hereby granted, free of charge, to any person or organization 4 | obtaining a copy of the software and accompanying documentation covered by 5 | this license (the "Software") to use, reproduce, display, distribute, 6 | execute, and transmit the Software, and to prepare derivative works of the 7 | Software, and to permit third-parties to whom the Software is furnished to 8 | do so, all subject to the following: 9 | 10 | The copyright notices in the Software and this entire statement, including 11 | the above license grant, this restriction and the following disclaimer, 12 | must be included in all copies of the Software, in whole or in part, and 13 | all derivative works of the Software, unless such copies or derivative 14 | works are solely in the form of machine-executable object code generated by 15 | a source language processor. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/infback9/README: -------------------------------------------------------------------------------- 1 | See infback9.h for what this is and how to use it. 2 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/infback9/infback9.h: -------------------------------------------------------------------------------- 1 | /* infback9.h -- header for using inflateBack9 functions 2 | * Copyright (C) 2003 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* 7 | * This header file and associated patches provide a decoder for PKWare's 8 | * undocumented deflate64 compression method (method 9). Use with infback9.c, 9 | * inftree9.h, inftree9.c, and inffix9.h. These patches are not supported. 10 | * This should be compiled with zlib, since it uses zutil.h and zutil.o. 11 | * This code has not yet been tested on 16-bit architectures. See the 12 | * comments in zlib.h for inflateBack() usage. These functions are used 13 | * identically, except that there is no windowBits parameter, and a 64K 14 | * window must be provided. Also if int's are 16 bits, then a zero for 15 | * the third parameter of the "out" function actually means 65536UL. 16 | * zlib.h must be included before this header file. 17 | */ 18 | 19 | #ifdef __cplusplus 20 | extern "C" { 21 | #endif 22 | 23 | ZEXTERN int ZEXPORT inflateBack9 OF((z_stream FAR *strm, 24 | in_func in, void FAR *in_desc, 25 | out_func out, void FAR *out_desc)); 26 | ZEXTERN int ZEXPORT inflateBack9End OF((z_stream FAR *strm)); 27 | ZEXTERN int ZEXPORT inflateBack9Init_ OF((z_stream FAR *strm, 28 | unsigned char FAR *window, 29 | const char *version, 30 | int stream_size)); 31 | #define inflateBack9Init(strm, window) \ 32 | inflateBack9Init_((strm), (window), \ 33 | ZLIB_VERSION, sizeof(z_stream)) 34 | 35 | #ifdef __cplusplus 36 | } 37 | #endif 38 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/iostream/test.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "zfstream.h" 3 | 4 | int main() { 5 | 6 | // Construct a stream object with this filebuffer. Anything sent 7 | // to this stream will go to standard out. 8 | gzofstream os( 1, ios::out ); 9 | 10 | // This text is getting compressed and sent to stdout. 11 | // To prove this, run 'test | zcat'. 12 | os << "Hello, Mommy" << endl; 13 | 14 | os << setcompressionlevel( Z_NO_COMPRESSION ); 15 | os << "hello, hello, hi, ho!" << endl; 16 | 17 | setcompressionlevel( os, Z_DEFAULT_COMPRESSION ) 18 | << "I'm compressing again" << endl; 19 | 20 | os.close(); 21 | 22 | return 0; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/iostream2/zstream_test.cpp: -------------------------------------------------------------------------------- 1 | #include "zstream.h" 2 | #include 3 | #include 4 | #include 5 | 6 | void main() { 7 | char h[256] = "Hello"; 8 | char* g = "Goodbye"; 9 | ozstream out("temp.gz"); 10 | out < "This works well" < h < g; 11 | out.close(); 12 | 13 | izstream in("temp.gz"); // read it back 14 | char *x = read_string(in), *y = new char[256], z[256]; 15 | in > y > z; 16 | in.close(); 17 | cout << x << endl << y << endl << z << endl; 18 | 19 | out.open("temp.gz"); // try ascii output; zcat temp.gz to see the results 20 | out << setw(50) << setfill('#') << setprecision(20) << x << endl << y << endl << z << endl; 21 | out << z << endl << y << endl << x << endl; 22 | out << 1.1234567890123456789 << endl; 23 | 24 | delete[] x; delete[] y; 25 | } 26 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/iostream3/README: -------------------------------------------------------------------------------- 1 | These classes provide a C++ stream interface to the zlib library. It allows you 2 | to do things like: 3 | 4 | gzofstream outf("blah.gz"); 5 | outf << "These go into the gzip file " << 123 << endl; 6 | 7 | It does this by deriving a specialized stream buffer for gzipped files, which is 8 | the way Stroustrup would have done it. :-> 9 | 10 | The gzifstream and gzofstream classes were originally written by Kevin Ruland 11 | and made available in the zlib contrib/iostream directory. The older version still 12 | compiles under gcc 2.xx, but not under gcc 3.xx, which sparked the development of 13 | this version. 14 | 15 | The new classes are as standard-compliant as possible, closely following the 16 | approach of the standard library's fstream classes. It compiles under gcc versions 17 | 3.2 and 3.3, but not under gcc 2.xx. This is mainly due to changes in the standard 18 | library naming scheme. The new version of gzifstream/gzofstream/gzfilebuf differs 19 | from the previous one in the following respects: 20 | - added showmanyc 21 | - added setbuf, with support for unbuffered output via setbuf(0,0) 22 | - a few bug fixes of stream behavior 23 | - gzipped output file opened with default compression level instead of maximum level 24 | - setcompressionlevel()/strategy() members replaced by single setcompression() 25 | 26 | The code is provided "as is", with the permission to use, copy, modify, distribute 27 | and sell it for any purpose without fee. 28 | 29 | Ludwig Schwardt 30 | 31 | 32 | DSP Lab 33 | Electrical & Electronic Engineering Department 34 | University of Stellenbosch 35 | South Africa 36 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/iostream3/TODO: -------------------------------------------------------------------------------- 1 | Possible upgrades to gzfilebuf: 2 | 3 | - The ability to do putback (e.g. putbackfail) 4 | 5 | - The ability to seek (zlib supports this, but could be slow/tricky) 6 | 7 | - Simultaneous read/write access (does it make sense?) 8 | 9 | - Support for ios_base::ate open mode 10 | 11 | - Locale support? 12 | 13 | - Check public interface to see which calls give problems 14 | (due to dependence on library internals) 15 | 16 | - Override operator<<(ostream&, gzfilebuf*) to allow direct copying 17 | of stream buffer to stream ( i.e. os << is.rdbuf(); ) 18 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/iostream3/test.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Test program for gzifstream and gzofstream 3 | * 4 | * by Ludwig Schwardt 5 | * original version by Kevin Ruland 6 | */ 7 | 8 | #include "zfstream.h" 9 | #include // for cout 10 | 11 | int main() { 12 | 13 | gzofstream outf; 14 | gzifstream inf; 15 | char buf[80]; 16 | 17 | outf.open("test1.txt.gz"); 18 | outf << "The quick brown fox sidestepped the lazy canine\n" 19 | << 1.3 << "\nPlan " << 9 << std::endl; 20 | outf.close(); 21 | std::cout << "Wrote the following message to 'test1.txt.gz' (check with zcat or zless):\n" 22 | << "The quick brown fox sidestepped the lazy canine\n" 23 | << 1.3 << "\nPlan " << 9 << std::endl; 24 | 25 | std::cout << "\nReading 'test1.txt.gz' (buffered) produces:\n"; 26 | inf.open("test1.txt.gz"); 27 | while (inf.getline(buf,80,'\n')) { 28 | std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n"; 29 | } 30 | inf.close(); 31 | 32 | outf.rdbuf()->pubsetbuf(0,0); 33 | outf.open("test2.txt.gz"); 34 | outf << setcompression(Z_NO_COMPRESSION) 35 | << "The quick brown fox sidestepped the lazy canine\n" 36 | << 1.3 << "\nPlan " << 9 << std::endl; 37 | outf.close(); 38 | std::cout << "\nWrote the same message to 'test2.txt.gz' in uncompressed form"; 39 | 40 | std::cout << "\nReading 'test2.txt.gz' (unbuffered) produces:\n"; 41 | inf.rdbuf()->pubsetbuf(0,0); 42 | inf.open("test2.txt.gz"); 43 | while (inf.getline(buf,80,'\n')) { 44 | std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n"; 45 | } 46 | inf.close(); 47 | 48 | return 0; 49 | 50 | } 51 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/masmx64/bld_ml64.bat: -------------------------------------------------------------------------------- 1 | ml64.exe /Flinffasx64 /c /Zi inffasx64.asm 2 | ml64.exe /Flgvmat64 /c /Zi gvmat64.asm 3 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/masmx64/readme.txt: -------------------------------------------------------------------------------- 1 | Summary 2 | ------- 3 | This directory contains ASM implementations of the functions 4 | longest_match() and inflate_fast(), for 64 bits x86 (both AMD64 and Intel EM64t), 5 | for use with Microsoft Macro Assembler (x64) for AMD64 and Microsoft C++ 64 bits. 6 | 7 | gvmat64.asm is written by Gilles Vollant (2005), by using Brian Raiter 686/32 bits 8 | assembly optimized version from Jean-loup Gailly original longest_match function 9 | 10 | inffasx64.asm and inffas8664.c were written by Chris Anderson, by optimizing 11 | original function from Mark Adler 12 | 13 | Use instructions 14 | ---------------- 15 | Assemble the .asm files using MASM and put the object files into the zlib source 16 | directory. You can also get object files here: 17 | 18 | http://www.winimage.com/zLibDll/zlib124_masm_obj.zip 19 | 20 | define ASMV and ASMINF in your project. Include inffas8664.c in your source tree, 21 | and inffasx64.obj and gvmat64.obj as object to link. 22 | 23 | 24 | Build instructions 25 | ------------------ 26 | run bld_64.bat with Microsoft Macro Assembler (x64) for AMD64 (ml64.exe) 27 | 28 | ml64.exe is given with Visual Studio 2005, Windows 2003 server DDK 29 | 30 | You can get Windows 2003 server DDK with ml64 and cl for AMD64 from 31 | http://www.microsoft.com/whdc/devtools/ddk/default.mspx for low price) 32 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/masmx86/bld_ml32.bat: -------------------------------------------------------------------------------- 1 | ml /coff /Zi /c /Flmatch686.lst match686.asm 2 | ml /coff /Zi /c /Flinffas32.lst inffas32.asm 3 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/masmx86/readme.txt: -------------------------------------------------------------------------------- 1 | 2 | Summary 3 | ------- 4 | This directory contains ASM implementations of the functions 5 | longest_match() and inflate_fast(). 6 | 7 | 8 | Use instructions 9 | ---------------- 10 | Assemble using MASM, and copy the object files into the zlib source 11 | directory, then run the appropriate makefile, as suggested below. You can 12 | donwload MASM from here: 13 | 14 | http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64 15 | 16 | You can also get objects files here: 17 | 18 | http://www.winimage.com/zLibDll/zlib124_masm_obj.zip 19 | 20 | Build instructions 21 | ------------------ 22 | * With Microsoft C and MASM: 23 | nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="match686.obj inffas32.obj" 24 | 25 | * With Borland C and TASM: 26 | make -f win32/Makefile.bor LOCAL_ZLIB="-DASMV -DASMINF" OBJA="match686.obj inffas32.obj" OBJPA="+match686c.obj+match686.obj+inffas32.obj" 27 | 28 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/minizip/Makefile: -------------------------------------------------------------------------------- 1 | CC=cc 2 | CFLAGS=-O -I../.. 3 | 4 | UNZ_OBJS = miniunz.o unzip.o ioapi.o ../../libz.a 5 | ZIP_OBJS = minizip.o zip.o ioapi.o ../../libz.a 6 | 7 | .c.o: 8 | $(CC) -c $(CFLAGS) $*.c 9 | 10 | all: miniunz minizip 11 | 12 | miniunz: $(UNZ_OBJS) 13 | $(CC) $(CFLAGS) -o $@ $(UNZ_OBJS) 14 | 15 | minizip: $(ZIP_OBJS) 16 | $(CC) $(CFLAGS) -o $@ $(ZIP_OBJS) 17 | 18 | test: miniunz minizip 19 | ./minizip test readme.txt 20 | ./miniunz -l test.zip 21 | mv readme.txt readme.old 22 | ./miniunz test.zip 23 | 24 | clean: 25 | /bin/rm -f *.o *~ minizip miniunz 26 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/minizip/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES = libminizip.la 2 | 3 | if COND_DEMOS 4 | bin_PROGRAMS = miniunzip minizip 5 | endif 6 | 7 | zlib_top_srcdir = $(top_srcdir)/../.. 8 | zlib_top_builddir = $(top_builddir)/../.. 9 | 10 | AM_CPPFLAGS = -I$(zlib_top_srcdir) 11 | AM_LDFLAGS = -L$(zlib_top_builddir) 12 | 13 | if WIN32 14 | iowin32_src = iowin32.c 15 | iowin32_h = iowin32.h 16 | endif 17 | 18 | libminizip_la_SOURCES = \ 19 | ioapi.c \ 20 | mztools.c \ 21 | unzip.c \ 22 | zip.c \ 23 | ${iowin32_src} 24 | 25 | libminizip_la_LDFLAGS = $(AM_LDFLAGS) -version-info 1:0:0 -lz 26 | 27 | minizip_includedir = $(includedir)/minizip 28 | minizip_include_HEADERS = \ 29 | crypt.h \ 30 | ioapi.h \ 31 | mztools.h \ 32 | unzip.h \ 33 | zip.h \ 34 | ${iowin32_h} 35 | 36 | pkgconfigdir = $(libdir)/pkgconfig 37 | pkgconfig_DATA = minizip.pc 38 | 39 | EXTRA_PROGRAMS = miniunzip minizip 40 | 41 | miniunzip_SOURCES = miniunz.c 42 | miniunzip_LDADD = libminizip.la 43 | 44 | minizip_SOURCES = minizip.c 45 | minizip_LDADD = libminizip.la -lz 46 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/minizip/MiniZip64_Changes.txt: -------------------------------------------------------------------------------- 1 | 2 | MiniZip 1.1 was derrived from MiniZip at version 1.01f 3 | 4 | Change in 1.0 (Okt 2009) 5 | - **TODO - Add history** 6 | 7 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/minizip/configure.ac: -------------------------------------------------------------------------------- 1 | # -*- Autoconf -*- 2 | # Process this file with autoconf to produce a configure script. 3 | 4 | AC_INIT([minizip], [1.2.8], [bugzilla.redhat.com]) 5 | AC_CONFIG_SRCDIR([minizip.c]) 6 | AM_INIT_AUTOMAKE([foreign]) 7 | LT_INIT 8 | 9 | AC_MSG_CHECKING([whether to build example programs]) 10 | AC_ARG_ENABLE([demos], AC_HELP_STRING([--enable-demos], [build example programs])) 11 | AM_CONDITIONAL([COND_DEMOS], [test "$enable_demos" = yes]) 12 | if test "$enable_demos" = yes 13 | then 14 | AC_MSG_RESULT([yes]) 15 | else 16 | AC_MSG_RESULT([no]) 17 | fi 18 | 19 | case "${host}" in 20 | *-mingw* | mingw*) 21 | WIN32="yes" 22 | ;; 23 | *) 24 | ;; 25 | esac 26 | AM_CONDITIONAL([WIN32], [test "${WIN32}" = "yes"]) 27 | 28 | 29 | AC_SUBST([HAVE_UNISTD_H], [0]) 30 | AC_CHECK_HEADER([unistd.h], [HAVE_UNISTD_H=1], []) 31 | AC_CONFIG_FILES([Makefile minizip.pc]) 32 | AC_OUTPUT 33 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/minizip/iowin32.h: -------------------------------------------------------------------------------- 1 | /* iowin32.h -- IO base function header for compress/uncompress .zip 2 | Version 1.1, February 14h, 2010 3 | part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) 4 | 5 | Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) 6 | 7 | Modifications for Zip64 support 8 | Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) 9 | 10 | For more info read MiniZip_info.txt 11 | 12 | */ 13 | 14 | #include 15 | 16 | 17 | #ifdef __cplusplus 18 | extern "C" { 19 | #endif 20 | 21 | void fill_win32_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def)); 22 | void fill_win32_filefunc64 OF((zlib_filefunc64_def* pzlib_filefunc_def)); 23 | void fill_win32_filefunc64A OF((zlib_filefunc64_def* pzlib_filefunc_def)); 24 | void fill_win32_filefunc64W OF((zlib_filefunc64_def* pzlib_filefunc_def)); 25 | 26 | #ifdef __cplusplus 27 | } 28 | #endif 29 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/minizip/make_vms.com: -------------------------------------------------------------------------------- 1 | $ if f$search("ioapi.h_orig") .eqs. "" then copy ioapi.h ioapi.h_orig 2 | $ open/write zdef vmsdefs.h 3 | $ copy sys$input: zdef 4 | $ deck 5 | #define unix 6 | #define fill_zlib_filefunc64_32_def_from_filefunc32 fillzffunc64from 7 | #define Write_Zip64EndOfCentralDirectoryLocator Write_Zip64EoDLocator 8 | #define Write_Zip64EndOfCentralDirectoryRecord Write_Zip64EoDRecord 9 | #define Write_EndOfCentralDirectoryRecord Write_EoDRecord 10 | $ eod 11 | $ close zdef 12 | $ copy vmsdefs.h,ioapi.h_orig ioapi.h 13 | $ cc/include=[--]/prefix=all ioapi.c 14 | $ cc/include=[--]/prefix=all miniunz.c 15 | $ cc/include=[--]/prefix=all unzip.c 16 | $ cc/include=[--]/prefix=all minizip.c 17 | $ cc/include=[--]/prefix=all zip.c 18 | $ link miniunz,unzip,ioapi,[--]libz.olb/lib 19 | $ link minizip,zip,ioapi,[--]libz.olb/lib 20 | $ mcr []minizip test minizip_info.txt 21 | $ mcr []miniunz -l test.zip 22 | $ rename minizip_info.txt; minizip_info.txt_old 23 | $ mcr []miniunz test.zip 24 | $ delete test.zip;* 25 | $exit 26 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/minizip/minizip.1: -------------------------------------------------------------------------------- 1 | .\" Hey, EMACS: -*- nroff -*- 2 | .TH minizip 1 "May 2, 2001" 3 | .\" Please adjust this date whenever revising the manpage. 4 | .\" 5 | .\" Some roff macros, for reference: 6 | .\" .nh disable hyphenation 7 | .\" .hy enable hyphenation 8 | .\" .ad l left justify 9 | .\" .ad b justify to both left and right margins 10 | .\" .nf disable filling 11 | .\" .fi enable filling 12 | .\" .br insert line break 13 | .\" .sp insert n+1 empty lines 14 | .\" for manpage-specific macros, see man(7) 15 | .SH NAME 16 | minizip - create ZIP archives 17 | .SH SYNOPSIS 18 | .B minizip 19 | .RI [ -o ] 20 | zipfile [ " files" ... ] 21 | .SH DESCRIPTION 22 | .B minizip 23 | is a simple tool which allows the creation of compressed file archives 24 | in the ZIP format used by the MS-DOS utility PKZIP. It was written as 25 | a demonstration of the 26 | .IR zlib (3) 27 | library and therefore lack many of the features of the 28 | .IR zip (1) 29 | program. 30 | .SH OPTIONS 31 | The first argument supplied is the name of the ZIP archive to create or 32 | .RI -o 33 | in which case it is ignored and the second argument treated as the 34 | name of the ZIP file. If the ZIP file already exists it will be 35 | overwritten. 36 | .PP 37 | Subsequent arguments specify a list of files to place in the ZIP 38 | archive. If none are specified then an empty archive will be created. 39 | .SH SEE ALSO 40 | .BR miniunzip (1), 41 | .BR zlib (3), 42 | .BR zip (1). 43 | .SH AUTHOR 44 | This program was written by Gilles Vollant. This manual page was 45 | written by Mark Brown . 46 | 47 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/minizip/minizip.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@/minizip 5 | 6 | Name: minizip 7 | Description: Minizip zip file manipulation library 8 | Requires: 9 | Version: @PACKAGE_VERSION@ 10 | Libs: -L${libdir} -lminizip 11 | Libs.private: -lz 12 | Cflags: -I${includedir} 13 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/minizip/mztools.h: -------------------------------------------------------------------------------- 1 | /* 2 | Additional tools for Minizip 3 | Code: Xavier Roche '2004 4 | License: Same as ZLIB (www.gzip.org) 5 | */ 6 | 7 | #ifndef _zip_tools_H 8 | #define _zip_tools_H 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | #ifndef _ZLIB_H 15 | #include "zlib.h" 16 | #endif 17 | 18 | #include "unzip.h" 19 | 20 | /* Repair a ZIP file (missing central directory) 21 | file: file to recover 22 | fileOut: output file after recovery 23 | fileOutTmp: temporary file name used for recovery 24 | */ 25 | extern int ZEXPORT unzRepair(const char* file, 26 | const char* fileOut, 27 | const char* fileOutTmp, 28 | uLong* nRecovered, 29 | uLong* bytesRecovered); 30 | 31 | 32 | #ifdef __cplusplus 33 | } 34 | #endif 35 | 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/puff/puff.h: -------------------------------------------------------------------------------- 1 | /* puff.h 2 | Copyright (C) 2002-2013 Mark Adler, all rights reserved 3 | version 2.3, 21 Jan 2013 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the author be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | 21 | Mark Adler madler@alumni.caltech.edu 22 | */ 23 | 24 | 25 | /* 26 | * See puff.c for purpose and usage. 27 | */ 28 | #ifndef NIL 29 | # define NIL ((unsigned char *)0) /* for no output option */ 30 | #endif 31 | 32 | int puff(unsigned char *dest, /* pointer to destination pointer */ 33 | unsigned long *destlen, /* amount of output space */ 34 | const unsigned char *source, /* pointer to source data pointer */ 35 | unsigned long *sourcelen); /* amount of input available */ 36 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/puff/zeros.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxxit/dockerfiles/452801e6e20de7ebe7f95f38840937c0dc4e4f6f/nginx-geoip2/zlib-1.2.8/contrib/puff/zeros.raw -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/testzlib/testzlib.txt: -------------------------------------------------------------------------------- 1 | To build testzLib with Visual Studio 2005: 2 | 3 | copy to a directory file from : 4 | - root of zLib tree 5 | - contrib/testzlib 6 | - contrib/masmx86 7 | - contrib/masmx64 8 | - contrib/vstudio/vc7 9 | 10 | and open testzlib8.sln -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/untgz/Makefile: -------------------------------------------------------------------------------- 1 | CC=cc 2 | CFLAGS=-g 3 | 4 | untgz: untgz.o ../../libz.a 5 | $(CC) $(CFLAGS) -o untgz untgz.o -L../.. -lz 6 | 7 | untgz.o: untgz.c ../../zlib.h 8 | $(CC) $(CFLAGS) -c -I../.. untgz.c 9 | 10 | ../../libz.a: 11 | cd ../..; ./configure; make 12 | 13 | clean: 14 | rm -f untgz untgz.o *~ 15 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/untgz/Makefile.msc: -------------------------------------------------------------------------------- 1 | CC=cl 2 | CFLAGS=-MD 3 | 4 | untgz.exe: untgz.obj ..\..\zlib.lib 5 | $(CC) $(CFLAGS) untgz.obj ..\..\zlib.lib 6 | 7 | untgz.obj: untgz.c ..\..\zlib.h 8 | $(CC) $(CFLAGS) -c -I..\.. untgz.c 9 | 10 | ..\..\zlib.lib: 11 | cd ..\.. 12 | $(MAKE) -f win32\makefile.msc 13 | cd contrib\untgz 14 | 15 | clean: 16 | -del untgz.obj 17 | -del untgz.exe 18 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/vstudio/vc10/miniunz.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {048af943-022b-4db6-beeb-a54c34774ee2} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {c1d600d2-888f-4aea-b73e-8b0dd9befa0c} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {0844199a-966b-4f19-81db-1e0125e141b9} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/vstudio/vc10/minizip.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {c0419b40-bf50-40da-b153-ff74215b79de} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {bb87b070-735b-478e-92ce-7383abb2f36c} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {f46ab6a6-548f-43cb-ae96-681abb5bd5db} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/vstudio/vc10/testzlibdll.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {fa61a89f-93fc-4c89-b29e-36224b7592f4} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {d4b85da0-2ba2-4934-b57f-e2584e3848ee} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {e573e075-00bd-4a7d-bd67-a8cc9bfc5aca} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/vstudio/vc10/zlib.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define IDR_VERSION1 1 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 5 | FILEVERSION 1,2,8,0 6 | PRODUCTVERSION 1,2,8,0 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 8 | FILEFLAGS 0 9 | FILEOS VOS_DOS_WINDOWS32 10 | FILETYPE VFT_DLL 11 | FILESUBTYPE 0 // not used 12 | BEGIN 13 | BLOCK "StringFileInfo" 14 | BEGIN 15 | BLOCK "040904E4" 16 | //language ID = U.S. English, char set = Windows, Multilingual 17 | 18 | BEGIN 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" 20 | VALUE "FileVersion", "1.2.8\0" 21 | VALUE "InternalName", "zlib\0" 22 | VALUE "OriginalFilename", "zlibwapi.dll\0" 23 | VALUE "ProductName", "ZLib.DLL\0" 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" 25 | VALUE "LegalCopyright", "(C) 1995-2013 Jean-loup Gailly & Mark Adler\0" 26 | END 27 | END 28 | BLOCK "VarFileInfo" 29 | BEGIN 30 | VALUE "Translation", 0x0409, 1252 31 | END 32 | END 33 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/vstudio/vc11/zlib.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define IDR_VERSION1 1 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 5 | FILEVERSION 1,2,8,0 6 | PRODUCTVERSION 1,2,8,0 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 8 | FILEFLAGS 0 9 | FILEOS VOS_DOS_WINDOWS32 10 | FILETYPE VFT_DLL 11 | FILESUBTYPE 0 // not used 12 | BEGIN 13 | BLOCK "StringFileInfo" 14 | BEGIN 15 | BLOCK "040904E4" 16 | //language ID = U.S. English, char set = Windows, Multilingual 17 | 18 | BEGIN 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" 20 | VALUE "FileVersion", "1.2.8\0" 21 | VALUE "InternalName", "zlib\0" 22 | VALUE "OriginalFilename", "zlibwapi.dll\0" 23 | VALUE "ProductName", "ZLib.DLL\0" 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" 25 | VALUE "LegalCopyright", "(C) 1995-2013 Jean-loup Gailly & Mark Adler\0" 26 | END 27 | END 28 | BLOCK "VarFileInfo" 29 | BEGIN 30 | VALUE "Translation", 0x0409, 1252 31 | END 32 | END 33 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/contrib/vstudio/vc9/zlib.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define IDR_VERSION1 1 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 5 | FILEVERSION 1,2,8,0 6 | PRODUCTVERSION 1,2,8,0 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 8 | FILEFLAGS 0 9 | FILEOS VOS_DOS_WINDOWS32 10 | FILETYPE VFT_DLL 11 | FILESUBTYPE 0 // not used 12 | BEGIN 13 | BLOCK "StringFileInfo" 14 | BEGIN 15 | BLOCK "040904E4" 16 | //language ID = U.S. English, char set = Windows, Multilingual 17 | 18 | BEGIN 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" 20 | VALUE "FileVersion", "1.2.8\0" 21 | VALUE "InternalName", "zlib\0" 22 | VALUE "OriginalFilename", "zlibwapi.dll\0" 23 | VALUE "ProductName", "ZLib.DLL\0" 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" 25 | VALUE "LegalCopyright", "(C) 1995-2013 Jean-loup Gailly & Mark Adler\0" 26 | END 27 | END 28 | BLOCK "VarFileInfo" 29 | BEGIN 30 | VALUE "Translation", 0x0409, 1252 31 | END 32 | END 33 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/gzclose.c: -------------------------------------------------------------------------------- 1 | /* gzclose.c -- zlib gzclose() function 2 | * Copyright (C) 2004, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | #include "gzguts.h" 7 | 8 | /* gzclose() is in a separate file so that it is linked in only if it is used. 9 | That way the other gzclose functions can be used instead to avoid linking in 10 | unneeded compression or decompression routines. */ 11 | int ZEXPORT gzclose(file) 12 | gzFile file; 13 | { 14 | #ifndef NO_GZCOMPRESS 15 | gz_statep state; 16 | 17 | if (file == NULL) 18 | return Z_STREAM_ERROR; 19 | state = (gz_statep)file; 20 | 21 | return state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file); 22 | #else 23 | return gzclose_r(file); 24 | #endif 25 | } 26 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/inffast.h: -------------------------------------------------------------------------------- 1 | /* inffast.h -- header to use inffast.c 2 | * Copyright (C) 1995-2003, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* WARNING: this file should *not* be used by applications. It is 7 | part of the implementation of the compression library and is 8 | subject to change. Applications should only use zlib.h. 9 | */ 10 | 11 | void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start)); 12 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/msdos/Makefile.emx: -------------------------------------------------------------------------------- 1 | # Makefile for zlib. Modified for emx 0.9c by Chr. Spieler, 6/17/98. 2 | # Copyright (C) 1995-1998 Jean-loup Gailly. 3 | # For conditions of distribution and use, see copyright notice in zlib.h 4 | 5 | # To compile, or to compile and test, type: 6 | # 7 | # make -fmakefile.emx; make test -fmakefile.emx 8 | # 9 | 10 | CC=gcc 11 | 12 | #CFLAGS=-MMD -O 13 | #CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7 14 | #CFLAGS=-MMD -g -DDEBUG 15 | CFLAGS=-MMD -O3 $(BUTT) -Wall -Wwrite-strings -Wpointer-arith -Wconversion \ 16 | -Wstrict-prototypes -Wmissing-prototypes 17 | 18 | # If cp.exe is available, replace "copy /Y" with "cp -fp" . 19 | CP=copy /Y 20 | # If gnu install.exe is available, replace $(CP) with ginstall. 21 | INSTALL=$(CP) 22 | # The default value of RM is "rm -f." If "rm.exe" is found, comment out: 23 | RM=del 24 | LDLIBS=-L. -lzlib 25 | LD=$(CC) -s -o 26 | LDSHARED=$(CC) 27 | 28 | INCL=zlib.h zconf.h 29 | LIBS=zlib.a 30 | 31 | AR=ar rcs 32 | 33 | prefix=/usr/local 34 | exec_prefix = $(prefix) 35 | 36 | OBJS = adler32.o compress.o crc32.o gzclose.o gzlib.o gzread.o gzwrite.o \ 37 | uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o 38 | 39 | TEST_OBJS = example.o minigzip.o 40 | 41 | all: example.exe minigzip.exe 42 | 43 | test: all 44 | ./example 45 | echo hello world | .\minigzip | .\minigzip -d 46 | 47 | %.o : %.c 48 | $(CC) $(CFLAGS) -c $< -o $@ 49 | 50 | zlib.a: $(OBJS) 51 | $(AR) $@ $(OBJS) 52 | 53 | %.exe : %.o $(LIBS) 54 | $(LD) $@ $< $(LDLIBS) 55 | 56 | 57 | .PHONY : clean 58 | 59 | clean: 60 | $(RM) *.d 61 | $(RM) *.o 62 | $(RM) *.exe 63 | $(RM) zlib.a 64 | $(RM) foo.gz 65 | 66 | DEPS := $(wildcard *.d) 67 | ifneq ($(DEPS),) 68 | include $(DEPS) 69 | endif 70 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/nintendods/README: -------------------------------------------------------------------------------- 1 | This Makefile requires devkitARM (http://www.devkitpro.org/category/devkitarm/) and works inside "contrib/nds". It is based on a devkitARM template. 2 | 3 | Eduardo Costa 4 | January 3, 2009 5 | 6 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/old/Makefile.emx: -------------------------------------------------------------------------------- 1 | # Makefile for zlib. Modified for emx/rsxnt by Chr. Spieler, 6/16/98. 2 | # Copyright (C) 1995-1998 Jean-loup Gailly. 3 | # For conditions of distribution and use, see copyright notice in zlib.h 4 | 5 | # To compile, or to compile and test, type: 6 | # 7 | # make -fmakefile.emx; make test -fmakefile.emx 8 | # 9 | 10 | CC=gcc -Zwin32 11 | 12 | #CFLAGS=-MMD -O 13 | #CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7 14 | #CFLAGS=-MMD -g -DDEBUG 15 | CFLAGS=-MMD -O3 $(BUTT) -Wall -Wwrite-strings -Wpointer-arith -Wconversion \ 16 | -Wstrict-prototypes -Wmissing-prototypes 17 | 18 | # If cp.exe is available, replace "copy /Y" with "cp -fp" . 19 | CP=copy /Y 20 | # If gnu install.exe is available, replace $(CP) with ginstall. 21 | INSTALL=$(CP) 22 | # The default value of RM is "rm -f." If "rm.exe" is found, comment out: 23 | RM=del 24 | LDLIBS=-L. -lzlib 25 | LD=$(CC) -s -o 26 | LDSHARED=$(CC) 27 | 28 | INCL=zlib.h zconf.h 29 | LIBS=zlib.a 30 | 31 | AR=ar rcs 32 | 33 | prefix=/usr/local 34 | exec_prefix = $(prefix) 35 | 36 | OBJS = adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o gzread.o \ 37 | gzwrite.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o 38 | 39 | TEST_OBJS = example.o minigzip.o 40 | 41 | all: example.exe minigzip.exe 42 | 43 | test: all 44 | ./example 45 | echo hello world | .\minigzip | .\minigzip -d 46 | 47 | %.o : %.c 48 | $(CC) $(CFLAGS) -c $< -o $@ 49 | 50 | zlib.a: $(OBJS) 51 | $(AR) $@ $(OBJS) 52 | 53 | %.exe : %.o $(LIBS) 54 | $(LD) $@ $< $(LDLIBS) 55 | 56 | 57 | .PHONY : clean 58 | 59 | clean: 60 | $(RM) *.d 61 | $(RM) *.o 62 | $(RM) *.exe 63 | $(RM) zlib.a 64 | $(RM) foo.gz 65 | 66 | DEPS := $(wildcard *.d) 67 | ifneq ($(DEPS),) 68 | include $(DEPS) 69 | endif 70 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/old/README: -------------------------------------------------------------------------------- 1 | This directory contains files that have not been updated for zlib 1.2.x 2 | 3 | (Volunteers are encouraged to help clean this up. Thanks.) 4 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/old/descrip.mms: -------------------------------------------------------------------------------- 1 | # descrip.mms: MMS description file for building zlib on VMS 2 | # written by Martin P.J. Zinser 3 | 4 | cc_defs = 5 | c_deb = 6 | 7 | .ifdef __DECC__ 8 | pref = /prefix=all 9 | .endif 10 | 11 | OBJS = adler32.obj, compress.obj, crc32.obj, gzio.obj, uncompr.obj,\ 12 | deflate.obj, trees.obj, zutil.obj, inflate.obj, infblock.obj,\ 13 | inftrees.obj, infcodes.obj, infutil.obj, inffast.obj 14 | 15 | CFLAGS= $(C_DEB) $(CC_DEFS) $(PREF) 16 | 17 | all : example.exe minigzip.exe 18 | @ write sys$output " Example applications available" 19 | libz.olb : libz.olb($(OBJS)) 20 | @ write sys$output " libz available" 21 | 22 | example.exe : example.obj libz.olb 23 | link example,libz.olb/lib 24 | 25 | minigzip.exe : minigzip.obj libz.olb 26 | link minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib 27 | 28 | clean : 29 | delete *.obj;*,libz.olb;* 30 | 31 | 32 | # Other dependencies. 33 | adler32.obj : zutil.h zlib.h zconf.h 34 | compress.obj : zlib.h zconf.h 35 | crc32.obj : zutil.h zlib.h zconf.h 36 | deflate.obj : deflate.h zutil.h zlib.h zconf.h 37 | example.obj : zlib.h zconf.h 38 | gzio.obj : zutil.h zlib.h zconf.h 39 | infblock.obj : zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h 40 | infcodes.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h infcodes.h inffast.h 41 | inffast.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h 42 | inflate.obj : zutil.h zlib.h zconf.h infblock.h 43 | inftrees.obj : zutil.h zlib.h zconf.h inftrees.h 44 | infutil.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h 45 | minigzip.obj : zlib.h zconf.h 46 | trees.obj : deflate.h zutil.h zlib.h zconf.h 47 | uncompr.obj : zlib.h zconf.h 48 | zutil.obj : zutil.h zlib.h zconf.h 49 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/old/os2/zlib.def: -------------------------------------------------------------------------------- 1 | ; 2 | ; Slightly modified version of ../nt/zlib.dnt :-) 3 | ; 4 | 5 | LIBRARY Z 6 | DESCRIPTION "Zlib compression library for OS/2" 7 | CODE PRELOAD MOVEABLE DISCARDABLE 8 | DATA PRELOAD MOVEABLE MULTIPLE 9 | 10 | EXPORTS 11 | adler32 12 | compress 13 | crc32 14 | deflate 15 | deflateCopy 16 | deflateEnd 17 | deflateInit2_ 18 | deflateInit_ 19 | deflateParams 20 | deflateReset 21 | deflateSetDictionary 22 | gzclose 23 | gzdopen 24 | gzerror 25 | gzflush 26 | gzopen 27 | gzread 28 | gzwrite 29 | inflate 30 | inflateEnd 31 | inflateInit2_ 32 | inflateInit_ 33 | inflateReset 34 | inflateSetDictionary 35 | inflateSync 36 | uncompress 37 | zlibVersion 38 | gzprintf 39 | gzputc 40 | gzgetc 41 | gzseek 42 | gzrewind 43 | gztell 44 | gzeof 45 | gzsetparams 46 | zError 47 | inflateSyncPoint 48 | get_crc_table 49 | compress2 50 | gzputs 51 | gzgets 52 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/watcom/watcom_f.mak: -------------------------------------------------------------------------------- 1 | # Makefile for zlib 2 | # OpenWatcom flat model 3 | # Last updated: 28-Dec-2005 4 | 5 | # To use, do "wmake -f watcom_f.mak" 6 | 7 | C_SOURCE = adler32.c compress.c crc32.c deflate.c & 8 | gzclose.c gzlib.c gzread.c gzwrite.c & 9 | infback.c inffast.c inflate.c inftrees.c & 10 | trees.c uncompr.c zutil.c 11 | 12 | OBJS = adler32.obj compress.obj crc32.obj deflate.obj & 13 | gzclose.obj gzlib.obj gzread.obj gzwrite.obj & 14 | infback.obj inffast.obj inflate.obj inftrees.obj & 15 | trees.obj uncompr.obj zutil.obj 16 | 17 | CC = wcc386 18 | LINKER = wcl386 19 | CFLAGS = -zq -mf -3r -fp3 -s -bt=dos -oilrtfm -fr=nul -wx 20 | ZLIB_LIB = zlib_f.lib 21 | 22 | .C.OBJ: 23 | $(CC) $(CFLAGS) $[@ 24 | 25 | all: $(ZLIB_LIB) example.exe minigzip.exe 26 | 27 | $(ZLIB_LIB): $(OBJS) 28 | wlib -b -c $(ZLIB_LIB) -+adler32.obj -+compress.obj -+crc32.obj 29 | wlib -b -c $(ZLIB_LIB) -+gzclose.obj -+gzlib.obj -+gzread.obj -+gzwrite.obj 30 | wlib -b -c $(ZLIB_LIB) -+deflate.obj -+infback.obj 31 | wlib -b -c $(ZLIB_LIB) -+inffast.obj -+inflate.obj -+inftrees.obj 32 | wlib -b -c $(ZLIB_LIB) -+trees.obj -+uncompr.obj -+zutil.obj 33 | 34 | example.exe: $(ZLIB_LIB) example.obj 35 | $(LINKER) -ldos32a -fe=example.exe example.obj $(ZLIB_LIB) 36 | 37 | minigzip.exe: $(ZLIB_LIB) minigzip.obj 38 | $(LINKER) -ldos32a -fe=minigzip.exe minigzip.obj $(ZLIB_LIB) 39 | 40 | clean: .SYMBOLIC 41 | del *.obj 42 | del $(ZLIB_LIB) 43 | @echo Cleaning done 44 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/watcom/watcom_l.mak: -------------------------------------------------------------------------------- 1 | # Makefile for zlib 2 | # OpenWatcom large model 3 | # Last updated: 28-Dec-2005 4 | 5 | # To use, do "wmake -f watcom_l.mak" 6 | 7 | C_SOURCE = adler32.c compress.c crc32.c deflate.c & 8 | gzclose.c gzlib.c gzread.c gzwrite.c & 9 | infback.c inffast.c inflate.c inftrees.c & 10 | trees.c uncompr.c zutil.c 11 | 12 | OBJS = adler32.obj compress.obj crc32.obj deflate.obj & 13 | gzclose.obj gzlib.obj gzread.obj gzwrite.obj & 14 | infback.obj inffast.obj inflate.obj inftrees.obj & 15 | trees.obj uncompr.obj zutil.obj 16 | 17 | CC = wcc 18 | LINKER = wcl 19 | CFLAGS = -zq -ml -s -bt=dos -oilrtfm -fr=nul -wx 20 | ZLIB_LIB = zlib_l.lib 21 | 22 | .C.OBJ: 23 | $(CC) $(CFLAGS) $[@ 24 | 25 | all: $(ZLIB_LIB) example.exe minigzip.exe 26 | 27 | $(ZLIB_LIB): $(OBJS) 28 | wlib -b -c $(ZLIB_LIB) -+adler32.obj -+compress.obj -+crc32.obj 29 | wlib -b -c $(ZLIB_LIB) -+gzclose.obj -+gzlib.obj -+gzread.obj -+gzwrite.obj 30 | wlib -b -c $(ZLIB_LIB) -+deflate.obj -+infback.obj 31 | wlib -b -c $(ZLIB_LIB) -+inffast.obj -+inflate.obj -+inftrees.obj 32 | wlib -b -c $(ZLIB_LIB) -+trees.obj -+uncompr.obj -+zutil.obj 33 | 34 | example.exe: $(ZLIB_LIB) example.obj 35 | $(LINKER) -fe=example.exe example.obj $(ZLIB_LIB) 36 | 37 | minigzip.exe: $(ZLIB_LIB) minigzip.obj 38 | $(LINKER) -fe=minigzip.exe minigzip.obj $(ZLIB_LIB) 39 | 40 | clean: .SYMBOLIC 41 | del *.obj 42 | del $(ZLIB_LIB) 43 | @echo Cleaning done 44 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/win32/VisualC.txt: -------------------------------------------------------------------------------- 1 | 2 | To build zlib using the Microsoft Visual C++ environment, 3 | use the appropriate project from the projects/ directory. 4 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/win32/zlib.def: -------------------------------------------------------------------------------- 1 | ; zlib data compression library 2 | EXPORTS 3 | ; basic functions 4 | zlibVersion 5 | deflate 6 | deflateEnd 7 | inflate 8 | inflateEnd 9 | ; advanced functions 10 | deflateSetDictionary 11 | deflateCopy 12 | deflateReset 13 | deflateParams 14 | deflateTune 15 | deflateBound 16 | deflatePending 17 | deflatePrime 18 | deflateSetHeader 19 | inflateSetDictionary 20 | inflateGetDictionary 21 | inflateSync 22 | inflateCopy 23 | inflateReset 24 | inflateReset2 25 | inflatePrime 26 | inflateMark 27 | inflateGetHeader 28 | inflateBack 29 | inflateBackEnd 30 | zlibCompileFlags 31 | ; utility functions 32 | compress 33 | compress2 34 | compressBound 35 | uncompress 36 | gzopen 37 | gzdopen 38 | gzbuffer 39 | gzsetparams 40 | gzread 41 | gzwrite 42 | gzprintf 43 | gzvprintf 44 | gzputs 45 | gzgets 46 | gzputc 47 | gzgetc 48 | gzungetc 49 | gzflush 50 | gzseek 51 | gzrewind 52 | gztell 53 | gzoffset 54 | gzeof 55 | gzdirect 56 | gzclose 57 | gzclose_r 58 | gzclose_w 59 | gzerror 60 | gzclearerr 61 | ; large file functions 62 | gzopen64 63 | gzseek64 64 | gztell64 65 | gzoffset64 66 | adler32_combine64 67 | crc32_combine64 68 | ; checksum functions 69 | adler32 70 | crc32 71 | adler32_combine 72 | crc32_combine 73 | ; various hacks, don't look :) 74 | deflateInit_ 75 | deflateInit2_ 76 | inflateInit_ 77 | inflateInit2_ 78 | inflateBackInit_ 79 | gzgetc_ 80 | zError 81 | inflateSyncPoint 82 | get_crc_table 83 | inflateUndermine 84 | inflateResetKeep 85 | deflateResetKeep 86 | gzopen_w 87 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/win32/zlib1.rc: -------------------------------------------------------------------------------- 1 | #include 2 | #include "../zlib.h" 3 | 4 | #ifdef GCC_WINDRES 5 | VS_VERSION_INFO VERSIONINFO 6 | #else 7 | VS_VERSION_INFO VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 8 | #endif 9 | FILEVERSION ZLIB_VER_MAJOR,ZLIB_VER_MINOR,ZLIB_VER_REVISION,0 10 | PRODUCTVERSION ZLIB_VER_MAJOR,ZLIB_VER_MINOR,ZLIB_VER_REVISION,0 11 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 12 | #ifdef _DEBUG 13 | FILEFLAGS 1 14 | #else 15 | FILEFLAGS 0 16 | #endif 17 | FILEOS VOS__WINDOWS32 18 | FILETYPE VFT_DLL 19 | FILESUBTYPE 0 // not used 20 | BEGIN 21 | BLOCK "StringFileInfo" 22 | BEGIN 23 | BLOCK "040904E4" 24 | //language ID = U.S. English, char set = Windows, Multilingual 25 | BEGIN 26 | VALUE "FileDescription", "zlib data compression library\0" 27 | VALUE "FileVersion", ZLIB_VERSION "\0" 28 | VALUE "InternalName", "zlib1.dll\0" 29 | VALUE "LegalCopyright", "(C) 1995-2013 Jean-loup Gailly & Mark Adler\0" 30 | VALUE "OriginalFilename", "zlib1.dll\0" 31 | VALUE "ProductName", "zlib\0" 32 | VALUE "ProductVersion", ZLIB_VERSION "\0" 33 | VALUE "Comments", "For more information visit http://www.zlib.net/\0" 34 | END 35 | END 36 | BLOCK "VarFileInfo" 37 | BEGIN 38 | VALUE "Translation", 0x0409, 1252 39 | END 40 | END 41 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/zlib.3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxxit/dockerfiles/452801e6e20de7ebe7f95f38840937c0dc4e4f6f/nginx-geoip2/zlib-1.2.8/zlib.3.pdf -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/zlib.map: -------------------------------------------------------------------------------- 1 | ZLIB_1.2.0 { 2 | global: 3 | compressBound; 4 | deflateBound; 5 | inflateBack; 6 | inflateBackEnd; 7 | inflateBackInit_; 8 | inflateCopy; 9 | local: 10 | deflate_copyright; 11 | inflate_copyright; 12 | inflate_fast; 13 | inflate_table; 14 | zcalloc; 15 | zcfree; 16 | z_errmsg; 17 | gz_error; 18 | gz_intmax; 19 | _*; 20 | }; 21 | 22 | ZLIB_1.2.0.2 { 23 | gzclearerr; 24 | gzungetc; 25 | zlibCompileFlags; 26 | } ZLIB_1.2.0; 27 | 28 | ZLIB_1.2.0.8 { 29 | deflatePrime; 30 | } ZLIB_1.2.0.2; 31 | 32 | ZLIB_1.2.2 { 33 | adler32_combine; 34 | crc32_combine; 35 | deflateSetHeader; 36 | inflateGetHeader; 37 | } ZLIB_1.2.0.8; 38 | 39 | ZLIB_1.2.2.3 { 40 | deflateTune; 41 | gzdirect; 42 | } ZLIB_1.2.2; 43 | 44 | ZLIB_1.2.2.4 { 45 | inflatePrime; 46 | } ZLIB_1.2.2.3; 47 | 48 | ZLIB_1.2.3.3 { 49 | adler32_combine64; 50 | crc32_combine64; 51 | gzopen64; 52 | gzseek64; 53 | gztell64; 54 | inflateUndermine; 55 | } ZLIB_1.2.2.4; 56 | 57 | ZLIB_1.2.3.4 { 58 | inflateReset2; 59 | inflateMark; 60 | } ZLIB_1.2.3.3; 61 | 62 | ZLIB_1.2.3.5 { 63 | gzbuffer; 64 | gzoffset; 65 | gzoffset64; 66 | gzclose_r; 67 | gzclose_w; 68 | } ZLIB_1.2.3.4; 69 | 70 | ZLIB_1.2.5.1 { 71 | deflatePending; 72 | } ZLIB_1.2.3.5; 73 | 74 | ZLIB_1.2.5.2 { 75 | deflateResetKeep; 76 | gzgetc_; 77 | inflateResetKeep; 78 | } ZLIB_1.2.5.1; 79 | 80 | ZLIB_1.2.7.1 { 81 | inflateGetDictionary; 82 | gzvprintf; 83 | } ZLIB_1.2.5.2; 84 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/zlib.pc.cmakein: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=@CMAKE_INSTALL_PREFIX@ 3 | libdir=@INSTALL_LIB_DIR@ 4 | sharedlibdir=@INSTALL_LIB_DIR@ 5 | includedir=@INSTALL_INC_DIR@ 6 | 7 | Name: zlib 8 | Description: zlib compression library 9 | Version: @VERSION@ 10 | 11 | Requires: 12 | Libs: -L${libdir} -L${sharedlibdir} -lz 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /nginx-geoip2/zlib-1.2.8/zlib.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | sharedlibdir=@sharedlibdir@ 5 | includedir=@includedir@ 6 | 7 | Name: zlib 8 | Description: zlib compression library 9 | Version: @VERSION@ 10 | 11 | Requires: 12 | Libs: -L${libdir} -L${sharedlibdir} -lz 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /nginx-http2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.21 2 | 3 | LABEL org.opencontainers.image.authors="j@srv.im" 4 | 5 | EXPOSE 80/tcp 443/tcp 6 | 7 | ENV NGINX_VERSION 1.26.3 8 | 9 | RUN apk add --no-cache openssl-dev~=3.3 pcre-dev zlib-dev build-base \ 10 | && wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz \ 11 | && tar -xzvf nginx-${NGINX_VERSION}.tar.gz \ 12 | && cd nginx-${NGINX_VERSION} \ 13 | && ./configure \ 14 | --with-http_v2_module \ 15 | --with-http_ssl_module \ 16 | --with-openssl-opt=enable-tls1_3 \ 17 | --with-http_realip_module \ 18 | --with-http_stub_status_module \ 19 | --with-threads \ 20 | --with-ipv6 \ 21 | && make -j$(getconf _NPROCESSORS_ONLN) \ 22 | && make install \ 23 | && apk del build-base \ 24 | && rm -rf /nginx-* 25 | 26 | COPY nginx.conf /usr/local/nginx/conf/nginx.conf 27 | 28 | VOLUME [ "/usr/local/nginx/logs", "/usr/local/nginx/html", "/usr/local/nginx/conf" ] 29 | 30 | ENTRYPOINT [ "/usr/local/nginx/sbin/nginx" ] 31 | CMD [ "-c", "/usr/local/nginx/conf/nginx.conf" ] 32 | -------------------------------------------------------------------------------- /nginx-http2/nginx.conf: -------------------------------------------------------------------------------- 1 | worker_processes 1; 2 | daemon off; 3 | 4 | events { 5 | worker_connections 1024; 6 | } 7 | 8 | http { 9 | include mime.types; 10 | default_type application/octet-stream; 11 | 12 | access_log off; 13 | sendfile on; 14 | 15 | server { 16 | listen 443 http2 default_server; 17 | 18 | ssl_certificate cert.pem; 19 | ssl_certificate_key cert.key; 20 | 21 | location / { 22 | root html; 23 | index index.html index.htm; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /nginx-rtmp/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:noble 2 | 3 | LABEL org.opencontainers.image.authors="j@srv.im" 4 | 5 | ARG NGINX_VERSION="1.24.0" 6 | 7 | RUN apt-get update \ 8 | && apt-get -y install --no-install-recommends build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev libgd-dev libxml2 libxml2-dev uuid-dev wget ca-certificates git \ 9 | && mkdir -p /usr/local/src \ 10 | && cd /usr/local/src \ 11 | && git clone https://github.com/sergey-dryabzhinsky/nginx-rtmp-module.git \ 12 | && wget -qO- http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz | tar -xz \ 13 | && cd nginx-${NGINX_VERSION} \ 14 | && ./configure \ 15 | --with-http_ssl_module \ 16 | --with-debug \ 17 | --add-module=/usr/local/src/nginx-rtmp-module \ 18 | && make -j$(getconf _NPROCESSORS_ONLN) \ 19 | && make install \ 20 | && cp /usr/local/src/nginx-rtmp-module/stat.xsl /usr/local/nginx/html/ \ 21 | && apt-get -y remove --purge build-essential git-core wget \ 22 | && apt-get -y autoremove --purge \ 23 | && rm -rf /usr/local/src/* /var/lib/apt/lists/* 24 | 25 | # Forward request and error logs to Docker log collector 26 | RUN ln -sf /dev/stdout /usr/local/nginx/logs/access.log \ 27 | && ln -sf /dev/stderr /usr/local/nginx/logs/error.log 28 | 29 | COPY conf/nginx.conf /usr/local/nginx/conf/ 30 | 31 | EXPOSE 80/tcp 1935/tcp 32 | 33 | CMD [ "/usr/local/nginx/sbin/nginx" ] 34 | -------------------------------------------------------------------------------- /nginx-rtmp/conf/nginx.conf: -------------------------------------------------------------------------------- 1 | worker_processes auto; 2 | daemon off; 3 | rtmp_auto_push on; 4 | 5 | events { 6 | worker_connections 1024; 7 | } 8 | 9 | # RTMP configuration 10 | rtmp { 11 | server { 12 | listen 1935; # Listen on standard RTMP port 13 | 14 | application live { 15 | live on; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /nginx/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine 2 | 3 | LABEL org.opencontainers.image.authors="j@srv.im" 4 | 5 | RUN apk add --no-cache nginx \ 6 | && mkdir -p /tmp/nginx 7 | 8 | VOLUME [ "/etc/nginx" ] 9 | 10 | EXPOSE 80/tcp 443/tcp 11 | 12 | COPY nginx.conf /etc/nginx/nginx.conf 13 | 14 | ENTRYPOINT ["nginx"] 15 | CMD ["-c", "/etc/nginx/nginx.conf"] 16 | -------------------------------------------------------------------------------- /nginx/nginx.conf: -------------------------------------------------------------------------------- 1 | user nobody; 2 | worker_processes 2; 3 | daemon off; 4 | 5 | events { 6 | worker_connections 1024; 7 | } 8 | 9 | http { 10 | 11 | include mime.types; 12 | default_type application/octet-stream; 13 | access_log off; 14 | sendfile on; 15 | keepalive_timeout 65; 16 | 17 | server { 18 | 19 | listen 80; 20 | 21 | server_name localhost; 22 | 23 | location / { 24 | root html; 25 | index index.html index.htm; 26 | } 27 | 28 | error_page 500 502 503 504 /50x.html; 29 | location = /50x.html { 30 | root html; 31 | } 32 | 33 | } 34 | 35 | include conf.d/*.conf; 36 | 37 | } 38 | -------------------------------------------------------------------------------- /pg/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bullseye-slim 2 | 3 | LABEL org.opencontainers.image.authors="j@srv.im" 4 | 5 | ENV PG_VERSION="9.3" 6 | ENV PGDATA="/var/lib/postgresql/${PG_VERSION}/main" 7 | 8 | EXPOSE 5432/tcp 9 | 10 | RUN apt-get update && \ 11 | DEBIAN_FRONTEND=noninteractive apt-get install -y lsb-release curl gnupg && \ 12 | echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list && \ 13 | curl -sSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \ 14 | apt-get update && \ 15 | DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends postgresql-${PG_VERSION} postgresql-client-${PG_VERSION} postgresql-contrib-${PG_VERSION} pwgen && \ 16 | apt-get clean && \ 17 | apt-get autoremove -y && \ 18 | rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/lib/postgresql/* 19 | 20 | VOLUME ["/var/lib/postgresql"] 21 | 22 | COPY start /start 23 | 24 | CMD ["/start"] 25 | -------------------------------------------------------------------------------- /pg/README.md: -------------------------------------------------------------------------------- 1 | # quay.io/voxxit/pg 2 | -------------------------------------------------------------------------------- /pg/start: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | PG_VERSION=${PG_VERSION:-"9.3"} 4 | PWFILE=${PGDATA}/../pwfile 5 | 6 | if [ ! -f PWFILE ]; then 7 | 8 | # create actual datadir 9 | mkdir -p ${PGDATA} 10 | chown -Rf postgres:postgres /var/lib/postgresql 11 | chmod 0700 ${PGDATA} 12 | 13 | # generate the password & add it to the pwfile 14 | install -m 0600 -g postgres -o postgres /dev/null ${PWFILE} 15 | echo "${PASSWORD:-`pwgen -s 20 1`}" > ${PWFILE} 16 | 17 | # build initial db cluster 18 | su -c "/usr/lib/postgresql/${PG_VERSION}/bin/initdb \ 19 | --pwfile=${PWFILE} \ 20 | --username=postgres \ 21 | --encoding=unicode \ 22 | --auth=trust > /dev/null" postgres 23 | 24 | # disable SSL 25 | sed "s/ssl = true/#ssl = true/" -i ${PGDATA}/postgresql.conf 26 | 27 | # listen on all addresses 28 | sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" ${PGDATA}/postgresql.conf 29 | 30 | # add the pg_hba.conf entries 31 | echo -e "local\tall\tpostgres\t\ttrust" > ${PGDATA}/pg_hba.conf 32 | echo -e "host\tall\tall\t\tall\tmd5" >> ${PGDATA}/pg_hba.conf 33 | 34 | # log the postgres user/password 35 | echo "PGUSER=postgres" 36 | echo "PGPASSWORD=`cat ${PWFILE}`" 37 | fi 38 | 39 | echo "Starting `/usr/lib/postgresql/${PG_VERSION}/bin/postgres -V`..." 40 | 41 | exec su -c "/usr/lib/postgresql/${PG_VERSION}/bin/postgres -D $PGDATA -c config_file=$PGDATA/postgresql.conf" postgres 42 | -------------------------------------------------------------------------------- /powerdns/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:noble 2 | 3 | LABEL org.opencontainers.image.authors="j@srv.im" 4 | 5 | RUN apt-get update \ 6 | && apt-get -y install --no-install-recommends pdns-server pdns-backend-mysql dnsutils \ 7 | && rm -rf /var/lib/apt/lists/* 8 | 9 | COPY *.conf /etc/powerdns/pdns.d/ 10 | 11 | EXPOSE 53/tcp 53/udp 8081/tcp 12 | 13 | CMD [ "pdns_server" ] 14 | -------------------------------------------------------------------------------- /powerdns/pdns.local.conf: -------------------------------------------------------------------------------- 1 | api=yes 2 | api-key=supersecret 3 | api-readonly=yes 4 | daemon=no 5 | default-ttl=300 6 | dnsupdate=yes 7 | master=yes 8 | recursor=8.8.8.8 9 | webserver=yes 10 | webserver-address=0.0.0.0 11 | webserver-port=8081 12 | webserver-password=supersecret 13 | -------------------------------------------------------------------------------- /powerdns/pdns.local.gmysql.conf: -------------------------------------------------------------------------------- 1 | # MySQL Configuration 2 | # 3 | 4 | launch+=gmysql 5 | 6 | gmysql-host=db 7 | gmysql-port=3306 8 | gmysql-dbname=pdns 9 | gmysql-user=pdns 10 | gmysql-password=pdns 11 | gmysql-dnssec=yes 12 | -------------------------------------------------------------------------------- /rails/6/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.21 2 | 3 | # Install required packages including OpenSSL 4 | RUN apk add --no-cache \ 5 | bash make nodejs gcc g++ libc-dev git ruby libxml2-dev libxslt-dev \ 6 | libffi-dev yaml-dev openssl openssl-dev zlib-dev readline-dev linux-headers \ 7 | && mkdir -p /usr/src/app \ 8 | && git clone https://github.com/postmodern/ruby-install /usr/src/ruby-install \ 9 | && cd /usr/src/ruby-install \ 10 | && make install \ 11 | && ruby-install --system ruby 3.1.2 -- --disable-install-rdoc --with-openssl-dir=/usr \ 12 | && gem install 'bundler:2.2.33' 'rails:6.1.7.10' \ 13 | && bundle config --global build.nokogiri --use-system-libraries \ 14 | && apk del ruby \ 15 | && rm -rf /usr/src/* 16 | 17 | WORKDIR /usr/src/app 18 | 19 | ONBUILD COPY ./Gemfile /usr/src/app/ 20 | ONBUILD COPY ./Gemfile.lock /usr/src/app/ 21 | 22 | ONBUILD RUN bundle install --system 23 | 24 | ONBUILD COPY . /usr/src/app 25 | 26 | EXPOSE 3000/tcp 27 | 28 | CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"] -------------------------------------------------------------------------------- /rails/7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.21 2 | 3 | # Install required packages including OpenSSL 4 | RUN apk add --no-cache \ 5 | bash make nodejs gcc g++ libc-dev git ruby libxml2-dev libxslt-dev \ 6 | libffi-dev yaml-dev openssl openssl-dev zlib-dev readline-dev linux-headers \ 7 | && mkdir -p /usr/src/app \ 8 | && git clone https://github.com/postmodern/ruby-install /usr/src/ruby-install \ 9 | && cd /usr/src/ruby-install \ 10 | && make install \ 11 | && ruby-install --system ruby 3.3.0 -- --disable-install-rdoc --with-openssl-dir=/usr \ 12 | && gem install 'bundler:2.5.6' 'rails:7.2.2.1' \ 13 | && bundle config --global build.nokogiri --use-system-libraries \ 14 | && apk del ruby \ 15 | && rm -rf /usr/src/* 16 | 17 | WORKDIR /usr/src/app 18 | 19 | ONBUILD COPY ./Gemfile /usr/src/app/ 20 | ONBUILD COPY ./Gemfile.lock /usr/src/app/ 21 | 22 | ONBUILD RUN bundle install --system 23 | 24 | ONBUILD COPY . /usr/src/app 25 | 26 | EXPOSE 3000/tcp 27 | 28 | CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"] -------------------------------------------------------------------------------- /rails/8/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.21 2 | 3 | # Install required packages including OpenSSL 4 | RUN apk add --no-cache \ 5 | bash make nodejs gcc g++ libc-dev git ruby libxml2-dev libxslt-dev \ 6 | libffi-dev yaml-dev openssl openssl-dev zlib-dev readline-dev linux-headers \ 7 | && mkdir -p /usr/src/app \ 8 | && git clone https://github.com/postmodern/ruby-install /usr/src/ruby-install \ 9 | && cd /usr/src/ruby-install \ 10 | && make install \ 11 | && ruby-install --system ruby 3.3.0 -- --disable-install-rdoc --with-openssl-dir=/usr \ 12 | && gem install 'bundler:2.5.6' 'rails:8.0.2' \ 13 | && bundle config --global build.nokogiri --use-system-libraries \ 14 | && apk del ruby \ 15 | && rm -rf /usr/src/* 16 | 17 | WORKDIR /usr/src/app 18 | 19 | ONBUILD COPY ./Gemfile /usr/src/app/ 20 | ONBUILD COPY ./Gemfile.lock /usr/src/app/ 21 | 22 | ONBUILD RUN bundle install --system 23 | 24 | ONBUILD COPY . /usr/src/app 25 | 26 | EXPOSE 3000/tcp 27 | 28 | CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"] -------------------------------------------------------------------------------- /rails/README.md: -------------------------------------------------------------------------------- 1 | To use: 2 | 3 | 1. Add `Gemfile`, `Gemfile.lock`, `package.json`, and `bower.json` to your project's root 4 | 2. Add `Dockerfile` with `FROM voxxit/rails:latest` at the top 5 | 3. `docker build .` 6 | 4. ??? 7 | 5. Profit! 8 | -------------------------------------------------------------------------------- /redis/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.21 2 | 3 | RUN apk add --no-cache redis 4 | 5 | EXPOSE 6379/tcp 6 | 7 | ENTRYPOINT [ "redis-server" ] 8 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "config:recommended" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /rsyslog/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.21 2 | 3 | LABEL org.opencontainers.image.authors="j@srv.im" 4 | 5 | RUN apk add --no-cache rsyslog 6 | 7 | EXPOSE 514 514/udp 8 | 9 | VOLUME [ "/var/log", "/etc/rsyslog.d" ] 10 | 11 | # for some reason, the apk comes built with a v5 12 | # config file. using this one for v8: 13 | COPY ./etc/rsyslog.conf /etc/rsyslog.conf 14 | 15 | ENTRYPOINT [ "rsyslogd", "-n" ] 16 | -------------------------------------------------------------------------------- /swarm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | 3 | LABEL org.opencontainers.image.authors="j@srv.im" 4 | 5 | COPY swarm_linux_amd64 /bin/swarm 6 | COPY ca-certificates.crt /etc/ssl/certs/ca-certificates.crt 7 | 8 | EXPOSE 2375 9 | 10 | ENTRYPOINT [ "/bin/swarm" ] 11 | -------------------------------------------------------------------------------- /swarm/swarm_linux_amd64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxxit/dockerfiles/452801e6e20de7ebe7f95f38840937c0dc4e4f6f/swarm/swarm_linux_amd64 -------------------------------------------------------------------------------- /vault/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.21 2 | 3 | LABEL org.opencontainers.image.authors="j@srv.im" 4 | 5 | ARG VAULT_VERSION=0.6.1 6 | ENV VAULT_VERSION ${VAULT_VERSION} 7 | 8 | RUN apk add --no-cache wget openssl ca-certificates \ 9 | && wget https://releases.hashicorp.com/vault/${VAULT_VERSION}/vault_${VAULT_VERSION}_linux_amd64.zip \ 10 | && unzip vault_${VAULT_VERSION}_linux_amd64.zip \ 11 | && mv vault /usr/local/bin/ \ 12 | && rm -f vault_${VAULT_VERSION}_linux_amd64.zip \ 13 | && apk del wget openssl ca-certificates 14 | 15 | EXPOSE 8200/tcp 16 | 17 | ENTRYPOINT [ "vault" ] 18 | CMD [ "server", "-dev" ] 19 | -------------------------------------------------------------------------------- /vault/README.md: -------------------------------------------------------------------------------- 1 | Run a dev server: 2 | 3 | ``` 4 | docker pull quay.io/voxxit/vault:latest 5 | docker run -d --memory-swap=-1 --name vault-dev quay.io/voxxit/vault:latest 6 | ``` 7 | 8 | To run a command: 9 | 10 | ``` 11 | alias vault='docker exec -it vault-dev vault "$@"' 12 | 13 | vault write -address=http://127.0.0.1:8200 secret/hello value=world 14 | Success! Data written to: secret/hello 15 | 16 | vault read -address=http://127.0.0.1:8200 secret/hello 17 | Key Value 18 | lease_id secret/hello/ced98ef0-18d4-a5b0-8d49-3eee5aa0dfae 19 | lease_duration 2592000 20 | lease_renewable false 21 | value world 22 | ``` 23 | --------------------------------------------------------------------------------