From 449d862fbbbde494e94ba0bbc4689b91ca986175 Mon Sep 17 00:00:00 2001
From: victor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>
Date: Fri, 15 Aug 2003 10:40:13 +0000
Subject: new developed service

git-svn-id: http://opensvn.csie.org/pttbbs/branches/bank@1102 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
---
 bankstuff.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 bankstuff.c

(limited to 'bankstuff.c')

diff --git a/bankstuff.c b/bankstuff.c
new file mode 100644
index 00000000..c1e7bff6
--- /dev/null
+++ b/bankstuff.c
@@ -0,0 +1,51 @@
+#include "bank.h"
+
+int sockfd;
+
+char* readline(char *str, int timeout){
+    int len;
+    struct timeval tv;
+    fd_set set;
+
+    tv.tv_sec = timeout;
+    tv.tv_usec = 0;
+
+    FD_ZERO(&set);
+    FD_SET(sockfd, &set);
+
+    if (select(sockfd + 1, &set, NULL, NULL,!timeout ? NULL : &tv) <= 0) { ///
+	perror("select");
+	exit(-1);
+    }
+
+    if ((len = read(sockfd, str, STRLEN * sizeof(char))) < 0){
+	herror("readline");
+	exit(-1);
+    }
+    if (len == 0)
+	return NULL;
+    str[len] = 0;
+    read(sockfd, &len, sizeof(char)); // chomp
+    return str;
+}
+
+void writeln(char *str){
+    char n = '\n';
+    write(sockfd, str, strlen(str));
+    write(sockfd, &n, sizeof(n));
+}
+
+void getcmd(char *buf, char *cmd, char *param){
+    int i;
+    for(i = 0; buf[i] && buf[i] != ' ' && i < STRLEN; i++)
+	cmd[i] = buf[i];
+    cmd[i] = 0;
+    if (!buf[i]){
+	param = NULL;
+	return;
+    }
+    buf = &buf[i + 1];
+    for(i = 0; buf[i] && i < STRLEN; i++)
+	param[i] = buf[i];
+    param[i] = 0;
+}
-- 
cgit v1.2.3