/* Copyright (C) 2008 Andreas Baumann 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 . */ #include "port/sys.h" #include "port/sys_internal.h" #include "errors.h" #include "log/log.h" #include "log/messages.h" #include "network/network.h" #include "port/unistd.h" #include /* for fcntl and F_* flags */ wolf_error_t wolf_network_set_nonblocking( int fd ) { int flags; flags = fcntl( fd, F_GETFL, 0 /* ignored */ ); if( flags < 0 ) { return WOLF_ERR_INTERNAL; } flags |= O_NONBLOCK; flags = fcntl( fd, F_SETFL, flags ); if( flags < 0 ) { return WOLF_ERR_INTERNAL; } return WOLF_OK; }