API modified to Connect Remote Host
diff --git a/nlsr.c b/nlsr.c
index 06cc75f..d1f98e0 100644
--- a/nlsr.c
+++ b/nlsr.c
@@ -12,6 +12,9 @@
 #include <sys/un.h>
 #include <fcntl.h>
 #include <sys/ioctl.h>
+#include <netinet/in.h>
+#include <netdb.h>
+#include <arpa/inet.h>
 
 #ifdef HAVE_CONFIG_H
 #include <config.h>
@@ -54,6 +57,7 @@
 {
     { "daemon",      no_argument,       NULL, 'd'},
     { "config_file", required_argument, NULL, 'f'},
+    { "api_port",    required_argument, NULL, 'p'},
     { "help",        no_argument,       NULL, 'h'},
     { 0 }
 };
@@ -66,6 +70,7 @@
 	NDN routing....\n\
 	-d, --daemon        Run in daemon mode\n\
 	-f, --config_file   Specify configuration file name\n\
+	-p, --api_port      port where api client will connect\n\
 	-h, --help          Display this help message\n", progname);
 
     exit(1);
@@ -735,7 +740,7 @@
 	int client_sockfd;
 	char recv_buffer[1024];
 	bzero(recv_buffer,1024);
-	struct sockaddr_un client_address;
+	struct sockaddr_in client_address;
 
 	testfds=nlsr->readfds;
 	result = select(FD_SETSIZE, &testfds, NULL,NULL, &timeout);
@@ -820,7 +825,9 @@
 	hashtb_end(e);
 	hashtb_destroy(&nlsr->npt);
 
-	
+
+	close(nlsr->nlsr_api_server_sock_fd);	
+
 	ccn_schedule_destroy(&nlsr->sched);
 	ccn_destroy(&nlsr->ccn);
 
@@ -842,16 +849,21 @@
 {
 	int server_sockfd;
 	int server_len;
-	struct sockaddr_un server_address;
+	struct sockaddr_in server_address;
 	
-	unlink("/tmp/nlsr_api_server_socket");
-	server_sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
+	//unlink("/tmp/nlsr_api_server_socket");
+	server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
 
 	int flags = fcntl(server_sockfd, F_GETFL, 0);
 	fcntl(server_sockfd, F_SETFL, O_NONBLOCK|flags);
 
-	server_address.sun_family = AF_UNIX;
-	strcpy(server_address.sun_path, "/tmp/nlsr_api_server_socket");
+	//server_address.sun_family = AF_UNIX;
+	//strcpy(server_address.sun_path, "/tmp/nlsr_api_server_socket");
+
+	server_address.sin_family = AF_INET;
+	server_address.sin_addr.s_addr = inet_addr("127.0.0.1");
+	server_address.sin_port = nlsr->api_port;
+
 	server_len = sizeof(server_address);
 	bind(server_sockfd, (struct sockaddr *)&server_address, server_len);
 	listen(server_sockfd, 100);
@@ -933,6 +945,8 @@
 	nlsr->multi_path_face_num=MULTI_PATH_FACE_NUM;
 	nlsr->semaphor=NLSR_UNLOCKED;
 
+	nlsr->api_port=API_PORT;
+
 	return 0;
 }
 
@@ -943,10 +957,11 @@
     	int res, ret;
     	char *config_file;
 	int daemon_mode=0;
+	int port=0;
 
 	
 
