From ea0446f90218c7c4d7f0296265039036a9fb2740 Mon Sep 17 00:00:00 2001 From: Bryan Worth Date: Fri, 9 Dec 2005 16:43:53 +0000 Subject: [PATCH] 2005-12-09 Bryan Worth * src/ttt-curses-client.c: added error checking to ttt_create_client call. Added ability to escape server commands by prepending with /. Added ability so override port number with port=xxxx entry in ~/.ttt/client.conf. --- ChangeLog | 6 ++++++ src/ttt-curses-client.c | 38 +++++++++++++++++++++++++++----------- 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7fb5319..30093c4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-12-09 Bryan Worth + * src/ttt-curses-client.c: added error checking to ttt_create_client + call. Added ability to escape server commands by prepending with "/". + Added ability so override port number with port=xxxx entry in + ~/.ttt/client.conf. + 2005-12-08 Carl Worth * src/ttt-server.c (main): When detached dup stdout to stderr so diff --git a/src/ttt-curses-client.c b/src/ttt-curses-client.c index 75f6418..25d724a 100644 --- a/src/ttt-curses-client.c +++ b/src/ttt-curses-client.c @@ -120,7 +120,7 @@ main (int argc, char **argv) int _socket; char buffer[BUFSIZ]; char inplin[1024]; - + ttt_status_t status; static WINDOW *mainwnd; static WINDOW *dispwin; @@ -140,7 +140,7 @@ main (int argc, char **argv) refresh (); dispwin = newwin (dlines - 5, cols - 2, 0, 0); statwin = newwin (4, cols - 2, dlines -3, 0); - inpwin = newwin (1, cols - 2, dlines, 0); + inpwin = newwin (2, cols - 2, dlines, 0); keypad (mainwnd, TRUE); // enable keyboard mapping keypad (inpwin, TRUE); // enable keyboard mapping nodelay (inpwin, TRUE); @@ -177,12 +177,6 @@ main (int argc, char **argv) wrefresh (dispwin); wrefresh (inpwin); - - ttt_socket_create_client (host, port, &_socket); - sockin=fdopen(_socket,"r"); - sockout=fdopen(_socket,"w"); - - xasprintf(&confpath,"%s/.ttt/",getenv("HOME")); xasprintf(&conffile,"%s/.ttt/client.conf",getenv("HOME")); username="user"; @@ -200,17 +194,30 @@ main (int argc, char **argv) } if ((conf_file = fopen(conffile,"r")) != NULL) { while (fgets(buffer,BUFSIZ,conf_file)) { + if (buffer[strlen(buffer)-1] == 10) buffer[strlen(buffer)-1] = '\0'; if (strncmp(buffer,"username=",9) == 0) { xasprintf (&username, "%s", &buffer[9]); - break; + } + if (strncmp(buffer,"port=",5) == 0) { + xasprintf (&port, "%s",&buffer[5]); } } fclose(conf_file); } + status=ttt_socket_create_client (host, port, &_socket); + if (status) { + endwin(); + printf("Unable to connect to server! Connection status: %d\n",status); + exit(1); + } + sockin=fdopen(_socket,"r"); + sockout=fdopen(_socket,"w"); + + fprintf(sockout, "HELO %s\r\n",username); fflush(sockout); - + if (fgets(buffer,BUFSIZ,sockin)) { if ((strncmp(buffer,"NOTICE MESSAGE ",15) == 0) && (strlen(buffer) > 15)) { wprint (dispwin, buffer); @@ -221,6 +228,10 @@ main (int argc, char **argv) wrefresh (dispwin); wrefresh (statwin); } + + fprintf(sockout, "WHO \r\n"); + fflush(sockout); + inplin[0]='\0'; while (1) { curs_set (1); @@ -270,7 +281,12 @@ main (int argc, char **argv) } if (((int) c == 13) || ((int) c == 10)) { curs_set (0); - fprintf(sockout,"MESSAGE \"%s\"\r\n",inplin); + if (inplin[0] == '/') { + fprintf(sockout,"%s\r\n",&inplin[1]); + } + else { + fprintf(sockout,"MESSAGE \"%s\"\r\n",inplin); + } fflush(sockout); inplin[0] = '\0'; if (fgets(buffer,BUFSIZ,sockin)) { -- 2.43.0