memcpy(&serv_addr.sin_addr.s_addr, ip_host->h_addr_list[0],
sizeof(&serv_addr.sin_addr.s_addr));
} else {
-#ifdef HAVE_HSTRERROR
tlog(TL_CRIT,"gethostbyname: %s - %s", host, hstrerror(h_errno));
-#else
- tlog(TL_CRIT,"gethostbyname: %s - %s", host, strerror(errno));
-#endif
close(sockfd);
return -1;
}
tlog(TL_ALARM, "Got message %d bytes (should be al least %d)", n, TCMSGHDRSZ );
return CS_AGAIN;
}
+
+ /*
+ * convert from network byteorder
+ */
+ pmsg->len = ntohl(pmsg->len);
+ pmsg->type = ntohl(pmsg->type);
if ( pmsg->len > MSGMAXSIZE ) {
tlog(TL_ALARM, "Messages (%d bytes) is too big", pmsg->len);
/* send */
u_int32_t
TC_sendMsg( Msg *msg ) {
+ int msglen;
+
if ( msg->msg == NULL || msg->msg->len <=0 )
return CS_OK;
memcpy(&msg->host_addr.sin_addr.s_addr, ip_host->h_addr_list[0],
sizeof(&msg->host_addr.sin_addr.s_addr));
} else {
-#ifdef HAVE_HSTRERROR
tlog(TL_CRIT,"gethostbyname: %s - %s", msg->host, hstrerror(h_errno));
-#else
- tlog(TL_CRIT,"gethostbyname: %s - %s", msg->host, strerror(errno));
-#endif
close(msg->sockfd);
msg->sockfd=-1;
return CS_ERROR;
msg->host_addr.sin_port = htons(msg->port);
}
- if (sendto(msg->sockfd, (void*)msg->msg, msg->msg->len, 0, (struct sockaddr *) &(msg->host_addr), sizeof(msg->host_addr)) != msg->msg->len) {
+ /*
+ * convert to network byteorder
+ */
+ msglen = msg->msg->len;
+ msg->msg->len = htonl(msg->msg->len);
+ msg->msg->type = htonl(msg->msg->type);
+
+ if (sendto(msg->sockfd, (void*)msg->msg, msglen, 0, (struct sockaddr *) &(msg->host_addr), sizeof(msg->host_addr)) != msglen) {
tlog(TL_CRIT,"Can't send message to %s:%d : %s", msg->host, msg->port, strerror(errno));
close(msg->sockfd);
msg->sockfd=-1;