-	while ((res = getopt_long(argc, argv, "df:h", longopts, 0)) != -1) 
+	while ((res = getopt_long(argc, argv, "df:p:h", longopts, 0)) != -1) 
 	{
         	switch (res) 
 		{
@@ -956,6 +971,9 @@
 			case 'f':
 				config_file = optarg;
 				break;
+			case 'p':
+				port = atoi(optarg);
+				break;
 			case 'h':
 			default:
 				usage(argv[0]);
@@ -964,8 +982,11 @@
 
 	ret=init_nlsr();	
     	ON_ERROR_EXIT(ret);
+
+	if ( port !=0 )
+		nlsr->api_port=port;
+
 	readConfigFile(config_file);
-	
 	if ( daemon_mode == 1 )
 	{
 		daemonize_nlsr();
diff --git a/nlsr.h b/nlsr.h
index 69e82dd..a53cc2b 100644
--- a/nlsr.h
+++ b/nlsr.h
@@ -16,6 +16,8 @@
 #define NAME_LSA_VALID 1
 #define NAME_LSA_INVALID 0
 
+#define API_PORT 9696
+
 
 struct name_prefix
 {
@@ -86,6 +88,7 @@
 
 	int nlsr_api_server_sock_fd;
 	fd_set readfds;
+	int api_port;
 	
 };
 
diff --git a/nlsrc.c b/nlsrc.c
index 20e199f..44ce2ad 100755
--- a/nlsrc.c
+++ b/nlsrc.c
@@ -6,13 +6,24 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
+#include <netinet/in.h>
+#include <netdb.h>
+#include <arpa/inet.h>
+#include <getopt.h>
+
+struct option longopts[] =
+{
+    { "server_ip",    required_argument, NULL, 's'},
+    { "server_port",    required_argument, NULL, 'p'},
+    { 0 }
+};
 
 static int 
 usage(char *progname)
 {
     printf("Usage: %s [OPTIONS...]\n\
 	NLSR Api client....\n\
-	nlsrc add|del name|neighbor name_prefix [faceX] \n\
+	nlsrc -s server_ip -p server_port add|del name|neighbor name_prefix [faceX] \n\
 	add/del, -- adding/deleting operation\n\
 	name/neighbor, -- Operation for name/neighbor\n\
 	name_name, -- Name prefix for name/neighbor\n\
@@ -25,35 +36,54 @@
 {
 	int sockfd;
 	int len;
-	struct sockaddr_un address;
+	struct sockaddr_in address;
 	int result;
 	int byteSend;
-	
+	char *server_address, *server_port;	
+
 	int command_len=0;
 	int i;
 
-	if (argc < 4 )
+	if (argc < 8 )
 		usage(argv[0]);
-	if ( strcmp(argv[2],"neighbor") == 0 && argc <5 )
+	if ( strcmp(argv[6],"neighbor") == 0 && argc <9 )
 		usage(argv[0]);
 
+	while ((result = getopt_long(argc, argv, "s:p:", longopts, 0)) != -1) 
+	{
+        	switch (result) 
+		{
+			case 's':
+				server_address = optarg;
+				break;
+			case 'p':
+				server_port = optarg;
+				break;
+		}
+    	}	
+
+
 	char recv_buffer[1024];
 	bzero(recv_buffer,1024);
 
-	for(i=1;i<argc;i++)
+	for(i=5;i<argc;i++)
 		command_len+=(strlen(argv[i])+1);
 	char *command=malloc(command_len);
 	memset(command,command_len+1,0);
-	for(i=1;i<argc;i++)
+	for(i=5;i<argc;i++)
 	{
 		memcpy(command+strlen(command),argv[i],strlen(argv[i]));
 		if ( i < argc-1 )
 			memcpy(command+strlen(command)," ",1);	
 	}
 
-	sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
-	address.sun_family = AF_UNIX;
-	strcpy(address.sun_path, "/tmp/nlsr_api_server_socket");
+	sockfd = socket(AF_INET, SOCK_STREAM, 0);
+	//address.sun_family = AF_UNIX;
+	//strcpy(address.sun_path, "/tmp/nlsr_api_server_socket");
+	address.sin_family = AF_INET;
+	address.sin_addr.s_addr = inet_addr(server_address);
+	address.sin_port = atoi(server_port);
+
 	len = sizeof(address);
 	result = connect(sockfd, (struct sockaddr *)&address, len);
 	if(result == -1)