Hi again,
On 10/9/19 11:45, aitor_czr wrote:
Hi all,
Here you are an example of the unix socket class used in simple-netaid
for sending the arguments
to the suid binary through a file descriptor instead of using
arguments in the command line:
http://gnuinos.org/socket/socket-class-example/
You'll need to install libglibmm-2.4-dev for the server of the socket
(It's multithreaded and uses a
Glib::Threads::Thread *thread pointer).
As you can see in the example (have a look at the main.cpp of the
server), the constructor of the
serverSocket class receives the name of the file descriptor as a first
argument:
serverSocket sender( FILE_DESCRIPTOR, std::string... );
The rest of the arguments in the constructor are the values of the
arguments sent by the socket,
and both the quantity and the length of these strings are unlimited.
The client side of the socket
class will use a std::vector<std::string> for the received
arguments(look at the main.cpp of the
server).
After building the example (use the Makefile for that), just run the
server in a secondary plane:
$ ./server &
[1] 10739
It may then run the client, getting all the received mesages:
$ ./client
These are the received messages:
0
Hi
hello
folks
[1]+ Hecho ./server
You can download the tarball of the example from here:
wget http://gnuinos.org/socket/socket_class_example.tar.gz
Cheers,
Aitor.
Maybe you are wondering about the reaseon why the server of the socket
should be multithreaded.
Well... Download the following example:
http://gnuinos.org/socket/ip/
The code of the server has been replaced by:
serverSocket( { FILE_DESCRIPTOR, "0", "wlan0" } );
system("sudo ./client");
That is, the information is sent through the file descriptor and
immediatly after the client is run *while*
the server is waiting to be heard in a separate thread.
Just run:
$ ./server
and your network interface (wlan0) will be brung down.
Cheers,
Aitor.
_______________________________________________
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng