Code Monkey home page Code Monkey logo

eyersee's People

Contributors

chaejin-jen avatar kimhan-nah avatar nyeoni avatar

Stargazers

 avatar  avatar

Watchers

 avatar

eyersee's Issues

Timeout access freed memory

Bug 개요

  • Timer 가 걸린 클라이언트가 종료될 시, segfault

Solution

  • handleTimer 에서 가장먼저 _udata_list 에 등록된 <fd, udata> 값과 비교
    • 해당 사항이 없으면 아무것도 안하고 리턴

Todos

  • handleTimer 수정

Response 처리

요구사항

  • Executor에서 모든 response 처리

설명

  • error response, success response client의 send_buf에 append하기

Todo

ETC

CR LF 처리

Bug 개요

  • '\n' 단위로 command line 을 파싱해서 문제 발생
    • "aaaaaaaa\r\nbbb\r\n" 의 경우 "bbbaaaaa" 같은 형태로 만들어짐

Solution

  • "\r\n" 단위로 command line 파싱
  • [미정] nc로 테스트시, "\r\n" 으로

Todos

  • [ ]

D_WRITE event 에러

Bug 개요

  • accept 이후 write 이벤트 무한 발생

Solution

Todos

  • ₩D_WRITE (EV_DELETE)로 write 이벤트가 비활성화 되는 게 맞는지 확인 필요
  • 혹은 비활성화된 write 이벤트가 다시 WRITE 활성화 시키는지?

IRC Command test

요구사항

  • IRC command test 하고 해결완료되었는지 체크

설명

  • IRC command test 하고 해결완료되었는지 체크

IRC Command List

  • PASS
  • USER
  • NICK
  • QUIT
  • JOIN
  • MODE
  • PART
  • TOPIC
  • INVITE
  • KICK
  • PRIVMSG
  • NOTICE
  • PING

ETC

만약 안되는 커맨드 있으면 댓글로 안되는 이슈와 이슈넘버 링크

send 처리 방식 토론

요구사항

  • send 처리 방식 토론

설명

  • kqueue에 이벤트 등록 전에 handleExecute에서 send 시도 후 return 값 확인
  • return 값 -1이면 이벤트 등록해서 multiplexing handleWrite에서 처리

ETC

Close 관련 함수 리팩토링

#39

  • isConnected 함수를 Executor가 아닌 ConnectSocket에서 처리
  • handleClose 에서 tmp 사용 말고, _garbage를 순회하면서 timeout 된 _unregisters 를 삭제

Receive event Multi line parsing error

Bug 개요

  • Receive 이벤트가 발생했을 때, 소켓 버퍼에 담겼을 때만 event 가 trigger 되므로 뒤에 command_line 이 버퍼에 남아있어도 실행하지 못함

Solution

  1. Receive_MORE 을 만든다
  2. handleSend 에서 recv_buffer 에 남은 command_line 이 있는지 확인하고, register(Receive_MORE) 를 따로 만든다..

=> 결국, Receive_MORE 를 만들어야 하네..

Todos

  • []

parse - realname

Bug 개요

  • realname에 space가 들어가는 경우가 있음
    image

Solution

  • : 뒤에 오는 것은 하나의 문장(space 허용)으로 파싱

Todos

  • [ ]

use connect socket

요구사항

  • Udata structure 없애기
  • move name info from Client to ConnectSocket
  • username, hostname, servername, realname, nickname

설명

  • kevent에 사용되는 udata의 타입으로 ConnectSocket 사용
    • udata_list 없앨 수 있음

Todo

  • todo1
  • todo2
  • todo3

ETC

Executor Bug

Bug 개요

  • executor test에서 발생하는 bug

Solution

Todos

  • [] nick reponse 안 옴
  • []

ChannelName parsing

설명

  • validChannelName 에서 채널명 앞에 # 이 있는지 없는지 확인하고 붙여줄지 말지에 대해 토론해봐용!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.