]> git.openfabrics.org - ~shefty/ibacm.git/commitdiff
ibacm: write port to /var/run/ibacm.port
authorSean Hefty <sean.hefty@intel.com>
Mon, 6 Dec 2010 19:51:38 +0000 (11:51 -0800)
committerSean Hefty <sean.hefty@intel.com>
Wed, 8 Dec 2010 20:40:20 +0000 (12:40 -0800)
Write used port data to /var/run/ibacm.port.  This will allow
librdmacm and other libraries and applications to find the
ibacm service when it has been moved from its default port.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
src/acm.c
src/libacm.c

index e035741ba4e7fe5ab323bfd2d4d81507b469cb9a..d9a81d92c1a624d5fd75fb617a617b0b2b1d70f9 100644 (file)
--- a/src/acm.c
+++ b/src/acm.c
@@ -1597,6 +1597,7 @@ static void CDECL_FUNC acm_retry_handler(void *context)
 
 static void acm_init_server(void)
 {
+       FILE *f;
        int i;
 
        for (i = 0; i < FD_SETSIZE - 1; i++) {
@@ -1605,6 +1606,13 @@ static void acm_init_server(void)
                client[i].sock = INVALID_SOCKET;
                atomic_init(&client[i].refcnt);
        }
+
+       if (!(f = fopen("/var/run/ibacm.port", "w"))) {
+               acm_log(0, "notice - cannot publish ibacm port number\n");
+               return;
+       }
+       fprintf(f, "%hu\n", server_port);
+       fclose(f);
 }
 
 static int acm_listen(void)
index 9d56cd29ba10ab0ac51ab1ca0bb617582a1d7259..3ce0cd0f1e4621a99e44c602744abaffd7682e70 100644 (file)
@@ -57,6 +57,16 @@ extern lock_t lock;
 static SOCKET sock = INVALID_SOCKET;
 static short server_port = 6125;
 
+static void acm_set_server_port(void)
+{
+       FILE *f;
+
+       if ((f = fopen("/var/run/ibacm.port", "r"))) {
+               fscanf(f, "%hu", (unsigned short *) &server_port);
+               fclose(f);
+       }
+}
+
 int libacm_init(void)
 {
        struct sockaddr_in addr;
@@ -66,6 +76,7 @@ int libacm_init(void)
        if (ret)
                return ret;
 
+       acm_set_server_port();
        sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
        if (sock == INVALID_SOCKET) {
                ret = socket_errno();