1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
...
char buf[PACKET_SIZE];
string message[] = {
"authinfo user XXXX@free.fr\n",
"authinfo pass YYYY\n"
} ;
for (int i=0;i<sizeof(message)/sizeof *message;++i){
buf[0] = 0x00 ;
ReadBuff(GetSocketId(),buf,(PACKET_SIZE)) ;
// WRITE SOCKET
if (int j = (write(GetSocketId(),message[i].c_str(),message[i].length()))<0){
cerr << "Impossible d'ecrire dans le socket !" << endl;
} else {
if (DEBUG)
cout << "Envoi de la commande : code("<< j << ") " << message[i] << endl;
}
}
int Nntp::ReadBuff(int socket_id,char *buffer, unsigned int length) {
int nl, nr ;
nl = length ;
while (nl > 0){
memset(buffer, 0x0, PACKET_SIZE) ;
nr = read(socket_id,buffer,nl) ;
if (nr < 0) return nr ;
else if (nr == 0) {
cout << buffer ;
break ;
} else {
cout << buffer ;
}
nl -= nr ;
buffer += nr ;
if ( *(buffer-1)=='\n' && *(buffer-2) == '\r'){
break ;
}
break ;
}
*buffer = 0x00;
return (0);
} |
Partager