| 1 | /************************************************* |
| 2 | * Exim - an Internet mail transport agent * |
| 3 | *************************************************/ |
| 4 | |
| 5 | /* Copyright (c) University of Cambridge 1995 - 2009 */ |
| 6 | /* See the file NOTICE for conditions of use and distribution. */ |
| 7 | |
| 8 | #include "../exim.h" |
| 9 | #include "rf_functions.h" |
| 10 | |
| 11 | |
| 12 | /************************************************* |
| 13 | * Set uid/gid from block into address * |
| 14 | *************************************************/ |
| 15 | |
| 16 | /* This function copies any set uid or gid from a ugid block into an |
| 17 | address. |
| 18 | |
| 19 | Arguments: |
| 20 | addr the address |
| 21 | ugid the ugid block |
| 22 | |
| 23 | Returns: nothing |
| 24 | */ |
| 25 | |
| 26 | void |
| 27 | rf_set_ugid(address_item *addr, ugid_block *ugid) |
| 28 | { |
| 29 | if (ugid->uid_set) |
| 30 | { |
| 31 | addr->uid = ugid->uid; |
| 32 | setflag(addr, af_uid_set); |
| 33 | } |
| 34 | |
| 35 | if (ugid->gid_set) |
| 36 | { |
| 37 | addr->gid = ugid->gid; |
| 38 | setflag(addr, af_gid_set); |
| 39 | } |
| 40 | |
| 41 | if (ugid->initgroups) setflag(addr, af_initgroups); |
| 42 | } |
| 43 | |
| 44 | /* End of rf_set_ugid.c */ |