11182St.nateldemoura@f5.com /* 21182St.nateldemoura@f5.com * Copyright (C) Igor Sysoev 31182St.nateldemoura@f5.com * Copyright (C) NGINX, Inc. 41182St.nateldemoura@f5.com */ 51182St.nateldemoura@f5.com 61488St.nateldemoura@f5.com #ifndef _NXT_CLONE_H_INCLUDED_ 71488St.nateldemoura@f5.com #define _NXT_CLONE_H_INCLUDED_ 81182St.nateldemoura@f5.com 91182St.nateldemoura@f5.com 101306St.nateldemoura@f5.com #if (NXT_HAVE_CLONE_NEWUSER) 111306St.nateldemoura@f5.com 122628Sa.clayton@nginx.com typedef int64_t nxt_cred_t; 132628Sa.clayton@nginx.com 141306St.nateldemoura@f5.com typedef struct { 15*2629Sa.clayton@nginx.com nxt_cred_t container; 16*2629Sa.clayton@nginx.com nxt_cred_t host; 17*2629Sa.clayton@nginx.com nxt_cred_t size; 181306St.nateldemoura@f5.com } nxt_clone_map_entry_t; 191306St.nateldemoura@f5.com 201306St.nateldemoura@f5.com typedef struct { 211306St.nateldemoura@f5.com nxt_uint_t size; 221306St.nateldemoura@f5.com nxt_clone_map_entry_t *map; 231306St.nateldemoura@f5.com } nxt_clone_credential_map_t; 241306St.nateldemoura@f5.com 251306St.nateldemoura@f5.com #endif 261306St.nateldemoura@f5.com 271306St.nateldemoura@f5.com typedef struct { 281306St.nateldemoura@f5.com nxt_int_t flags; 291182St.nateldemoura@f5.com 301182St.nateldemoura@f5.com #if (NXT_HAVE_CLONE_NEWUSER) 311306St.nateldemoura@f5.com nxt_clone_credential_map_t uidmap; 321306St.nateldemoura@f5.com nxt_clone_credential_map_t gidmap; 331306St.nateldemoura@f5.com #endif 341306St.nateldemoura@f5.com 351306St.nateldemoura@f5.com } nxt_clone_t; 361306St.nateldemoura@f5.com 371306St.nateldemoura@f5.com 381488St.nateldemoura@f5.com #define nxt_is_clone_flag_set(flags, test) \ 391488St.nateldemoura@f5.com ((flags & CLONE_##test) == CLONE_##test) 401306St.nateldemoura@f5.com 411488St.nateldemoura@f5.com 421488St.nateldemoura@f5.com #if (NXT_HAVE_CLONE_NEWUSER) 431306St.nateldemoura@f5.com 441306St.nateldemoura@f5.com NXT_EXPORT nxt_int_t nxt_clone_credential_map(nxt_task_t *task, pid_t pid, 451306St.nateldemoura@f5.com nxt_credential_t *creds, nxt_clone_t *clone); 461306St.nateldemoura@f5.com NXT_EXPORT nxt_int_t nxt_clone_vldt_credential_uidmap(nxt_task_t *task, 471306St.nateldemoura@f5.com nxt_clone_credential_map_t *map, nxt_credential_t *creds); 481306St.nateldemoura@f5.com NXT_EXPORT nxt_int_t nxt_clone_vldt_credential_gidmap(nxt_task_t *task, 491306St.nateldemoura@f5.com nxt_clone_credential_map_t *map, nxt_credential_t *creds); 501306St.nateldemoura@f5.com 511182St.nateldemoura@f5.com #endif 521182St.nateldemoura@f5.com 531488St.nateldemoura@f5.com 541488St.nateldemoura@f5.com #endif /* _NXT_CLONE_H_INCLUDED_ */ 55