summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-10-13 11:02:25 +0200
committerThomas Haller <thaller@redhat.com>2017-10-13 12:47:55 +0200
commit93ea7a5905fa6be0b94275a16dba6ac5a8dfc569 (patch)
tree5fd11daa9a8d02a386508214fda519708e2533c9 /src
parent373684fdc09c508982eff8c7d3fee88ffa1f9627 (diff)
downloadNetworkManager-93ea7a5905fa6be0b94275a16dba6ac5a8dfc569.tar.gz
shared: move nm_utils_fd_*() from src/ to shared/nm-utils/
The functions are general purpose and independent from NetworkManager core. Move them to "shared/nm-utils/" so they can be used independently.
Diffstat (limited to 'src')
-rw-r--r--src/nm-core-utils.c94
-rw-r--r--src/nm-core-utils.h8
2 files changed, 0 insertions, 102 deletions
diff --git a/src/nm-core-utils.c b/src/nm-core-utils.c
index 76cc8eb1bc..65687482de 100644
--- a/src/nm-core-utils.c
+++ b/src/nm-core-utils.c
@@ -26,7 +26,6 @@
#include <errno.h>
#include <fcntl.h>
#include <string.h>
-#include <poll.h>
#include <unistd.h>
#include <stdlib.h>
#include <resolv.h>
@@ -2699,99 +2698,6 @@ nm_utils_machine_id_read (void)
/*****************************************************************************/
-/* taken from systemd's fd_wait_for_event(). Note that the timeout
- * is here in nano-seconds, not micro-seconds. */
-int
-nm_utils_fd_wait_for_event (int fd, int event, gint64 timeout_ns)
-{
- struct pollfd pollfd = {
- .fd = fd,
- .events = event,
- };
- struct timespec ts, *pts;
- int r;
-
- if (timeout_ns < 0)
- pts = NULL;
- else {
- ts.tv_sec = (time_t) (timeout_ns / NM_UTILS_NS_PER_SECOND);
- ts.tv_nsec = (long int) (timeout_ns % NM_UTILS_NS_PER_SECOND);
- pts = &ts;
- }
-
- r = ppoll (&pollfd, 1, pts, NULL);
- if (r < 0)
- return -errno;
- if (r == 0)
- return 0;
- return pollfd.revents;
-}
-
-/* taken from systemd's loop_read() */
-ssize_t
-nm_utils_fd_read_loop (int fd, void *buf, size_t nbytes, bool do_poll)
-{
- uint8_t *p = buf;
- ssize_t n = 0;
-
- g_return_val_if_fail (fd >= 0, -EINVAL);
- g_return_val_if_fail (buf, -EINVAL);
-
- /* If called with nbytes == 0, let's call read() at least
- * once, to validate the operation */
-
- if (nbytes > (size_t) SSIZE_MAX)
- return -EINVAL;
-
- do {
- ssize_t k;
-
- k = read (fd, p, nbytes);
- if (k < 0) {
- if (errno == EINTR)
- continue;
-
- if (errno == EAGAIN && do_poll) {
-
- /* We knowingly ignore any return value here,
- * and expect that any error/EOF is reported
- * via read() */
-
- (void) nm_utils_fd_wait_for_event (fd, POLLIN, -1);
- continue;
- }
-
- return n > 0 ? n : -errno;
- }
-
- if (k == 0)
- return n;
-
- g_assert ((size_t) k <= nbytes);
-
- p += k;
- nbytes -= k;
- n += k;
- } while (nbytes > 0);
-
- return n;
-}
-
-/* taken from systemd's loop_read_exact() */
-int
-nm_utils_fd_read_loop_exact (int fd, void *buf, size_t nbytes, bool do_poll)
-{
- ssize_t n;
-
- n = nm_utils_fd_read_loop (fd, buf, nbytes, do_poll);
- if (n < 0)
- return (int) n;
- if ((size_t) n != nbytes)
- return -EIO;
-
- return 0;
-}
-
_nm_printf (3, 4)
static int
_get_contents_error (GError **error, int errsv, const char *format, ...)
diff --git a/src/nm-core-utils.h b/src/nm-core-utils.h
index 067220b54e..4dff0176c2 100644
--- a/src/nm-core-utils.h
+++ b/src/nm-core-utils.h
@@ -240,10 +240,6 @@ int nm_utils_cmp_connection_by_autoconnect_priority (NMConnection *a, NMConnecti
void nm_utils_log_connection_diff (NMConnection *connection, NMConnection *diff_base, guint32 level, guint64 domain, const char *name, const char *prefix);
-#define NM_UTILS_NS_PER_SECOND ((gint64) 1000000000)
-#define NM_UTILS_NS_PER_MSEC ((gint64) 1000000)
-#define NM_UTILS_NS_TO_MSEC_CEIL(nsec) (((nsec) + (NM_UTILS_NS_PER_MSEC - 1)) / NM_UTILS_NS_PER_MSEC)
-
gint64 nm_utils_get_monotonic_timestamp_ns (void);
gint64 nm_utils_get_monotonic_timestamp_us (void);
gint64 nm_utils_get_monotonic_timestamp_ms (void);
@@ -257,10 +253,6 @@ const char *nm_utils_ip4_property_path (const char *ifname, const char *property
gboolean nm_utils_is_specific_hostname (const char *name);
-int nm_utils_fd_wait_for_event (int fd, int event, gint64 timeout_ns);
-ssize_t nm_utils_fd_read_loop (int fd, void *buf, size_t nbytes, bool do_poll);
-int nm_utils_fd_read_loop_exact (int fd, void *buf, size_t nbytes, bool do_poll);
-
int nm_utils_fd_get_contents (int fd,
gsize max_length,
char **contents,