Re: [建議] 保留重複登入的連線新增提示

作者: IepID (Iep Iweidieng)   2021-06-30 09:23:03
※ 引述《ZooseWu (N5)》之銘言:
: ※ 引述《wens (文思)》之銘言:
: : 沒有所謂上限。系統就是在你已經連線時又重複連線會有提示。
根據 BBS 系統的原始碼,重複登入的上限真實存在於系統中。
有關嘗試重複登入時的斷線機制,請見此段程式碼:
https://github.com/ptt/pttbbs/blob/7b3577824365acd264bd447ba3433efd52ca3063/mbbsd/mbbsd.c#L666..L670
(↑不會因原始碼更新而失效的永久連結,但可能過長而無法點擊)
https://github.com/ptt/pttbbs/blob/7b35778243/mbbsd/mbbsd.c#L666..L670
(↑雜湊部份僅取前幾碼的連結)
以文字節錄此段程式碼如下:(mbbsd/mbbsd.c 第 666 行至第 670 行)
```
/* deny login if still have 3 */
if (getotherlogin(3) != NULL) {
sleep(1);
abort_bbs(0); /* Goodbye(); */
}
```
這是在「
注意: 您有其它連線已登入此帳號。
您想刪除其他重複登入的連線嗎?[Y/n]
」此訊息出現時,選擇「n」後會執行的一段程式碼。
getotherlogin(3) 會檢查 BBS 系統中是否存在第 3 個此使用者的已登入連線,
若有,則會傳回代表此連線的程式物件,使得節錄文字其中的「if」條件成立,
進而使程式停下等待 1 秒後直接進行斷線。
結果是,使用者已有 3 個重複登入的連線時,看到此訊息並選擇「n」後,
目前嘗試登入的連線會直接遭到斷線而不會看到任何其它提示訊息。
實際測試結果:已重複登入共 3 次;第 4 次嘗試登入時,在選擇「n」後斷線。
https://i.imgur.com/Tv3a7KI.png
根據原始碼版本紀錄,這段程式碼上次是在 2009 年 5 月 26 日被修改,
故其並非近日才新增的機制。
因此「沒有單一帳號重複登入的上限」這一敘述,或許仍有值得商榷之處。
至於在此情況下斷線前可否顯示相關訊息,應該還是要取決於站方的考量。
※ 引述《ZooseWu (N5)》之銘言(續):
: ※ 引述《wens (文思)》之銘言(續):
(恕省略以下引言……)

Links booklink

Contact Us: admin [ a t ] ucptt.com