if(client->flags & SOCKET_FLAG_SSL) {
ssl_connect(client);
+ client->flags |= SOCKET_FLAG_HAVE_SSL;
}
//send the IRC Headers
if(client->flags & SOCKET_FLAG_SSL) {
ssl_connect(client);
+ client->flags |= SOCKET_FLAG_HAVE_SSL;
}
if(client == NULL) return 0;
if((client->flags & SOCKET_FLAG_CONNECTED))
close(client->sock);
- if(client->flags & SOCKET_FLAG_SSL)
+ if(client->flags & SOCKET_FLAG_HAVE_SSL)
ssl_disconnect(client);
struct ClientSocket *sock, *last_sock = NULL;
for (sock = sockets->data; sock; sock = sock->next) {
int write_socket_force(struct ClientSocket *client, char* msg, int len) {
printf("[send %d] %s", len, msg);
- if(!(client->flags & SOCKET_FLAG_SSL) || ssl_write(client, msg, len) == -2) {
+ if(!(client->flags & SOCKET_FLAG_HAVE_SSL) || ssl_write(client, msg, len) == -2) {
#ifdef WIN32
send(client->sock, msg, len, 0);
#else
for (sock = sockets->data; sock; sock = sock->next) {
if((sock->flags & SOCKET_FLAG_CONNECTED) && FD_ISSET(sock->sock, &fds)) {
if(sock->bufferpos != 0) {
- if(!(sock->flags & SOCKET_FLAG_SSL) || (bytes = ssl_read(sock, buffer, sizeof(buffer))) == -2) {
+ if(!(sock->flags & SOCKET_FLAG_HAVE_SSL) || (bytes = ssl_read(sock, buffer, sizeof(buffer))) == -2) {
#ifdef WIN32
bytes = recv(sock->sock, buffer, sizeof(buffer), 0);
#else
sock->bufferpos += i;
}
} else {
- if(!(sock->flags & SOCKET_FLAG_SSL) || (bytes = ssl_read(sock, sock->buffer, sizeof(sock->buffer))) == -2) {
+ if(!(sock->flags & SOCKET_FLAG_HAVE_SSL) || (bytes = ssl_read(sock, sock->buffer, sizeof(sock->buffer))) == -2) {
#ifdef WIN32
bytes = recv(sock->sock, sock->buffer, sizeof(sock->buffer), 0);
#else
if(sock->queue)
queue_destroy(sock);
close(sock->sock);
- if(sock->flags & SOCKET_FLAG_SSL)
+ if(sock->flags & SOCKET_FLAG_HAVE_SSL)
ssl_disconnect(sock);
} else {
sock->traffic_in += bytes;
next = client->next;
if((client->flags & SOCKET_FLAG_CONNECTED))
close(client->sock);
- if(client->flags & SOCKET_FLAG_SSL)
+ if(client->flags & SOCKET_FLAG_HAVE_SSL)
ssl_disconnect(client);
if(client->queue)
queue_destroy(client);