- /* Initialize */
- bzero( &sa_client, sizeof(struct sockaddr_in) );
- /* sin_family is ALWAYS set to AF_INET (see in man 7 ip)*/
- sa_client.sin_family = AF_INET;
- /* Giving port on to connect after having convert it*/
- sa_client.sin_port = htons( 0 );
- /* Giving address after having convert it into binary data*/
- inet_aton( ipaddr, &(sa_client.sin_addr) );
-
- /* Initialization of the socket */
- i_socket = socket(AF_INET, SOCK_DGRAM, 17 ); /* XXX?? UDP */
- /* SOCK_DGRAM because here we use DATAGRAM
- * Sachant qu'il y a un #define AF_INET = PF_INET dans sys/socket.h et que PF_INET est le IP protocol family ...
- * Protocol is in #define, should be 17 for udp */
-
- /* Elaborate the message to send */
- sprintf( mess , "%d %s %2.2x%2.2x%2.2x%2.2x%2.2x%2.2x %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x \n",
- Channel, ipaddr,
- interface.ifr_hwaddr.sa_data[0] & 0xff,
- interface.ifr_hwaddr.sa_data[1] & 0xff,
- interface.ifr_hwaddr.sa_data[2] & 0xff,
- interface.ifr_hwaddr.sa_data[3] & 0xff,
- interface.ifr_hwaddr.sa_data[4] & 0xff,
- interface.ifr_hwaddr.sa_data[5] & 0xff,
- interface.ifr_hwaddr.sa_data[0] & 0xff,
- interface.ifr_hwaddr.sa_data[1] & 0xff,
- interface.ifr_hwaddr.sa_data[2] & 0xff,
- interface.ifr_hwaddr.sa_data[3] & 0xff,
- interface.ifr_hwaddr.sa_data[4] & 0xff,
- interface.ifr_hwaddr.sa_data[5] & 0xff
- );
-
- /* Send the message */
- intf_DbgMsg("%s\n", mess);
- sendto(i_socket,mess,80,0,(struct sockaddr *)&sa_server,sizeof(struct sockaddr));
-
- /*Close the socket */
- close( i_socket );
-#endif
+
+ /*
+ * Waiting 5 sec for one answer from the server
+ */
+ time.tv_sec = 5;
+ time.tv_usec = 0;
+ FD_ZERO( &rfds );
+ FD_SET( socket_cl, &rfds );
+ nbanswer = select( socket_cl + 1, &rfds, NULL, NULL, &time);
+ if( nbanswer == 0 )
+ {
+ intf_DbgMsg( "no answer\n" );
+ }
+ else if( nbanswer == -1 )
+ {
+ intf_DbgMsg( "I couldn't recieve the answer\n" );
+ }
+ else
+ {
+ recvfrom (socket_cl, &answer, sizeof( char ), 0, (struct sockaddr *)(&sa_client), &fromlen);
+ intf_DbgMsg( "the answer : %hhd\n", answer );
+ if( answer == -1 )
+ {
+ intf_DbgMsg( "The server doesn't succed to create the thread\n" );
+ }
+ else if( answer == 0 )
+ {
+ intf_DbgMsg( "The server try to change the channel\n" );
+ }
+ else
+ {
+ intf_DbgMsg( "I don't know what is this answer !\n" );
+ }
+ }
+
+
+ /*
+ * Close the socket
+ */
+ close( socket_cl);