VOL-2854: Add command line option to specify interface name in openolt on which gRPC server will run
          - OLT management interface or inband interface can be given as command line input and gRPC
            server will listen on given interface's IP address
          - If no interface name given gRPC server will listen on "0.0.0.0:9191"

Change-Id: I506fabf7ae81bf4d4ed8f6199107801daff62941
diff --git a/agent/common/server.cc b/agent/common/server.cc
index e33938b..13017a7 100644
--- a/agent/common/server.cc
+++ b/agent/common/server.cc
@@ -309,23 +309,32 @@
     };
 };
 
-void RunServer() {
-  OpenoltService service;
-  std::string server_address(serverPort);
-  ServerBuilder builder;
+void RunServer(int argc, char** argv) {
+    std::string ipAddress = "0.0.0.0";
 
-  builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());
-  builder.RegisterService(&service);
+    for (int i = 1; i < argc; ++i) {
+        if(strcmp(argv[i-1], "--interface") == 0 || (strcmp(argv[i-1], "--intf") == 0)) {
+            ipAddress = get_ip_address(argv[i]);
+            break;
+        }
+    }
 
-  std::unique_ptr<Server> server(builder.BuildAndStart());
+    serverPort = ipAddress.append(":9191").c_str();
+    OpenoltService service;
+    std::string server_address(serverPort);
+    ServerBuilder builder;
 
-  time_t now;
-  time(&now);
-  signature = (int)now;
+    builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());
+    builder.RegisterService(&service);
 
-  std::cout << "Server listening on " << server_address
-  << ", connection signature : " << signature << std::endl;
+    std::unique_ptr<Server> server(builder.BuildAndStart());
 
+    time_t now;
+    time(&now);
+    signature = (int)now;
 
-  server->Wait();
+    std::cout << "Server listening on " << server_address
+    << ", connection signature : " << signature << std::endl;
+
+    server->Wait();
 }