+Fri Feb 13 19:04:57 IST 2009 Mark McLoughlin <markmc@redhat.com>
+
+ * src/libvirt_private.syms, src/util.[ch]: add
+ virFileWriteStr()
+
+ * src/network_driver.c: use it here
+
Fri Feb 13 19:04:45 IST 2009 Mark McLoughlin <markmc@redhat.com>
* src/xml.c: fix some error strings
# util.h
virFileReadAll;
+virFileWriteStr;
virStrToLong_i;
virStrToLong_ll;
virStrToLong_ull;
iptablesSaveRules(driver->iptables);
}
-/* Enable IP Forwarding.
- Return 0 for success, nonzero for failure.
- Be careful to preserve any errno value upon failure. */
+/* Enable IP Forwarding. Return 0 for success, nonzero for failure. */
static int
networkEnableIpForwarding(void)
{
-#define PROC_IP_FORWARD "/proc/sys/net/ipv4/ip_forward"
-
- int fd;
-
- if ((fd = open(PROC_IP_FORWARD, O_WRONLY|O_TRUNC)) == -1)
- return 0;
-
- if (safewrite(fd, "1\n", 2) < 0) {
- int saved_errno = errno;
- close (fd);
- errno = saved_errno;
- return 0;
- }
-
- /* Use errno from failed close only if there was no write error. */
- if (close (fd) != 0)
- return 0;
-
- return 1;
-
-#undef PROC_IP_FORWARD
+ return virFileWriteStr("/proc/sys/net/ipv4/ip_forward", "1\n");
}
static int networkStartNetworkDaemon(virConnectPtr conn,
return len;
}
+/* Truncate @path and write @str to it.
+ Return 0 for success, nonzero for failure.
+ Be careful to preserve any errno value upon failure. */
+int virFileWriteStr(const char *path, const char *str)
+{
+ int fd;
+
+ if ((fd = open(path, O_WRONLY|O_TRUNC)) == -1)
+ return -1;
+
+ if (safewrite(fd, str, strlen(str)) < 0) {
+ int saved_errno = errno;
+ close (fd);
+ errno = saved_errno;
+ return -1;
+ }
+
+ /* Use errno from failed close only if there was no write error. */
+ if (close (fd) != 0)
+ return -1;
+
+ return 0;
+}
+
int virFileMatchesNameSuffix(const char *file,
const char *name,
const char *suffix)
int virFileReadAll(const char *path, int maxlen, char **buf);
+int virFileWriteStr(const char *path, const char *str);
+
int virFileMatchesNameSuffix(const char *file,
const char *name,
const char *suffix);