socket-util: Define LINUX macro at top of file.
authorBen Pfaff <blp@nicira.com>
Tue, 9 Nov 2010 23:36:48 +0000 (15:36 -0800)
committerBen Pfaff <blp@nicira.com>
Wed, 10 Nov 2010 18:56:01 +0000 (10:56 -0800)
This will be used further in the following commit.

lib/socket-util.c

index 573e28f1aca75bde9d80138a2451b814d303a936..8d291edb4c2e56e42a6e99a2aa6898379fb92e5e 100644 (file)
 
 VLOG_DEFINE_THIS_MODULE(socket_util);
 
+/* #ifdefs make it a pain to maintain code: you have to try to build both ways.
+ * Thus, this file compiles all of the code regardless of the target, by
+ * writing "if (LINUX)" instead of "#ifdef __linux__". */
+#ifdef __linux__
+#define LINUX 1
+#else
+#define LINUX 0
+#endif
+
 /* Sets 'fd' to non-blocking mode.  Returns 0 if successful, otherwise a
  * positive errno value. */
 int
@@ -171,12 +180,7 @@ drain_rcvbuf(int fd)
          *
          * On other Unix-like OSes, MSG_TRUNC has no effect in the flags
          * argument. */
-#ifdef __linux__
-#define BUFFER_SIZE 1
-#else
-#define BUFFER_SIZE 2048
-#endif
-        char buffer[BUFFER_SIZE];
+        char buffer[LINUX ? 1 : 2048];
         ssize_t n_bytes = recv(fd, buffer, sizeof buffer,
                                MSG_TRUNC | MSG_DONTWAIT);
         if (n_bytes <= 0 || n_bytes >= rcvbuf) {