C-toxcore: μΉœκ΅¬κ°€ λ°”μ˜λ‹€λŠ” 것을 κ°μ§€ν•˜λŠ” 방법

에 λ§Œλ“  2018λ…„ 06μ›” 25일  Β·  8μ½”λ©˜νŠΈ  Β·  좜처: TokTok/c-toxcore

ν΄λΌμ΄μ–ΈνŠΈλ₯Ό κ°œλ°œν•  λ•Œ μ†”λ£¨μ…˜μ„ 찾을 수 μ—†λŠ” λ¬Έμ œμ— λΆ€λ”ͺμ³€μŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ κ°œλ°œμžλ“€μ—κ²Œ 도움을 μš”μ²­ν•©λ‹ˆλ‹€.
μœ μ„  μ „ν™”μš© tox-clientλ₯Ό κ°œλ°œν•©λ‹ˆλ‹€. λ‚΄κ°€ μΉœκ΅¬μ—κ²Œ μ „ν™”λ₯Ό κ±Έ λ•Œ(call function toxav_call()), λ‚˜λŠ” λ‚΄ 친ꡬ의 νšŒμ„ μ΄ λ¬΄λ£ŒλΌλŠ” 것을 μ•Œμ•„μ•Ό ν•©λ‹ˆλ‹€. λ‚΄κ°€ μ „ν™”λ₯Ό κ±Έ λ•Œ - μΉœκ΅¬κ°€ 이미 λˆ„κ΅°κ°€μ™€ 톡화 μ€‘μ΄κ±°λ‚˜ 방금 ν•Έλ“œμ…‹μ„ λ“€μ—ˆλ‹€λ©΄ 톡화 쀑 μ‹ ν˜Έλ₯Ό μž¬μƒν•˜κ³  톡화λ₯Ό μ’…λ£Œν•˜κΈ° μœ„ν•΄ μ–΄λ–»κ²Œλ“  이에 λŒ€ν•΄ μ•Œμ•„μ•Ό ν•©λ‹ˆλ‹€.
λ‚΄ 친ꡬ의 νšŒμ„ μ΄ 톡화 μ€‘μž„μ„ μ–΄λ–»κ²Œ μ•Œ 수 μžˆμŠ΅λ‹ˆκΉŒ?

suggestion

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

이것은 개인 정보 보호 λ¬Έμ œμž…λ‹ˆλ‹€. μ§€κΈˆμ€ μΉœκ΅¬κ°€ ν˜„μž¬ μ „ν™”λ₯Ό λ°›κ³  μžˆλŠ”μ§€ μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€. 쒋은 μΌμž…λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈλŠ” μ „ν™”λ₯Ό μžλ™μœΌλ‘œ κ±°λΆ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ–΄λ–»κ²Œλ“  κ±°λΆ€ 이유(예: "바쁨")λ₯Ό λ³΄λ‚΄λŠ” 것이 합리적일 수 μžˆμŠ΅λ‹ˆλ‹€. μ§€κΈˆμ€ μ»€μŠ€ν…€ νŒ¨ν‚·μœΌλ‘œ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  8 λŒ“κΈ€

ToxλŠ” ν•œ λ²ˆμ— μ—¬λŸ¬ ν˜ΈμΆœμ„ μ²˜λ¦¬ν•  수 있기 λ•Œλ¬Έμ— 이에 λŒ€ν•œ APIκ°€ μ—†λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. ν˜„μž¬ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ 이 λ©”μ»€λ‹ˆμ¦˜μ„ κ΅¬ν˜„ν•΄μ•Ό ν•©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ APIλ₯Ό 코어에 ν†΅ν•©ν•˜λŠ” 것이 ν•©λ¦¬μ μΌκΉŒμš”?

이것은 개인 정보 보호 λ¬Έμ œμž…λ‹ˆλ‹€. μ§€κΈˆμ€ μΉœκ΅¬κ°€ ν˜„μž¬ μ „ν™”λ₯Ό λ°›κ³  μžˆλŠ”μ§€ μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€. 쒋은 μΌμž…λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈλŠ” μ „ν™”λ₯Ό μžλ™μœΌλ‘œ κ±°λΆ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ–΄λ–»κ²Œλ“  κ±°λΆ€ 이유(예: "바쁨")λ₯Ό λ³΄λ‚΄λŠ” 것이 합리적일 수 μžˆμŠ΅λ‹ˆλ‹€. μ§€κΈˆμ€ μ»€μŠ€ν…€ νŒ¨ν‚·μœΌλ‘œ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κ±°λΆ€ "이유"(예: "바쁨")에 λŒ€ν•΄ 적어도 APIλ₯Ό κ°–λŠ” 것이 ν₯미둜울 수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. λ‚˜λ¨Έμ§€λŠ” ν΄λΌμ΄μ–ΈνŠΈκ°€ μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이것은 개인 정보 보호 λ¬Έμ œμž…λ‹ˆλ‹€.

