X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fsocket-util.h;h=d5b44b01cb68d6832e62ee9ef37631fc591d8e94;hb=bdd534291ff72077390f7b1745c4443ad3833d99;hp=a0e7970acaa51c1a7eefd0ab3bcf0ac65e264a7b;hpb=8706009e555bb9fa04a5679e4be2c7c67506802b;p=sliver-openvswitch.git diff --git a/lib/socket-util.h b/lib/socket-util.h index a0e7970ac..d5b44b01c 100644 --- a/lib/socket-util.h +++ b/lib/socket-util.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc. + * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,10 +23,12 @@ #include #include #include "openvswitch/types.h" +#include #include int set_nonblocking(int fd); void xset_nonblocking(int fd); +int set_dscp(int fd, uint8_t dscp); int get_max_fds(void); @@ -35,7 +37,6 @@ int lookup_ipv6(const char *host_name, struct in6_addr *address); int lookup_hostname(const char *host_name, struct in_addr *); -int get_socket_error(int sock); int get_socket_rcvbuf(int sock); int check_connection_completion(int fd); int drain_rcvbuf(int fd); @@ -63,6 +64,7 @@ int fsync_parent_dir(const char *file_name); int get_mtime(const char *file_name, struct timespec *mtime); void xpipe(int fds[2]); +void xpipe_nonblocking(int fds[2]); char *describe_fd(int fd); @@ -71,28 +73,10 @@ char *describe_fd(int fd); * in is used. */ #define DSCP_DEFAULT (IPTOS_PREC_INTERNETCONTROL >> 2) -/* Maximum number of fds that we support sending or receiving at one time - * across a Unix domain socket. */ -#define SOUTIL_MAX_FDS 8 - -/* Iovecs. */ -size_t iovec_len(const struct iovec *iovs, size_t n_iovs); -bool iovec_is_empty(const struct iovec *iovs, size_t n_iovs); - -/* Functions particularly useful for Unix domain sockets. */ -void xsocketpair(int domain, int type, int protocol, int fds[2]); -int send_iovec_and_fds(int sock, - const struct iovec *iovs, size_t n_iovs, - const int fds[], size_t n_fds); -int send_iovec_and_fds_fully(int sock, - const struct iovec *iovs, size_t n_iovs, - const int fds[], size_t n_fds, - size_t skip_bytes, size_t *bytes_sent); -int send_iovec_and_fds_fully_block(int sock, - const struct iovec *iovs, size_t n_iovs, - const int fds[], size_t n_fds); -int recv_data_and_fds(int sock, - void *data, size_t size, - int fds[SOUTIL_MAX_FDS], size_t *n_fdsp); +/* Helpers for calling ioctl() on an AF_INET socket. */ +struct ifreq; +int af_inet_ioctl(unsigned long int command, const void *arg); +int af_inet_ifreq_ioctl(const char *name, struct ifreq *, + unsigned long int cmd, const char *cmd_name); #endif /* socket-util.h */