[devkitppc/libogc/GameCube] lwIP broken

Post Reply
emu_kidid
Posts: 3
Joined: Thu Jun 19, 2014 11:34 pm

[devkitppc/libogc/GameCube] lwIP broken

Post by emu_kidid » Thu Jun 19, 2014 11:36 pm

lwIP is broken at the moment due to "recent" queue changes. Please fix as the BBA is not usable at all on the latest libOGC.

WinterMute
Site Admin
Posts: 1845
Joined: Tue Aug 09, 2005 3:21 am
Location: UK
Contact:

Re: [devkitppc/libogc/GameCube] lwIP broken

Post by WinterMute » Wed Jul 02, 2014 11:02 am

Can you give us some more details of what's going wrong?
Help keep devkitPro toolchains free, Donate today

Personal Blog

emu_kidid
Posts: 3
Joined: Thu Jun 19, 2014 11:34 pm

Re: [devkitppc/libogc/GameCube] lwIP broken

Post by emu_kidid » Mon Jul 07, 2014 10:03 am

MQ_Send has issues in network.c, I've made these changes locally and it's working fine.

Code: Select all

@@ -666,11 +666,11 @@ static u8_t recv_raw(void *arg,struct raw_pcb *pcb,struct pbuf *p,struct ip_addr
 		buf->fromport = pcb->protocol;
 		
 		conn->recvavail += p->tot_len;
 		if(conn->callback)
 			(*conn->callback)(conn,NETCONN_EVTRCVPLUS,p->tot_len);
-		MQ_Send(conn->recvmbox,&buf,MQ_MSG_BLOCK);
+		MQ_Send(conn->recvmbox,buf,MQ_MSG_BLOCK);
 	}
 	return 0;
 }
 
 static void recv_udp(void *arg,struct udp_pcb *pcb,struct pbuf *p,struct ip_addr *addr,u16 port)
@@ -696,11 +696,11 @@ static void recv_udp(void *arg,struct udp_pcb *pcb,struct pbuf *p,struct ip_addr
 
 		conn->recvavail += p->tot_len;
 		if(conn->callback)
 			(*conn->callback)(conn,NETCONN_EVTRCVPLUS,p->tot_len);
 		
-		MQ_Send(conn->recvmbox,&buf,MQ_MSG_BLOCK);
+		MQ_Send(conn->recvmbox,buf,MQ_MSG_BLOCK);
 	}
 }
 
 static err_t recv_tcp(void *arg,struct tcp_pcb *pcb,struct pbuf *p,err_t err)
 {
@@ -722,11 +722,11 @@ static err_t recv_tcp(void *arg,struct tcp_pcb *pcb,struct pbuf *p,err_t err)
 		} else len = 0;
 
 		if(conn->callback)
 			(*conn->callback)(conn,NETCONN_EVTRCVPLUS,len);
 
-		MQ_Send(conn->recvmbox,&p,MQ_MSG_BLOCK);
+		MQ_Send(conn->recvmbox,p,MQ_MSG_BLOCK);
 	}
 	return ERR_OK;
 }
 
 static void err_tcp(void *arg,err_t err)
@@ -833,11 +833,11 @@ static err_t accept_func(void *arg,struct tcp_pcb *newpcb,err_t err)
 	}
 	newconn->callback = conn->callback;
 	newconn->socket = -1;
 	newconn->recvavail = 0;
 
-	MQ_Send(mbox,&newconn,MQ_MSG_BLOCK);
+	MQ_Send(mbox,newconn,MQ_MSG_BLOCK);
 	return ERR_OK;
 }
 
 static void do_newconn(struct apimsg_msg *msg)
 {
@@ -1259,11 +1259,11 @@ static err_t net_input(struct pbuf *p,struct netif *inp)
 	}
 
 	msg->type = NETMSG_INPUT;
 	msg->msg.inp.p = p;
 	msg->msg.inp.net = inp;
-	MQ_Send(netthread_mbox,&msg,MQ_MSG_BLOCK);
+	MQ_Send(netthread_mbox,msg,MQ_MSG_BLOCK);
 	return ERR_OK;
 }
 
 static void net_apimsg(struct api_msg *apimsg)
 {
@@ -1276,11 +1276,11 @@ static void net_apimsg(struct api_msg *apimsg)
 		return;
 	}
 
 	msg->type = NETMSG_API;
 	msg->msg.apimsg = apimsg;
-	MQ_Send(netthread_mbox,&msg,MQ_MSG_BLOCK);
+	MQ_Send(netthread_mbox,msg,MQ_MSG_BLOCK);
 }
 
 static err_t net_callback(void (*f)(void *),void *ctx)
 {
 	struct net_msg *msg = memp_malloc(MEMP_TCPIP_MSG);
@@ -1293,11 +1293,11 @@ static err_t net_callback(void (*f)(void *),void *ctx)
 	}
 	
 	msg->type = NETMSG_CALLBACK;
 	msg->msg.cb.f = f;
 	msg->msg.cb.ctx = ctx;
-	MQ_Send(netthread_mbox,&msg,MQ_MSG_BLOCK);
+	MQ_Send(netthread_mbox,msg,MQ_MSG_BLOCK);
 	return ERR_OK;
 }
 
 static void* net_thread(void *arg)
 {


Post Reply

Who is online

Users browsing this forum: No registered users and 9 guests