+
+int network_manage_incoming(t_ivac *ivac) {
+
+ int i;
+ struct sockaddr_in addr;
+ int len;
+
+ for(i=0;i<MAX_CONNECTIONS;i++) {
+ if(!ivac->net.connection[i].status&C_IN_USE) {
+ if((ivac->net.connection[i].fd=accept(ivac->net.l_fd,
+ (struct sockaddr *)&addr,
+ &len))==-1) {
+ perror("[ivac] inet.c: accept call");
+ return ERROR;
+ }
+ strncpy(ivac->net.connection[i].ip,inet_ntoa(addr.sin_addr),IP_DIGITS);
+ ivac->net.connection[i].port=ntohs(addr.sin_port);
+ ivac->net.connection[i].status=C_IN_USE|C_INFO_A|C_SOCKET|C_ESTABL;
+ return i;
+ }
+ }
+
+ puts("[ivac] inet: maximum connections reached");
+ return ERROR;
+}