Exemplo n.º 1
0
/* Connect to the wire server, pass it our command line argument
 * options, the script we're going to execute, and our MAC address.
 */
int wire_client_init(struct wire_client *wire_client,
                     const struct config *config,
                     const struct script *script,
                     const struct state *state)
{
	DEBUGP("wire_client_init\n");
	assert(config->is_wire_client);

	get_hw_address(config->wire_client_device,
	               &wire_client->client_ether_addr);

	wire_client->wire_conn = wire_conn_new();
	wire_conn_connect(wire_client->wire_conn,
	                  &config->wire_server_ip,
	                  config->wire_server_port);

	wire_client_send_args(wire_client, config);

	wire_client_send_script_path(wire_client, config);

	wire_client_send_script(wire_client, script);

	wire_client_send_hw_address(wire_client, config);

	wire_client_receive_server_ready(wire_client);

	return STATUS_OK;
}
Exemplo n.º 2
0
void run_wire_server(const struct config *config)
{
	struct wire_conn *listen_conn = NULL;

	wire_server_netdev_init(config->wire_server_device);

	listen_conn = wire_conn_new();

	wire_conn_bind_listen(listen_conn, config->wire_server_port);

	while (1) {
		struct wire_conn *accepted_conn = NULL;
		wire_conn_accept(listen_conn, &accepted_conn);

		struct wire_server *wire_server =
			wire_server_new(accepted_conn,
					config->wire_server_device,
					config->wire_server_port);

		start_wire_server_thread(wire_server);
	}
}