Code Monkey home page Code Monkey logo

cgiirc's Introduction

cgiirc's People

Contributors

dgl avatar froznshiva avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cgiirc's Issues

'chan' parameter, and pre-populating the form with the channel set

In our cgiirc set-up with multiple channels available in a drop-down (Drop-down on the initial form before entering the chat screen), I'd like to be able to share a URL which pre-populates the 'Channel' value.

To my delight I found there is a parameter which does just that! The chan parameter.

...except it doesn't work. It pre-populates the value in the form, but then when we click through we end up connected to the default channel.

Using parameters in the URL

It would be nice if you could have it be able to use parameters (such as nickname, server, etc) in the URL used to access it to automatically connect using them.

Undefined subroutine &main::1 called.

So I'm running with nginx and uwsgi.

i'm trying to get this to work but it seems to be failing. I have no idea if it's something i'm doing or not.

nginx config (scrubbed):

server {
listen [::]:443 ssl;
    server_name my.server.com;
    error_page 404 /usr/share/nginx/errors/404.html;
    access_log /var/log/nginx/vhost/chat/ssl_access.log main;
    #error_log /var/log/nginx/vhost/chat/ssl_error.log;
    error_log /var/log/nginx/vhost/chat/ssl_error.log debug;
    ssl_certificate /etc/nginx/ssl/certs/wildcard.crt;
    ssl_certificate_key /etc/nginx/ssl/keys/myserver.key;
    ssl_session_timeout  5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
    ssl_dhparam /etc/nginx/ssl/keys/dh4096.pem;
    ssl_prefer_server_ciphers   on;

    #root /srv/http/chat;

    location / {
        root   /srv/http/chat;
        index  index.html index.htm;
        include uwsgi_params;
        uwsgi_pass unix:/run/uwsgi/cgiirc.sock;
        uwsgi_modifier1 5;
        #uwsgi_pass 127.0.0.1:3031;
    }
}

/etc/uwsgi/cgiirc.ini:

[uwsgi]
master = true
chdir = /srv/http/chat
plugins = psgi
socket = /run/uwsgi/cgiirc.sock
cgi = /srv/http/chat
cgi-allowed-ext = .cgi
uid = http
gid = http
psgi = /srv/http/chat/irc.cgi
http-socket-modifier1 = 5

and the config:

[root@alpha chat.src]# egrep -vE '^[[:space:]]*($|#)' cgiirc.config
default_server = irc.freenode.net
default_port = 7000
default_channel = #mychannel
default_name = https://my.server.com
default_nick = web|???????
default_user = cgiirc
quit_message = https://my.server.com
script_nph = nph-irc.cgi
script_form = client-perl.cgi
script_login = irc.cgi
image_path = images
socket_prefix = /tmp/cgiirc-
encoded_ip = 2
ip_access_file = ipaccess
allow_non_default = 0
access_channel = .*
access_server = .*
access_port = .*
access_command = msg me whois nick q !
session_timeout = 3600
dnsbl = dnsbl.dronebl.org
login basic = Nickname
login advanced = Nickname, Realname, Password, Format, Character set
format = default
interface timestamp = 1
interface smilies = 0
interface scrollback = 0

hitting https://my.server.com with curl causes the following to appear in the uwsgi logs (and returns a 500):

Jan 20 23:36:25 my.server.com uwsgi[31536]: [uwsgi-perl error] Undefined subroutine &main::1 called.
Jan 20 23:36:25 my.server.com uwsgi[31536]: [pid: ####|app: 0|req: 2/2] ::ffff:my.client.ip.addr () {42 vars in 626 bytes} [Wed Jan 20 23:36:25 2016] GET / => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (0 switches on core 0)

any ideas? this is reproducible for me on both the git HEAD and on the latest release tarball.

software/versions:
nginx 1.9.9
Arch Linux (kernel 4.3.3)
uwsgi 2.0.12
perl 5.22.1

does not work via https

unpacked http://cgiirc.org/releases/cgiirc-0.5.12.tar.gz in /usr/local, renamed it to cgiirc

apache2 configuration

<VirtualHost *:443>
    <Directory "/usr/local/cgiirc">
        Options All
        AllowOverride All
        Require all granted
    </Directory>
    Alias /cgi-bin/images /usr/local/cgiirc/images
    ScriptAlias /cgi-bin /usr/local/cgiirc
    ServerAdmin [email protected]
    DocumentRoot /var/www/htdocs.chat.knageroe.nl
    ServerName chat.knageroe.nl
    CustomLog /var/log/apache2/chat.knageroe.nl_access_log combined
    ErrorLog /var/log/apache2/chat.knageroe.nl_error_log

Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/chat.knageroe.nl/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/chat.knageroe.nl/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

This results in:

An error occurred: Communication socket already exists

I verified that no cgi* files were under /tmp (none at all in fact).

Safari 14 hangs when loading (also Safari 13/ios?)

Unsure if this is related to #14, after updating to Safari 14 (on Mojave) login hangs.

User Agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15

Still works under Safari 13 (on High Sierra):
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.2 Safari/605.1.15

FWIW I'm also unable to get mobile Safari to login, its User Agent also claims to be Safari 13:
Mozilla/5.0 (iPhone; CPU iPhone OS 13_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.2 Mobile/15E148 Safari/604.1

Bad tab in dark format

So, when I use a dark theme (set in cgiirc.config) the name of my tabs is wrong.

Ex : I try to connect on irc.example.com, I set #channel1,#channel2 in login form, when i'm connect, my tab Status is on #channel2, my #channel2 is on #channel1 and my #channel1 is on Status, or somethig like that.

It's same with Gothic format.

I tried other theme, like mirc, and it work well.

I use the 0.5.11 version, on Archlinux and Lighttpd

CGI::IRC incompatible with HTTP/2.0

I have been experiencing issues with an CGI::IRC installation lately.
CGI::IRC does not seem to be loading correctly when the web server is configured for the HTTP/2.0 protocol.
When the subdomain CGI::IRC is running on is restricted to HTTP/1.1, CGI::IRC works properly.
This behaviour is observed when running on Apache 2.4.58.

iOS 12.2 hangs on loading

Loading several resources at the same time (i.e. some irc.cgi frames and nph-irc.cgi) seems to sometimes block on iOS 12.2. It looks like potentially nph-irc.cgi's streaming nature blocks the render of the whole frameset.

We can workaround this.

nginx fcgiwrap and CGI:IRC 0.5.12 Event module problem

As far as I can see everything is set up correctly. I can get to the login page. I click login and get redirected, but no further. Doesn't connect to IRC.
The ONLY log entry that I find of interest is:

Aug 22 13:57:00 ErinPi fcgiwrap[11999]: Can't locate object method "new" via package "Event" (perhaps you forgot to load "Event"?) at /var/www/html/cgiirc/nph-irc.cgi line 1124

I've also tried with uwsgi and I've configured myself around in circles with inspired/nginx/cgistuff/everything.

Any clue about this?

Thanks

"Status" as default target might inadvertently target user whom is using "Status" as nick

When you have the Status window selected and issue the mode command without specifying a target, the target defaults to Status and is issued to the server. If there is a user with the nick Status the mode command might apply to him, even though that definitely wasn't intended by the issuer of the mode command.

It might only effectively change the mode of the inadvertently targeted user if the issuer of the mode command has rights to perform such action. (fe. if the issuer is an ircop or the server restrictions are lower)

This might affect other commands as well.

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.