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

Reply via email to