Sambaconfig is a collection of cgi scripts, which calls a common executable (smbread) to generate forms to edit the Samba smb.conf file. It can also be used as a standalone program called by inetd. This application preserves the original smb.conf layout, including comments and include files. Deletions from the config file(s) are made by commenting out the parts to be deleted. It is easy to add custom forms to edit parts of the smb.conf file. Examples included.
The Camarades Linux Proxy is a small program that is meant to run on a firewall protecting an internal network. It allows multiple users behind a firewall to use the Camarades Web camera program. When an incoming request is made to the firewall, the request is analyzed by the proxy, checked against a list of camarade ID's, and then forwarded to the correct internal IP address.
C++ Sockets is a cross-platform C++ wrapper for BSD-style sockets. It implements the TCP, UDP, ICMP, and SCTP transport layer protocols. Implemented application layer protocols are HTTP/HTTPS (using OpenSSL), SMTP (server), and Ajp/1.3 (server). Features include transparent SOCKS4 client support and asynchronous DNS. Included in the library are a number of HTTP client functions such as GET/PUT/POST, and also Web server framework components.
The SQL C++ code generator (sql2class) utility is a code generation tool to convert SQL output to simple C++ classes. It supports MySQL and Sqlite. For each database table, one C++ class will be generated containing member variables for each column, as well as methods to read / insert / update records and also return the record as XML.
DUCT is a distributed tool for sharing and classification of URLs and small files. It can be used to post files and URLs that will be stored locally, then distributed to clients connected through the minder web. It features an embedded MySQL database for data storage, and a small Web server for presentation and handling.
btpeer is a collection of C++ classes that implement the core client functionality of the BitTorrent protocol in a network-only environment. "Network-only" means that all interaction with the client core is done via network connections. Loading of metainfo files is done using a small program for file transfer. The status of the client is shown using a small internal Web page server.
Re: make docs: broken in 1.7.1?
> Source archive downloaded 2005-01-20
> $tar -xvzf Sockets-1.7.1.tar.gz
> $cd Sockets-1.7.1
> $make docs
> rm -f *.o *~ slask *.d *.a
> rm -f Mutex.*
> rm -f MinderSocket_T.h
> rm -f uuid.h
> rm -f Stdin.*
> make: ./mkdot.sh: Command not found
> make: *** [docs] Error 127
> $ls *.sh
> ls: *.sh: No such file or directory
> The problem appears to be that mkdot.sh
> is missing from the archive. The action
> to add it to the action to add it to the
> archive seems to be missisg from the tar
> target too.
It's a small script that uses Doxygen (www.doxygen.org) and my project "dp" (www.alhem.net/project/dp) to generate the documentation shown on the sockets library homepage. I'll include it in the next release.
Re: how to know the port number ?
> I have a problem I cannot solve: I want
> to have more listening sockets on the
> same local ip address but on different
> ports, say on port 1024 and 1025. I have
> a SocketHandler instance and 2
> ListenSocket<MyHttpSocket> but
> when an incoming connection is being
> accepted and a new instance of my
> MyHttpSocket is created I'm no more able
> to know on which port the connection
> request arrived, 1024 or 1025. Moreover
> I cannot start 2 server processes, one
> on each port, because of other reasons
> that'll take too long to explain...
> Is there a solution to this case?
> Thank you for your help.
My quick solution is to add a GetParent() method in Socket, that will return the pointer to the ListenSocket that created it. This will be in the next version.
In your socket class, you'd do something like this:
switch ( GetParent()->GetPort() )
case 1024: // "server 1"
case 1025: // "server 2"
default: // wtf
Also, I'm sure there is a way to get the local port of the established connection, but didn't find it after a quick man browsing. If you just could get the port number directly from the connected socket...
Oh well, I know this doesn't help much until the next release, but just that you know that there is a solution coming.