From: Sean Hefty Date: Mon, 6 Dec 2010 19:51:38 +0000 (-0800) Subject: ibacm: write port to /var/run/ibacm.port X-Git-Tag: v1.0.4~10 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=1d7b8af5414b5560464b4696b2b933c763d2d679;p=~shefty%2Fibacm.git ibacm: write port to /var/run/ibacm.port 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 --- diff --git a/src/acm.c b/src/acm.c index e035741..d9a81d9 100644 --- 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) diff --git a/src/libacm.c b/src/libacm.c index 9d56cd2..3ce0cd0 100644 --- a/src/libacm.c +++ b/src/libacm.c @@ -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();