λ™μ˜ν•©λ‹ˆλ‹€. 취약점이 될 수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ‚˜λŠ” ν‰λ²”ν•œ μ‚¬λžŒλ“€μ„ μœ„ν•΄ λ‚΄ ν΄λΌμ΄μ–ΈνŠΈλ₯Ό κ°œλ°œν•˜κΈ° λ•Œλ¬Έμ— 개인 정보λ₯Ό μ ˆλŒ€ μš°μ„ μ‹œν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ κ±°λΆ€ μ½”λ“œλ₯Ό 받을 수 μžˆλŠ” κΈ°νšŒκ°€ 있으면 쒋을 κ²ƒμž…λ‹ˆλ‹€. API κΈ°λŠ₯은 ν›Œλ₯­ν•œ λ³€ν˜•μž…λ‹ˆλ‹€. λ³΄μ•ˆμ— 맀우 신경을 μ“°λŠ” tox-client의 경우 항상 0을 λ°˜ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ§€κΈˆμ€ μ»€μŠ€ν…€ νŒ¨ν‚·μœΌλ‘œ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

@iphydf , λ‚΄κ°€ μ˜¬λ°”λ₯΄κ²Œ μ΄ν•΄ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ? tox_friend_send_lossless_packet() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λŒ€μ²΄ 톡화 μ’…λ£Œ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

μ†”λ£¨μ…˜ λ³€ν˜•: enum TOX_USER_STATUS에 μƒˆ μƒνƒœλ₯Ό μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

/**
     * User is busy. Signals to other clients that this client does not
     * currently wish to communicate.
     */
TOX_USER_STATUS_BUSY

흠, 이미 κ΅¬ν˜„ν•˜κ³ μž ν•˜λŠ” κ²ƒμœΌλ‘œ 해석될 수 μžˆμ„ 것 κ°™μ€λ°μš”? λ°”μœ μΉœκ΅¬μ—κ²Œ μ „ν™”λ₯Ό κ±Έ λ•Œ ν΄λΌμ΄μ–ΈνŠΈκ°€ "λ°”μœ" μ†Œλ¦¬λ₯Ό 내도둝 ν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ? μžμ‹ μ˜ μƒνƒœκ°€ 톡화 쀑일 λ•Œ μžλ™μœΌλ‘œ μ „ν™”λ₯Ό λŠμŠ΅λ‹ˆκΉŒ?

예, 이 ν”Œλž˜κ·Έ(TOX_USER_STATUS_BUSY)λ₯Ό λ³΄μ•˜μ§€λ§Œ λͺ‡ 가지 μ˜μ‹¬μ΄ μžˆμŠ΅λ‹ˆλ‹€. ν˜„μž¬ 이 ν”Œλž˜κ·ΈλŠ” 정보 κΈ°λŠ₯을 μˆ˜ν–‰ν•©λ‹ˆλ‹€(λ‚΄κ°€ μ΄ν•΄ν•˜λŠ” ν•œ). μΉœκ΅¬κ°€ λ„ˆλ¬΄ λ°”μ˜λ‹€λ©° λ°©ν•΄ν•˜μ§€ 말라고 ν•˜λŠ” λ“― ν•©λ‹ˆλ‹€. κ·ΈλŸΌμ—λ„ λΆˆκ΅¬ν•˜κ³  κΈ‰ν•œ 일이 있으면 μΉœκ΅¬μ—κ²Œ νŽΈμ§€λ₯Ό μ“°κ±°λ‚˜ μ „ν™”λ₯Ό κ±Έ 수 μžˆμŠ΅λ‹ˆλ‹€. TOX_USER_STATUS_BUSY ν”Œλž˜κ·Έλ₯Ό λ°”μœ μƒνƒœλ‘œ ν•΄μ„ν•˜λ©΄ μΉœκ΅¬μ—κ²Œ μ•„μ£Ό μ˜€λž«λ™μ•ˆ 연락이 닿지 μ•ŠλŠ” 일이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, qtox μΉœκ΅¬κ°€ TOX_USER_STATUS_BUSES ν”Œλž˜κ·Έλ₯Ό μ„€μ •ν•œ λ‹€μŒ μ œκ±°ν•˜λŠ” 것을 μžŠμ—ˆμŠ΅λ‹ˆλ‹€.
κ·Έλž˜μ„œ TOX_USER_STATUS_BUSES ν”Œλž˜κ·Έμ— 두 번째 의미λ₯Ό ν• λ‹Ήν•  ν•„μš”κ°€ μ—†λ‹€κ³  μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€. 그리고 "ν†΅ν™”λ‘œ 인해 톡화 쀑" μƒνƒœμ— λŒ€ν•΄ λ³„λ„μ˜ ν•­λͺ©μ„ μž…λ ₯ν•©λ‹ˆλ‹€.

tox_friend_send_lossless_packet() ν•¨μˆ˜λ₯Ό 톡해 톡화 μ’…λ£Œ μ‚¬μœ λ₯Ό μ•Œλ €μ£ΌλŠ” λ©”μ»€λ‹ˆμ¦˜μ„ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. 이것은 κ½€ 잘 μž‘λ™ν•©λ‹ˆλ‹€. 톡화 μ’…λ£Œμ™€ 톡지 μ‚¬μ΄μ˜ 간격이 그리 길지 μ•Šλ‹€λŠ” 것이 κ°€μž₯ μ€‘μš”ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이것은 μ‚¬μš©ν•˜λŠ” κ³Όμ •μ—μ„œλ§Œ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