summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHåkon Nessjøen <haakon.nessjoen@gmail.com>2010-10-02 20:33:45 +0200
committerHåkon Nessjøen <haakon.nessjoen@gmail.com>2010-10-02 20:33:45 +0200
commita64b7069f5144dbd2e76f3a9d104d63ca64c7cd1 (patch)
treeb3a2ec415e827d05e046248d22766c0563388be3
parent2643ff20775e36ddd37c806fc7f943c2c0919f2b (diff)
downloadMAC-Telnet-a64b7069f5144dbd2e76f3a9d104d63ca64c7cd1.tar.gz
MAC-Telnet-a64b7069f5144dbd2e76f3a9d104d63ca64c7cd1.zip
Commented the rest of main()
-rw-r--r--main.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/main.c b/main.c
index 884cd3b..4f35662 100644
--- a/main.c
+++ b/main.c
@@ -377,19 +377,23 @@ int main (int argc, char **argv) {
while (running) {
int reads;
+ /* Init select */
FD_ZERO(&read_fds);
FD_SET(0, &read_fds);
FD_SET(insockfd, &read_fds);
timeout.tv_sec = 1;
timeout.tv_usec = 0;
+ /* Wait for data or timeout */
reads = select(insockfd+1, &read_fds, NULL, NULL, &timeout);
if (reads > 0) {
+ /* Handle data from server */
if (FD_ISSET(insockfd, &read_fds)) {
memset(buff, 0, 1500);
result = recvfrom(insockfd, buff, 1500, 0, 0, 0);
handlePacket(buff, result);
}
+ /* Handle data from keyboard/local terminal */
if (FD_ISSET(0, &read_fds)) {
unsigned char keydata[100];
int datalen;
@@ -400,8 +404,10 @@ int main (int argc, char **argv) {
memcpy(data + plen, &keydata, datalen);
result = sendUDP(data, plen + datalen);
}
+ /* Handle select() timeout */
} else {
- /* keepalive */
+ /* handle keepalive counter, transmit keepalive packet every 10 seconds
+ of inactivity */
if ((keepalive_counter++ % 10) == 0) {
char odata[MT_HEADER_LEN];
int plen=0,result=0;
@@ -410,9 +416,12 @@ int main (int argc, char **argv) {
}
}
}
+
if (terminalMode) {
+ /* Reset terminal back to old settings */
resetTerm();
}
+
close(sockfd);
close(insockfd);