milan_va
Thank you for answer
please check my irc client connection
void MakeTCPPacket(s16 cmd, char *Data, u32 Len)
{
switch (cmd) {
case START_CMD:
sprintf( Data,"HELLO\n");
break;
case PING_CMD:
sprintf( Data,"PING %s\n", client_cfg.server);
break;
case PONG_CMD:
sprintf( Data,"PONG %s\n", client_cfg.server);
break;
case NICK_CMD:
sprintf( Data,"NICK %s\n",client_cfg.nick );
break;
case JOIN_CMD:
sprintf( Data,"JOIN #%s\n",client_cfg.channel );
break;
case USER_CMD:
sprintf( Data,"USER %s * * :cbvm02\n",client_cfg.nick );
break;
default:
sprintf(Data,"PING %s\n",client_cfg.server);
break;
Len=strlen(Data)-1;
}
}
////***********************
void IRCLogin()
{
u32 Len=0;
u32 st1=wip_getState(socket);
imm_log(" wip state =%d \r\n",st1);
s32 r0= wip_write(socket, TCPSendBuf,Len);
// imm_log("wip write \r\n");
imm_log("wip write ret=%d, %s\r\n",r0,TCPSendBuf);
MakeTCPPacket( NICK_CMD , TCPSendBuf,Len);
s32 r1=wip_write(socket, TCPSendBuf,Len);
imm_log("wip write ret=%d, %s\r\n",r1,TCPSendBuf);
MakeTCPPacket( USER_CMD , TCPSendBuf,Len);
s32 r2=wip_write(socket, TCPSendBuf,Len);
imm_log("wip write ret=%d, %s\r\n",r2,TCPSendBuf);
MakeTCPPacket( JOIN_CMD , TCPSendBuf,Len);
s32 r3=wip_write(socket, TCPSendBuf,Len);
imm_log("wip write ret=%d, %s\r\n",r3,TCPSendBuf);
}
//// TCP client control handler
void TcpClientEVH( wip_event_t *ev, void *ctx)
{
u8 buffer[1520];
s32 nread;
u32 Len=0;
// imm_log("TCP client EVENT = %d\r\n");
switch (ev->kind) {
case WIP_CEV_OPEN:
imm_log("TCP client EVENT: OPEN\r\n");
//IRCLogin();
// Ping_tmr=adl_tmrSubscribe ( TRUE, 100, ADL_TMR_TYPE_100MS, PING_TimerHandler );
break;
case WIP_CEV_READ:
imm_log("TCP client EVENT: READ\r\n");
nread = wip_read( socket, buffer, sizeof( buffer) - 1);
buffer[nread] = '\0';
if (nread>1500) buffer[1500] = 0;
imm_log(" Read from socket %d bytes\r\n |%s|",nread, buffer );
break;
case WIP_CEV_WRITE:
imm_log("TCP client EVENT: WRITE\r\n");
if (!connected)
{
//Login_tmr=adl_tmrSubscribe ( TRUE, 30, ADL_TMR_TYPE_100MS, Login_TimerHandler );
IRCLogin();
connected=true;
}
break;
case WIP_CEV_DONE:
imm_log("TCP client EVENT: DONE\r\n");
break;
case WIP_CEV_ERROR:
imm_log("TCP client EVENT: ERROR\r\n");
break;
case WIP_CEV_PEER_CLOSE:
imm_log("TCP client EVENT: CLOSE BY PEER\r\n");
wip_close(socket);
//adl_tmrUnSubscribe(Ping_tmr,PING_TimerHandler,ADL_TMR_TYPE_100MS);
//adl_tmrUnSubscribe(Ping_tmr,);
break;
case WIP_CEV_PING:
imm_log("TCP client EVENT: PING\r\n");
break;
default:
break;
}
}
Best regards