triforce / shhchat Goto Github PK
View Code? Open in Web Editor NEWA Linux command-line multi-user chat program using SSL
License: GNU General Public License v2.0
A Linux command-line multi-user chat program using SSL
License: GNU General Public License v2.0
As part of the server daemon functionality, relevant messages should be outputted to syslog.
Server status messages and successful clients connects to the server should be sent to syslog.
Add support for WebSocket chat in server.
Add optional debugger in both client and server so unnecessary messages are not spammed in console.
你好!我是一名即将毕业的计算机专业的本科生,最近在做毕业设计,在github上看到了您发布的这个聊天程序,对此很感兴趣。想利用这个来完成我的毕设,能给予我一些帮助吗?
If a user on the userlist has logged in then prevent a user of the same name from logging in.
After connecting a second user to a chat session with a server, upon initial connection and receiving of the 'X user connected' message, a bunch of garbage characters are printed to the screen. This could be due to the buffer not being cleared properly, or the encryption on the server side.
Log in with valid user, at password prompt press enter immediately. Server crashes.
Additional files in build/cfg are unnecessary.
When a user sends a chat message there is no longer a ':' after the username, making the chat text difficult to read.
Replace with strncat to prevent overflow.
Duplicate header files noticed in client.
Clean functions should be added into 'all' make option
Enhancements relating to improving the security of client/server protocol.
Currently an infinite number of client log files are created which isn't very practical.
Package first release into a Arch Linux Package.
Package needs to add server and client into /usr/bin.
Config files should be added into /etc/shhchat dir.
Add functionality for users to gain special chat privileges to do administrative type actions on the chat session.
Replace with strncpy to prevent overflow.
Add chat colours for each user connected.
Config files should be read from /etc/shhchat. If files don't exist then create default versions.
This applies to both server and client.
If client and server startup with no parameters then config parameters are read.
The config reading functionality should be added as a separate library.
Make project tree more standard
Both client and server need to read key from key file.
The current xor encryption is very basic and a new layer of encryption is necessary for a more robust protocol. Traffic can be easily deciphered.
clearClientList should be renamed to clientList.
The user list db file should not contain the trailing colon used in the chat protocol.
Add support for SSL.
User name is sent in plaintext and should be encrypted.
After a client receives a message from another client via the server another "You" is output to the console which looks untidy and uses up console lines unnecessarily. Use \r.
The current way in which lines are laid out and handled looks shabby - Improve it!
Some chat messages are truncated on the clients.
This is due to the correct key not being used in both server and client. Closing.
Add user dB for additional security.
Initial implementation requires a simple plain text file containing list of users allowed to connect to server.
Change name of chat log commands as future actual login logoff commands may be used. Use something like clientlogs_on instead.
Truncate all input strings to a reasonable length before passing into syslog.
Add user password support.
Add a help command displaying list of all commands available.
A client server handshake message (possibly based on the key) will increase security.
The shhchat server should run as a Linux daemon.
When init_parameters is called the client keys and certificate are loaded from '/home/user' instead of using location from getpwuid().
Current key file handling on both sides is too simple and should check several locations to be able to function effectively as a Linux package.
Create a front end for a chat session over a WebSocket.
When another client joins a chat session, a broadcast message is sent from the server to all clients currently connected with a list of who is in the chat session. This message often contains garbage text.
Client log file copying routine does not handle errors.
Chatting via multiple clients is visually difficult to read. Proper line breaks for input text is not being used.
The current encryption method is simple and should be enhanced to be more robust.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.