/* 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; }
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); } }