Mercurial > hg > nginx-quic
view src/os/unix/rfork_thread.S @ 5425:1356a3b96924
SSL: added ability to set keys used for Session Tickets (RFC5077).
In order to support key rollover, ssl_session_ticket_key can be defined
multiple times. The first key will be used to issue and resume Session
Tickets, while the rest will be used only to resume them.
ssl_session_ticket_key session_tickets/current.key;
ssl_session_ticket_key session_tickets/prev-1h.key;
ssl_session_ticket_key session_tickets/prev-2h.key;
Please note that nginx supports Session Tickets even without explicit
configuration of the keys and this feature should be only used in setups
where SSL traffic is distributed across multiple nginx servers.
Signed-off-by: Piotr Sikora <piotr@cloudflare.com>
author | Piotr Sikora <piotr@cloudflare.com> |
---|---|
date | Fri, 11 Oct 2013 16:05:24 -0700 |
parents | d620f497c50f |
children |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #include <sys/syscall.h> #include <machine/asm.h> /* * rfork_thread(3) - rfork_thread(flags, stack, func, arg); */ #define KERNCALL int $0x80 ENTRY(rfork_thread) push %ebp mov %esp, %ebp push %esi mov 12(%ebp), %esi # the thread stack address sub $4, %esi mov 20(%ebp), %eax # the thread argument mov %eax, (%esi) sub $4, %esi mov 16(%ebp), %eax # the thread start address mov %eax, (%esi) push 8(%ebp) # rfork(2) flags push $0 mov $SYS_rfork, %eax KERNCALL jc error cmp $0, %edx jne child parent: add $8, %esp pop %esi leave ret child: mov %esi, %esp pop %eax call *%eax # call a thread start address ... add $4, %esp push %eax push $0 mov $SYS_exit, %eax # ... and exit(2) after a thread would return KERNCALL error: add $8, %esp pop %esi leave PIC_PROLOGUE /* libc's cerror: jmp PIC_PLT(HIDENAME(cerror)) */ push %eax call PIC_PLT(CNAME(__error)) pop %ecx PIC_EPILOGUE mov %ecx, (%eax) mov $-1, %eax mov $-1, %edx ret