diff options
author | victor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2003-08-15 18:40:13 +0800 |
---|---|---|
committer | victor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2003-08-15 18:40:13 +0800 |
commit | 449d862fbbbde494e94ba0bbc4689b91ca986175 (patch) | |
tree | f9d72d4c55643071dd8e633afa1ac7166a0552d0 /bankstuff.c | |
parent | 7b976a8121e3a2365abde9a90375a9bba1600e2d (diff) | |
download | pttbbs-449d862fbbbde494e94ba0bbc4689b91ca986175.tar pttbbs-449d862fbbbde494e94ba0bbc4689b91ca986175.tar.gz pttbbs-449d862fbbbde494e94ba0bbc4689b91ca986175.tar.bz2 pttbbs-449d862fbbbde494e94ba0bbc4689b91ca986175.tar.lz pttbbs-449d862fbbbde494e94ba0bbc4689b91ca986175.tar.xz pttbbs-449d862fbbbde494e94ba0bbc4689b91ca986175.tar.zst pttbbs-449d862fbbbde494e94ba0bbc4689b91ca986175.zip |
new developed servicebank
git-svn-id: http://opensvn.csie.org/pttbbs/branches/bank@1102 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'bankstuff.c')
-rw-r--r-- | bankstuff.c | 51 |
1 files changed, 51 insertions, 0 deletions
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; +} |