comparison nnchat.c @ 15:50d8396e7417

Move things around a bit.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 24 Mar 2008 09:35:02 +0000
parents 86fe5f0d1a85
children e80072e26178
comparison
equal deleted inserted replaced
14:6badfa3eb10e 15:50d8396e7417
122 122
123 return TRUE; 123 return TRUE;
124 } 124 }
125 125
126 126
127 int openConnection(struct in_addr *addr, int port)
128 {
129 struct sockaddr_in tmpAddr;
130 int sock = -1;
131
132 tmpAddr.sin_family = AF_INET;
133 tmpAddr.sin_port = htons(port);
134 tmpAddr.sin_addr = *addr;
135
136 THMSG(1, "Connecting to %s:%d ...\n",
137 inet_ntoa(tmpAddr.sin_addr), port);
138
139 if ((sock = socket(PF_INET, SOCK_STREAM, 0)) == -1) {
140 THERR("Could not open socket: %s\n", strerror(errno));
141 return -2;
142 }
143
144 THMSG(2, "Using socket %d.\n", sock);
145
146 if (connect(sock, (struct sockaddr *) &tmpAddr, sizeof(tmpAddr)) == -1) {
147 THERR("Could not connect: %s\n", strerror(errno));
148 return -5;
149 }
150
151 return sock;
152 }
153
154
155 void closeConnection(int sock)
156 {
157 if (sock >= 0) {
158 #ifdef __WIN32
159 closesocket(sock);
160 #else
161 close(sock);
162 #endif
163 }
164 }
165
166
127 BOOL sendToSocket(int sock, char *buf, const size_t bufLen) 167 BOOL sendToSocket(int sock, char *buf, const size_t bufLen)
128 { 168 {
129 size_t bufLeft = bufLen; 169 size_t bufLeft = bufLen;
130 char *bufPtr = buf; 170 char *bufPtr = buf;
131 171
234 PUSHCHAR(0); 274 PUSHCHAR(0);
235 275
236 return result; 276 return result;
237 } 277 }
238 278
279
239 int getxdigit(int c, int shift) 280 int getxdigit(int c, int shift)
240 { 281 {
241 int i; 282 int i;
242 283
243 if (c >= 'A' && c <= 'F') 284 if (c >= 'A' && c <= 'F')
249 else 290 else
250 return -1; 291 return -1;
251 292
252 return i << shift; 293 return i << shift;
253 } 294 }
295
254 296
255 char *decodeStr1(char *str) 297 char *decodeStr1(char *str)
256 { 298 {
257 char *result, *s = str; 299 char *result, *s = str;
258 size_t resSize, resPos = 0; 300 size_t resSize, resPos = 0;
332 374
333 375
334 html_entity_t HTMLEntities[] = { 376 html_entity_t HTMLEntities[] = {
335 { '<', "&lt;" }, 377 { '<', "&lt;" },
336 { '>', "&gt;" }, 378 { '>', "&gt;" },
337 /*
338 { '&', "&amp;" },
339 { 'ä', "&auml;" },
340 { 'ö', "&ouml;" },
341 { 'Ä', "&Auml;" },
342 { 'Ö', "&Ouml;" },
343 */
344 }; 379 };
345 380
346 const int numHTMLEntities = (sizeof(HTMLEntities) / sizeof(html_entity_t)); 381 const int numHTMLEntities = (sizeof(HTMLEntities) / sizeof(html_entity_t));
347 382
348 383
562 597
563 return 1; 598 return 1;
564 } 599 }
565 600
566 601
567 int handleInput(int sock, char *buf, size_t bufLen) 602 int handleUserInput(int sock, char *buf, size_t bufLen)
568 { 603 {
569 char *tmpStr, *tmpStr2; 604 char *tmpStr, *tmpStr2;
570 BOOL result; 605 BOOL result;
571 606
572 /* Trim right */ 607 /* Trim right */
612 th_free(tmpStr2); 647 th_free(tmpStr2);
613 if (result) 648 if (result)
614 return 0; 649 return 0;
615 else 650 else
616 return -1; 651 return -1;
617 }
618 }
619
620
621 int openConnection(struct in_addr *addr, int port)
622 {
623 struct sockaddr_in tmpAddr;
624 int sock = -1;
625
626 tmpAddr.sin_family = AF_INET;
627 tmpAddr.sin_port = htons(port);
628 tmpAddr.sin_addr = *addr;
629
630 THMSG(1, "Connecting to %s:%d ...\n",
631 inet_ntoa(tmpAddr.sin_addr), port);
632
633 if ((sock = socket(PF_INET, SOCK_STREAM, 0)) == -1) {
634 THERR("Could not open socket: %s\n", strerror(errno));
635 return -2;
636 }
637
638 THMSG(2, "Using socket %d.\n", sock);
639
640 if (connect(sock, (struct sockaddr *) &tmpAddr, sizeof(tmpAddr)) == -1) {
641 THERR("Could not connect: %s\n", strerror(errno));
642 return -5;
643 }
644
645 return sock;
646 }
647
648
649 void closeConnection(int sock)
650 {
651 if (sock >= 0) {
652 #ifdef __WIN32
653 closesocket(sock);
654 #else
655 close(sock);
656 #endif
657 } 652 }
658 } 653 }
659 654
660 655
661 int main(int argc, char *argv[]) 656 int main(int argc, char *argv[])
800 if (gotBuf < 0) { 795 if (gotBuf < 0) {
801 printMsg("Error in reading stdio.\n"); 796 printMsg("Error in reading stdio.\n");
802 exitProg = TRUE; 797 exitProg = TRUE;
803 } else { 798 } else {
804 /* Call the user input handler */ 799 /* Call the user input handler */
805 result = handleInput(tmpSocket, tmpBuf, gotBuf); 800 result = handleUserInput(tmpSocket, tmpBuf, gotBuf);
806 if (result < 0) { 801 if (result < 0) {
807 printMsg("Fatal error handling user input: %s\n", 802 printMsg("Fatal error handling user input: %s\n",
808 tmpBuf); 803 tmpBuf);
809 exitProg = TRUE; 804 exitProg = TRUE;
810 } 805 }