summaryrefslogtreecommitdiffstats
path: root/mbbsd/talk.c
diff options
context:
space:
mode:
authorscw <scw@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-02-26 20:45:20 +0800
committerscw <scw@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2005-02-26 20:45:20 +0800
commit3b4e727c99c7dfc54745a10bbb182b3adea7f55d (patch)
treeb38877faf9978c1c42f6794dd46b3b4159f0224b /mbbsd/talk.c
parent35dba03131d5d7c8bcda67566bb1a8e8dfceffc2 (diff)
downloadpttbbs-3b4e727c99c7dfc54745a10bbb182b3adea7f55d.tar
pttbbs-3b4e727c99c7dfc54745a10bbb182b3adea7f55d.tar.gz
pttbbs-3b4e727c99c7dfc54745a10bbb182b3adea7f55d.tar.bz2
pttbbs-3b4e727c99c7dfc54745a10bbb182b3adea7f55d.tar.lz
pttbbs-3b4e727c99c7dfc54745a10bbb182b3adea7f55d.tar.xz
pttbbs-3b4e727c99c7dfc54745a10bbb182b3adea7f55d.tar.zst
pttbbs-3b4e727c99c7dfc54745a10bbb182b3adea7f55d.zip
Reenable Chinese chess watching.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2556 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/talk.c')
-rw-r--r--mbbsd/talk.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/mbbsd/talk.c b/mbbsd/talk.c
index 7d8927cc..d92a7136 100644
--- a/mbbsd/talk.c
+++ b/mbbsd/talk.c
@@ -1380,8 +1380,18 @@ my_talk(userinfo_t * uin, int fri_stat, char defact)
if (sock < 0)
vmsg("無法建立連線");
else {
+#if defined(Solaris) && __OS_MAJOR_VERSION__ == 5 && __OS_MINOR_VERSION__ < 7
+ msgsock = accept(sock, (struct sockaddr *) 0, 0);
+#else
+ msgsock = accept(sock, (struct sockaddr *) 0, (socklen_t *) 0);
+#endif
+ close(sock);
+ if (msgsock == -1) {
+ perror("accept");
+ return;
+ }
strlcpy(currutmp->mateid, uin->userid, sizeof(currutmp->mateid));
- chc(sock, CHC_WATCH);
+ chc(msgsock, CHC_WATCH);
}
}
else
@@ -2859,6 +2869,7 @@ talkreply(void)
char buf[4];
char genbuf[200];
int a, sig = currutmp->sig;
+ int currstat0 = currstat;
uip = &SHM->uinfo[currutmp->destuip];
snprintf(page_requestor, sizeof(page_requestor),
@@ -2899,6 +2910,7 @@ talkreply(void)
a = reply_connection_request(uip);
if (a < 0) {
clear();
+ currstat = currstat0;
return;
}
@@ -2936,6 +2948,7 @@ talkreply(void)
else
close(a);
clear();
+ currstat = currstat0;
}
/* 網友動態簡表 */