1 /* 2 * Copyright (c) 2007-2009 Marko Kreen, Skype Technologies OÜ 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 /** @file 18 * 19 * EINTR-safe I/O functions. 20 */ 21 #ifndef _USUAL_SAFEIO_H_ 22 #define _USUAL_SAFEIO_H_ 23 24 #include <usual/socket.h> 25 26 /** read */ 27 ssize_t safe_read(int fd, void *buf, size_t len) _MUSTCHECK; 28 /** write */ 29 ssize_t safe_write(int fd, const void *buf, size_t len) _MUSTCHECK; 30 /** recv */ 31 ssize_t safe_recv(int fd, void *buf, size_t len, int flags) _MUSTCHECK; 32 /** send */ 33 ssize_t safe_send(int fd, const void *buf, size_t len, int flags) _MUSTCHECK; 34 /** close */ 35 int safe_close(int fd); 36 /** recvmsg */ 37 ssize_t safe_recvmsg(int fd, struct msghdr *msg, int flags) _MUSTCHECK; 38 /** sendmsg */ 39 ssize_t safe_sendmsg(int fd, const struct msghdr *msg, int flags) _MUSTCHECK; 40 /** connect */ 41 int safe_connect(int fd, const struct sockaddr *sa, socklen_t sa_len) _MUSTCHECK; 42 /** accept */ 43 int safe_accept(int fd, struct sockaddr *sa, socklen_t *sa_len) _MUSTCHECK; 44 45 #endif 46