00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00012
00013 #include "upnptaskevent.h"
00014 #include "mythlogging.h"
00015
00018
00019
00020
00023
00025
00027
00028 UPnpEventTask::UPnpEventTask( QHostAddress peerAddress,
00029 int nPeerPort,
00030 QByteArray *pPayload )
00031 {
00032 m_PeerAddress = peerAddress;
00033 m_nPeerPort = nPeerPort;
00034 m_pPayload = pPayload;
00035 }
00036
00038
00040
00041 UPnpEventTask::~UPnpEventTask()
00042 {
00043 if (m_pPayload != NULL)
00044 delete m_pPayload;
00045 }
00046
00048
00050
00051 void UPnpEventTask::Execute( TaskQueue * )
00052 {
00053 if (m_pPayload == NULL)
00054 return;
00055
00056 MSocketDevice sockDev( MSocketDevice::Stream );
00057 BufferedSocketDevice sock ( &sockDev );
00058
00059 sockDev.setBlocking( true );
00060
00061 if (sock.Connect( m_PeerAddress, m_nPeerPort ))
00062 {
00063
00064
00065
00066
00067 if (sock.WriteBlockDirect( m_pPayload->data(),
00068 m_pPayload->size() ) != -1)
00069 {
00070
00071
00072
00073
00074 QString sResponseLine = sock.ReadLine( 3000 );
00075
00076 if ( sResponseLine.length() > 0)
00077 {
00078 #if 0
00079 if (sResponseLine.contains("200 OK"))
00080 {
00081 #endif
00082 LOG(VB_UPNP, LOG_INFO,
00083 QString("UPnpEventTask::Execute - NOTIFY to "
00084 "%1:%2 returned %3.")
00085 .arg(m_PeerAddress.toString()) .arg(m_nPeerPort)
00086 .arg(sResponseLine));
00087 #if 0
00088 }
00089 #endif
00090 }
00091 else
00092 {
00093 LOG(VB_UPNP, LOG_ERR,
00094 QString("UPnpEventTask::Execute - Timeout reading first "
00095 "line of reply from %1:%2.")
00096 .arg(m_PeerAddress.toString()) .arg(m_nPeerPort));
00097 }
00098 }
00099 else
00100 LOG(VB_UPNP, LOG_ERR,
00101 QString("UPnpEventTask::Execute - Error sending to %1:%2.")
00102 .arg(m_PeerAddress.toString()) .arg(m_nPeerPort));
00103
00104 sock.Close();
00105 }
00106 else
00107 {
00108 LOG(VB_UPNP, LOG_ERR,
00109 QString("UPnpEventTask::Execute - Error sending to %1:%2.")
00110 .arg(m_PeerAddress.toString()) .arg(m_nPeerPort));
00111 }
00112 }
00113