mirror of
https://github.com/samba-team/samba.git
synced 2025-03-27 22:50:26 +03:00
Add tevent_req_is_unix_error
This commit is contained in:
parent
dbc79381a8
commit
c50233695e
46
lib/util/tevent_unix.c
Normal file
46
lib/util/tevent_unix.c
Normal file
@ -0,0 +1,46 @@
|
||||
/*
|
||||
Unix SMB/CIFS implementation.
|
||||
Wrap unix errno around tevent_req
|
||||
Copyright (C) Volker Lendecke 2009
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "tevent_unix.h"
|
||||
#include "../replace/replace.h"
|
||||
|
||||
bool tevent_req_is_unix_error(struct tevent_req *req, int *perrno)
|
||||
{
|
||||
enum tevent_req_state state;
|
||||
uint64_t err;
|
||||
|
||||
if (!tevent_req_is_error(req, &state, &err)) {
|
||||
return false;
|
||||
}
|
||||
switch (state) {
|
||||
case TEVENT_REQ_TIMED_OUT:
|
||||
*perrno = ETIMEDOUT;
|
||||
break;
|
||||
case TEVENT_REQ_NO_MEMORY:
|
||||
*perrno = ENOMEM;
|
||||
break;
|
||||
case TEVENT_REQ_USER_ERROR:
|
||||
*perrno = err;
|
||||
break;
|
||||
default:
|
||||
*perrno = EINVAL;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
27
lib/util/tevent_unix.h
Normal file
27
lib/util/tevent_unix.h
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
Unix SMB/CIFS implementation.
|
||||
Wrap unix errno around tevent_req
|
||||
Copyright (C) Volker Lendecke 2009
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _TEVENT_UNIX_H
|
||||
#define _TEVENT_UNIX_H
|
||||
|
||||
#include "../tevent/tevent.h"
|
||||
|
||||
bool tevent_req_is_unix_error(struct tevent_req *req, int *perrno);
|
||||
|
||||
#endif
|
@ -339,7 +339,8 @@ UTIL_OBJ = ../lib/util/rbtree.o ../lib/util/signal.o ../lib/util/time.o \
|
||||
../lib/util/util.o ../lib/util/fsusage.o \
|
||||
../lib/util/params.o ../lib/util/talloc_stack.o \
|
||||
../lib/util/genrand.o ../lib/util/util_net.o \
|
||||
../lib/util/become_daemon.o ../lib/util/system.o
|
||||
../lib/util/become_daemon.o ../lib/util/system.o \
|
||||
../lib/util/tevent_unix.o
|
||||
|
||||
CRYPTO_OBJ = ../lib/crypto/crc32.o ../lib/crypto/md5.o \
|
||||
../lib/crypto/hmacmd5.o ../lib/crypto/arcfour.o \
|
||||
|
Loading…
x
Reference in New Issue
Block a user