ZNC: Self-written Query Message Relay, Query Buffering, Webadmin Patch edit

ZNC(IRC Bouncer)는 자기자신이 상대방에게 보낸 쿼리 메시지(ACTION 포함)를 클라이언트(ZNC 서버에 접속된 클라이언트)들에게 릴레이 시키지 않고 수신된 쿼리 메시지를 포함하여 버퍼링하지 않는다.

이 패치는 내가 상대방에게 보낸 쿼리 메시지들을 다른 클라이언트들에 릴레이 시켜주고, 버퍼링시켜준다.

이 패치를 적용한 이후 Angel이 ZNC를 사용하고 있고, Angel과 Wiz가 쿼리로 대화를 한다는 상황을 가정하여 이를 ZNC에 접속된 클라이언트들의 입장에서 본다면,

Client 1(현재 사용중인 클라이언트) Client 2
<Angel> hey Wiz?
<Wiz> hey Angel!
* Angel Waves her hand
<Wiz> <***> <Angel> hey Wiz?
<Wiz> hey Angel!
* Wiz <***> * Angel Waves her hand

위와 같이 내가(Angel) 보낸 메시지들을 상대방의 입장에서 릴레이 시키는 이유는 추측하건데 대부분의 IRC 클라이언트 소프트웨어들이 아래와 같은 구문이 서버측에서 전송되어 온다면(ZNC->Client) 내가 나에게 쿼리메시지를 보낸것으로 해석하기 때문이다.

:Angel!user@mask PRIVMSG Wiz :Message

확인된 클라이언트들 중 위와 같은 구문을 재대로(Angel이 Wiz에게 쿼리메시지를 보낸것으로) 해석하는 클라이언트는 weechat이 있고, 재대로 해석하지 못하는 클라이언트들에는 mIRC, AndChat(android)이 있다. 바운서 서버와 클라이언트끼리의 통신은 일반적이지 않기때문에 대부분의 클라이언트가 지원하지 않을것이다.

Webadmin Patch

Webadmin 패치는 ZNC Webadmin을 Apache웹서버에서 프록시 모듈들(mod_proxy_html 포함)을 이용하여 ProxyPass하여 사용할때 /mods/perform 링크로 이동시 맨끝에 /(슬래시)가 없으면 ZNC 웹서버가 mods/perform/ 으로 리다이렉션 시키는데 이때 맨 처음부분에 슬래시가 없어서 생기는 문제를 해결하였다.

원래 경로가 http://host:port/mods/perform 이지만 ProxyPass를 사용하면서 mod_proxy_html으로 http://host/custom-path/mods/perform/ 으로 경로가 변경되어 생기는 문제인것 같다. 이 패치를 하면 본래의 ZNC 웹서버에서 맨 처음에 슬래시가 두개 붙여질 수도 있다.

Downloads

이 패치를 znc 206버전에 자동으로 적용할 수 있고 다른 버전는 수동으로 적용할 수 있다.

diff: https://gist.github.com/2486642

Debian package: znc_0.206-custom_i386.deb (md5: 844074f55a89987692072ead73953bc5)

참고로 데비안 패키지에는 swig, mod_perl, mod_python 와 같은 스크립트 모듈들이 포함되어 있지 않다.

References

0 comments:

Post a Comment

Newer -> <- Older