Added README, TODO, and some changes to Makefile and net.h for Solaris/OpenIndiana

master
Meegwun Southall 2013-08-01 20:59:53 -07:00 committed by kts@vger
parent af41084368
commit 1623b039b9
5 changed files with 51 additions and 8 deletions

View File

@ -1,4 +1,3 @@
OUT = bcast
PREFIX=./
OBJS = main.o net.o common.o
CON_OBJS = con/console.o
@ -6,12 +5,16 @@ CC = gcc
DEBUG = -g
CFLAGS = -Wall -c $(DEBUG)
LFLAGS = -Wall $(DEBUG)
ifeq ($(OS),Windows_NT)
else
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),SunOS)
LFLAGS += -lsocket -lnsl
endif
endif
X11_OBJS = x11/x11.o
X11_LFLAGS = -L/usr/X11R6/lib -lX11
$(OUT): $(CON_OBJS) $(OBJS)
$(CC) $(OBJS) $(CON_OBJS) $(LFLAGS) -o $(OUT)
ccast: $(OBJS) $(CON_OBJS)
$(CC) $(OBJS) $(CON_OBJS) $(LFLAGS) -o ccast
@ -21,10 +24,7 @@ xcast: $(OBJS) $(X11_OBJS)
all: bcast ccast xcast
clean:
rm $(OBJS) $(CON_OBJS) $(X11_OBJS) ccast xcast $(OUT)
install:
cp $(OUT) $(PREFIX)/$(OUT)
rm $(OBJS) $(CON_OBJS) $(X11_OBJS) ccast xcast
net.o: net.c net.h macros.h
$(CC) $(CFLAGS) -c net.c

26
README 100644
View File

@ -0,0 +1,26 @@
---- info ----
Bcast is a decentralized and LAN-based communication program that is focused on minimalism, efficiency, and, to some degree, modularity. It supports the following network communication methods:
UDP broadcasting, for chat-style and "broad" communication
*INCOMPLETE* UDP multicast, for finer control and higher efficiency than broadcasting
*INCOMPLETE* UDP peer-to-peer, for non-TCP based direct comms
*INCOMPLETE* TCP sockets, for direct peer-to-peer communication
In comparison to most communication programs geared towards decentralization, bcast attempts to separate the user interface from the networking code as much as is possible. This enables multiple frontends to easily be developed for almost any platform.
Even further, bcast provides peer-to-peer or peer-to-group encryption via a trusted network/shared password scheme - in the case of a direct peer-to-peer comm, following the initial handshaking procedure encrypted with the trusted key, a new, temporary key is agreed upon and used for future communication between those peers.
---- compiling ----
At the moment bcast compiles into the following binaries:
ccast: primary client
Fully-supported terminal client, relies on nothing more than an
ANSI-compliant terminal interface - colors optional
xcast:
state: in-complete stub, basic interface w/ buttons
Fully-supported X11 client, relies on nothing more than Xlib
To compile either, simply type:
make ccast
or
make xcast

13
TODO 100644
View File

@ -0,0 +1,13 @@
* direct messaging, both TCP sockets and UDP
* various conditional requests, such as PING, etc.
* multicast message type
* multi-packet messages
* file transferrals
* multiple message "modes," such as encrypted, unencrypted
* custom tunneling interface, possibly
* Fully-working X11 interface
* Windows interfaces
* possibly make a non-select() and non-ANSI derivative of ccast
* GDI (I think?)
* OS X interface (lower priority, due to terminal + x11 support)

BIN
bcast 100755

Binary file not shown.

4
net.h
View File

@ -18,6 +18,10 @@ Net
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#if defined (sun)
/* For Solaris 2.6, as it lacks SIOCGIFCONF */
#include <sys/sockio.h>
#endif
#endif
#include <string.h>