bearch: Disallow passing Projs to get_irn_ops().
[libfirm] / ir / lpp / lpp_net.c
index de91540..2e3df89 100644 (file)
@@ -1,13 +1,14 @@
+/*
+ * This file is part of libFirm.
+ * Copyright (C) 2012 University of Karlsruhe.
+ */
+
 /**
- * @file   lpp_net.c
- * @date   19.07.2005
- * @author Sebastian Hack
- *
- * A client for an lpp solving server.
- *
- * Copyright (C) 2005 Universitaet Karlsruhe
- * Released under the GPL
+ * @file
+ * @brief   A client for an lpp solving server.
+ * @author  Sebastian Hack
  */
+#include "config.h"
 
 #ifdef _WIN32
 #include <winsock.h>
@@ -23,7 +24,6 @@
 #include <netinet/in.h>
 #include <arpa/inet.h>
 #include <netdb.h>
-
 #include <unistd.h>
 
 /* solaris fix */
 #include "lpp_net.h"
 #include "lpp_t.h"
 #include "lpp_comm.h"
+#include "xmalloc.h"
 
 #ifdef _WIN32
-static int winsock_init(void) {
+static int winsock_init(void)
+{
        WORD wVersionRequested;
        WSADATA wsaData;
        int err;
@@ -80,31 +82,31 @@ static int winsock_init(void) {
 
 static int connect_tcp(const char *host, uint16_t port)
 {
-  struct hostent     *phe;
-  struct protoent    *ppe;
-  struct sockaddr_in sin;
-  int s;
+       struct hostent     *phe;
+       struct protoent    *ppe;
+       struct sockaddr_in sin;
+       int s;
 
 #ifdef _WIN32
-  winsock_init();
+       winsock_init();
 #endif
 
-  memset(&sin, 0, sizeof(sin));
-  sin.sin_family = AF_INET;
-  sin.sin_port   = htons(port);
+       memset(&sin, 0, sizeof(sin));
+       sin.sin_family = AF_INET;
+       sin.sin_port   = htons(port);
 
-  if ((phe = gethostbyname(host)))
-    memcpy(&sin.sin_addr, phe->h_addr, phe->h_length);
-  else if((sin.sin_addr.s_addr = inet_addr(host)) == INADDR_NONE) {
-    lpp_print_err("cannot get host entry for %s", host);
-    return -1;
-  }
+       if ((phe = gethostbyname(host)))
+               memcpy(&sin.sin_addr, phe->h_addr_list[0], phe->h_length);
+       else if((sin.sin_addr.s_addr = inet_addr(host)) == INADDR_NONE) {
+               lpp_print_err("cannot get host entry for %s", host);
+               return -1;
+       }
 
-  ppe = getprotobyname("tcp");
-  ERRNO_CHECK_RETURN(s = socket(PF_INET, SOCK_STREAM, ppe->p_proto), <, 0, -1);
-  ERRNO_CHECK_RETURN(connect(s, (struct sockaddr *) &sin, sizeof(sin)), <, 0, -1);
+       ppe = getprotobyname("tcp");
+       ERRNO_CHECK_RETURN(s = socket(PF_INET, SOCK_STREAM, ppe->p_proto), <, 0, -1);
+       ERRNO_CHECK_RETURN(connect(s, (struct sockaddr *) &sin, sizeof(sin)), <, 0, -1);
 
-  return s;
+       return s;
 }
 
 char **lpp_get_solvers(const char *host)
@@ -121,7 +123,7 @@ char **lpp_get_solvers(const char *host)
        lpp_writel(comm, LPP_CMD_SOLVERS);
        lpp_flush(comm);
        n = lpp_readl(comm);
-       res = malloc((n + 1) * sizeof(res[0]));
+       res = XMALLOCN(char*, n+1);
        res[n] = NULL;
 
        if(n > 0) {
@@ -172,20 +174,15 @@ void lpp_solve_net(lpp_t *lpp, const char *host, const char *solver)
        lpp_writes(comm, solver);
        lpp_flush(comm);
 
-#if 0
-       ERR_CHECK_RETURN_VOID(lpp_ack(fd, sizeof(buf), buf), == 0,
-               ("could not set solver: %s", solver));
-#endif
-
        t_send = ir_timer_new();
        t_recv = ir_timer_new();
 
-       ir_timer_push(t_send);
+       ir_timer_start(t_send);
        lpp_writel(comm, LPP_CMD_PROBLEM);
        lpp_serialize(comm, lpp, 1);
        lpp_serialize_values(comm, lpp, lpp_value_start);
        lpp_flush(comm);
-       ir_timer_pop();
+       ir_timer_stop(t_send);
        lpp->send_time = ir_timer_elapsed_usec(t_send);
 
        ready = 0;
@@ -196,7 +193,7 @@ void lpp_solve_net(lpp_t *lpp, const char *host, const char *solver)
                                ir_timer_push(t_recv);
                                lpp_deserialize_stats(comm, lpp);
                                lpp_deserialize_values(comm, lpp, lpp_value_solution);
-                               ir_timer_pop();
+                               ir_timer_stop(t_recv);
                                lpp->recv_time = ir_timer_elapsed_usec(t_recv);
                                ready = 1;
                                break;