|
Re: tcp_connect hangs: msg#00042network.lwip.general
Never mind. I discovered my stupid mistake. I was not allocating enough memory for my state structure (lpr_state_info vs. *lpr_state_info). Sorry. On Wed, 2006-12-20 at 09:49, Carl D. Blake wrote: > I'm using lwip with rawapi. I've successfully got a listen to work with > the system. However, when I attempt to connect to another computer the > call to tcp_connect hangs. No callbacks are called and the entire > system stops. The code sequence is: > > { > struct ip_addr ipa; > int ret = 0; > err_t err; > > lpr_state_info = mem_malloc( sizeof( lpr_state_info ) ); > if( lpr_state_info != NULL ) { > lpr_state_info->tpp = tcp_new(); > if( lpr_state_info->tpp != NULL ) { > err = tcp_bind( lpr_state_info->tpp, IP_ADDR_ANY, 731 ); > if( err == ERR_OK ) { > IP4_ADDR( &ipa, 10, 0, 1, 168 ); > err = tcp_connect( lpr_state_info->tpp, &ipa, 10001, > connect_cb ); > if( err != ERR_OK ) { > mem_free( lpr_state_info ); > lpr_state_info = NULL; > ret = -1; > } > } else { > mem_free( lpr_state_info ); > lpr_state_info = NULL; > ret = -1; > } > } else { > mem_free( lpr_state_info ); > lpr_state_info = NULL; > ret = -1; > } > } else { > ret = -1; > } > > return ret; > } > > I am running this on a FreeScale MPC8271 processor (big endian). My > lwipopts.h file is: > > #ifndef __LWIPOPTS_H__ > #define __LWIPOPTS_H__ > > /* #define LWIP_DEBUG */ > /* #define TCP_DEBUG DBG_ON */ > > #define NO_SYS 1 > #define LWIP_CALLBACK_API 1 > > /* ---------- Memory options ---------- */ > /* MEM_ALIGNMENT: should be set to the alignment of the CPU for which > lwIP is compiled. 4 byte alignment -> define MEM_ALIGNMENT to 4, 2 > byte alignment -> define MEM_ALIGNMENT to 2. */ > /* tried 4 byte alignment, but that seems to cause problems with pbuf > * routines */ > #define MEM_ALIGNMENT 4 > > /* MEM_SIZE: the size of the heap memory. If the application will send > a lot of data that needs to be copied, this should be set high. */ > #define MEM_SIZE 100 * 1024 > > /* The following four are used only with the sequential API and can be > set to 0 if the application only will use the raw API. */ > /* MEMP_NUM_NETBUF: the number of struct netbufs. */ > #define MEMP_NUM_NETBUF 0 > /* MEMP_NUM_NETCONN: the number of struct netconns. */ > #define MEMP_NUM_NETCONN 0 > /* MEMP_NUM_APIMSG: the number of struct api_msg, used for > communication between the TCP/IP stack and the sequential > programs. */ > #define MEMP_NUM_API_MSG 0 > /* MEMP_NUM_TCPIPMSG: the number of struct tcpip_msg, which is used > for sequential API communication and incoming packets. Used in > src/api/tcpip.c. */ > #define MEMP_NUM_TCPIP_MSG 0 > > #define PBUF_POLL_SIZE 30 > #define PBUF_POOL_BUFSIZE 1536 > #define PBUF_LINK_HLEN 16 > > #define TCP_MSS 1476 > #define TCP_SND_BUF (30 * 1024) > #define TCP_WND (16 * 1024) > > #endif /* __LWIPOPTS_H__ */ > > > > > _______________________________________________ > lwip-users mailing list > lwip-users-qX2TKyscuCcdnm+yROfE0A@xxxxxxxxxxxxxxxx > http://lists.nongnu.org/mailman/listinfo/lwip-users > |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | tcp_connect hangs: 00042, Carl D. Blake |
|---|---|
| Next by Date: | Re: lwip 1.2.0 released?: 00042, Leon Woestenberg |
| Previous by Thread: | tcp_connect hangsi: 00042, Carl D. Blake |
| Next by Thread: | RFC: New project leadership needed for lwIP. Please step up.: 00042, Leon Woestenberg |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |