Mercurial > hg > nginx
view src/os/unix/ngx_process.h @ 8221:69345a26ba69 quic
Split transport and crypto parts into separate files.
New files:
src/event/ngx_event_quic_protection.h
src/event/ngx_event_quic_protection.c
The protection.h header provides interface to the crypto part of the QUIC:
2 functions to initialize corresponding secrets:
ngx_quic_set_initial_secret()
ngx_quic_set_encryption_secret()
and 2 functions to deal with packet processing:
ngx_quic_encrypt()
ngx_quic_decrypt()
Also, structures representing secrets are defined there.
All functions require SSL connection and a pool, only crypto operations
inside, no access to nginx connections or events.
Currently pool->log is used for the logging (instead of original c->log).
author | Vladimir Homutov <vl@nginx.com> |
---|---|
date | Mon, 16 Mar 2020 19:00:47 +0300 |
parents | 8b84d60ef13d |
children |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_PROCESS_H_INCLUDED_ #define _NGX_PROCESS_H_INCLUDED_ #include <ngx_setaffinity.h> #include <ngx_setproctitle.h> typedef pid_t ngx_pid_t; #define NGX_INVALID_PID -1 typedef void (*ngx_spawn_proc_pt) (ngx_cycle_t *cycle, void *data); typedef struct { ngx_pid_t pid; int status; ngx_socket_t channel[2]; ngx_spawn_proc_pt proc; void *data; char *name; unsigned respawn:1; unsigned just_spawn:1; unsigned detached:1; unsigned exiting:1; unsigned exited:1; } ngx_process_t; typedef struct { char *path; char *name; char *const *argv; char *const *envp; } ngx_exec_ctx_t; #define NGX_MAX_PROCESSES 1024 #define NGX_PROCESS_NORESPAWN -1 #define NGX_PROCESS_JUST_SPAWN -2 #define NGX_PROCESS_RESPAWN -3 #define NGX_PROCESS_JUST_RESPAWN -4 #define NGX_PROCESS_DETACHED -5 #define ngx_getpid getpid #define ngx_getppid getppid #ifndef ngx_log_pid #define ngx_log_pid ngx_pid #endif ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle, ngx_spawn_proc_pt proc, void *data, char *name, ngx_int_t respawn); ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx); ngx_int_t ngx_init_signals(ngx_log_t *log); void ngx_debug_point(void); #if (NGX_HAVE_SCHED_YIELD) #define ngx_sched_yield() sched_yield() #else #define ngx_sched_yield() usleep(1) #endif extern int ngx_argc; extern char **ngx_argv; extern char **ngx_os_argv; extern ngx_pid_t ngx_pid; extern ngx_pid_t ngx_parent; extern ngx_socket_t ngx_channel; extern ngx_int_t ngx_process_slot; extern ngx_int_t ngx_last_process; extern ngx_process_t ngx_processes[NGX_MAX_PROCESSES]; #endif /* _NGX_PROCESS_H_INCLUDED_ */