1/* 2 Unix SMB/CIFS implementation. 3 Wrap unix errno around tevent_req 4 Copyright (C) Volker Lendecke 2009 5 6 ** NOTE! The following LGPL license applies to the tevent_unix 7 ** helper library. This does NOT imply that all of Samba is released 8 ** under the LGPL 9 10 This library is free software; you can redistribute it and/or 11 modify it under the terms of the GNU Lesser General Public 12 License as published by the Free Software Foundation; either 13 version 3 of the License, or (at your option) any later version. 14 15 This library is distributed in the hope that it will be useful, 16 but WITHOUT ANY WARRANTY; without even the implied warranty of 17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 Library General Public License for more details. 19 20 You should have received a copy of the GNU Lesser General Public License 21 along with this program. If not, see <http://www.gnu.org/licenses/>. 22*/ 23 24#include "tevent_unix.h" 25#include "../replace/replace.h" 26 27bool tevent_req_is_unix_error(struct tevent_req *req, int *perrno) 28{ 29 enum tevent_req_state state; 30 uint64_t err; 31 32 if (!tevent_req_is_error(req, &state, &err)) { 33 return false; 34 } 35 switch (state) { 36 case TEVENT_REQ_TIMED_OUT: 37 *perrno = ETIMEDOUT; 38 break; 39 case TEVENT_REQ_NO_MEMORY: 40 *perrno = ENOMEM; 41 break; 42 case TEVENT_REQ_USER_ERROR: 43 *perrno = err; 44 break; 45 default: 46 *perrno = EINVAL; 47 break; 48 } 49 return true; 50} 51