|
From: Bob T. <bt...@us...> - 2003-10-08 02:53:58
|
Update of /cvsroot/benson/benson3/src/network
In directory sc8-pr-cvs1:/tmp/cvs-serv1085
Modified Files:
Makefile.in network.h v31_network_client.c
Log Message:
Some changes to get things really on the new network code.
Index: Makefile.in
===================================================================
RCS file: /cvsroot/benson/benson3/src/network/Makefile.in,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -r1.10 -r1.11
*** Makefile.in 8 Oct 2003 01:41:51 -0000 1.10
--- Makefile.in 8 Oct 2003 02:53:53 -0000 1.11
***************
*** 5,9 ****
CC=@CC@
LD=@LD@
! CFLAGS=-I$(top_srcdir) -I$(top_srcdir)/include @CFLAGS@
PERL_CFLAGS=@PERL_CFLAGS@
CPPFLAGS=@CPPFLAGS@ @DEFS@
--- 5,9 ----
CC=@CC@
LD=@LD@
! CFLAGS=-I. -I$(top_srcdir) -I$(top_srcdir)/include @CFLAGS@
PERL_CFLAGS=@PERL_CFLAGS@
CPPFLAGS=@CPPFLAGS@ @DEFS@
Index: network.h
===================================================================
RCS file: /cvsroot/benson/benson3/src/network/network.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** network.h 28 Sep 2003 22:26:28 -0000 1.5
--- network.h 8 Oct 2003 02:53:53 -0000 1.6
***************
*** 16,19 ****
--- 16,20 ----
#include "v31_request.h"
+ #define ID_MAXSIZE ID_MAXSIZE_v31
#define DST_MAXSIZE DST_MAXSIZE_v31
#define AGT_MAXSIZE AGT_MAXSIZE_v31
***************
*** 59,62 ****
--- 60,64 ----
extern int network_listener_accept(bn_netlisten_ctx *current_ctx, bn_netaccept_ctx *connect_ctx);
extern int network_listener_accept_cleanup(bn_netaccept_ctx *connect_ctx);
+ int ibn_tcp_connect(bn_netconnect_ctx *current_ctx);
#endif
Index: v31_network_client.c
===================================================================
RCS file: /cvsroot/benson/benson3/src/network/v31_network_client.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** v31_network_client.c 8 Oct 2003 01:41:51 -0000 1.3
--- v31_network_client.c 8 Oct 2003 02:53:53 -0000 1.4
***************
*** 11,31 ****
#include "config.h"
! struct benson_alertlist_response *bn_alertlist (char *destination, int port, char *source, int *buffer_size)
{
int ctr;
int rc = 0;
! bnet_req req_pkt;
! bnet_resp resp_hdr;
! bnet_ack resp_ack;
! struct benson_alertlist_response *alertlist_ptr;
unsigned short total_alerts;
unsigned int alertlist_size;
unsigned int total_num_alerts = 0;
! int connfd;
! FILE *sockout, *sockin;
!
/* Open up a connection */
! if((connfd = ibn_tcp_connect(destination, port)) == ERROR) {
fprintf(stderr, "ibn_tcp_connect(%s, %i) failed.\n", destination, port);
return NULL;
--- 11,33 ----
#include "config.h"
! struct benson_alertlist_response_v31 *bn_alertlist (char *destination, int port, char *source, int *buffer_size)
{
int ctr;
int rc = 0;
! bn_req_hdr req_hdr;
! bnet_req_v31 req_pkt;
! bnet_resp_v31 resp_hdr;
! bnet_ack_v31 resp_ack;
! bn_netconnect_ctx connect_ctx;
! struct benson_alertlist_response_v31 *alertlist_ptr;
unsigned short total_alerts;
unsigned int alertlist_size;
unsigned int total_num_alerts = 0;
!
! safe_strncpy(connect_ctx.destination, destination, DST_MAXSIZE);
! connect_ctx.port = port;
/* Open up a connection */
! if(ibn_tcp_connect(&connect_ctx) == ERROR) {
fprintf(stderr, "ibn_tcp_connect(%s, %i) failed.\n", destination, port);
return NULL;
***************
*** 33,41 ****
/* Open up the socket descriptor as file descriptors */
! if((sockin = fdopen(connfd, "r")) == NULL) {
perror("bn_alertlist(): fdopen(r) error");
return NULL;
}
! if((sockout = fdopen(connfd, "w")) == NULL) {
perror("bn_alertlist(): fdopen(w) error");
return NULL;
--- 35,43 ----
/* Open up the socket descriptor as file descriptors */
! if((connect_ctx.input = fdopen(connect_ctx.connfd, "r")) == NULL) {
perror("bn_alertlist(): fdopen(r) error");
return NULL;
}
! if((connect_ctx.output = fdopen(connect_ctx.connfd, "w")) == NULL) {
perror("bn_alertlist(): fdopen(w) error");
return NULL;
***************
*** 43,61 ****
/* Build alertlist request */
! req_pkt.function = htons(BENSON_ALERTLIST_v31);
! safe_strncpy(req_pkt.benson, PACKAGE, BNH_MAXSIZE_v31);
! safe_strncpy(req_pkt.version, VERSION, VER_MAXSIZE_v31);
safe_strncpy(req_pkt.inet.destination, destination, DST_MAXSIZE_v31);
safe_strncpy(req_pkt.inet.agent, source, AGT_MAXSIZE_v31);
/* Write the data, check for errors, and flush the buffer */
! rc = fwrite(&req_pkt, sizeof(bnet_req), 1, sockout);
if(rc < 1) {
perror("bn_alertlist(): fwrite() failure");
}
! fflush(sockout);
/* Read the response from the server, atleast the header portion, more should be coming. */
! rc = fread(&resp_hdr, sizeof(bnet_resp), 1, sockin);
if(rc < 1) {
perror("bn_alertlist(): fread() failure");
--- 45,67 ----
/* Build alertlist request */
! req_hdr.function = htons(BENSON_ALERTLIST_v31);
! safe_strncpy(req_hdr.benson, PACKAGE, BNH_MAXSIZE_v31);
! safe_strncpy(req_hdr.version, VERSION, VER_MAXSIZE_v31);
safe_strncpy(req_pkt.inet.destination, destination, DST_MAXSIZE_v31);
safe_strncpy(req_pkt.inet.agent, source, AGT_MAXSIZE_v31);
/* Write the data, check for errors, and flush the buffer */
! rc = fwrite(&req_hdr, sizeof(bn_req_hdr), 1, connect_ctx.output);
! if(rc < 1) {
! perror("bn_alertlist(): fwrite() failure");
! }
! rc = fwrite(&req_pkt, sizeof(bnet_req_v31), 1, connect_ctx.output);
if(rc < 1) {
perror("bn_alertlist(): fwrite() failure");
}
! fflush(connect_ctx.output);
/* Read the response from the server, atleast the header portion, more should be coming. */
! rc = fread(&resp_hdr, sizeof(bnet_resp_v31), 1, connect_ctx.input);
if(rc < 1) {
perror("bn_alertlist(): fread() failure");
***************
*** 66,70 ****
/* Allocate some memory for the alertlist that will we read soon enough */
! if((alertlist_ptr = (struct benson_alertlist_response *) malloc(sizeof(struct benson_alertlist_response) * total_num_alerts)) == NULL) {
perror("bn_alertlist(): malloc() failed");
return NULL;
--- 72,76 ----
/* Allocate some memory for the alertlist that will we read soon enough */
! if((alertlist_ptr = (struct benson_alertlist_response_v31 *) malloc(sizeof(struct benson_alertlist_response_v31) * total_num_alerts)) == NULL) {
perror("bn_alertlist(): malloc() failed");
return NULL;
***************
*** 72,76 ****
for(ctr=0; ctr < total_num_alerts; ctr++) {
! rc = fread(&alertlist_ptr[ctr], sizeof(struct benson_alertlist_response), 1, sockin);
if(rc < 1) {
perror("bn_alertlist(): fread() failure");
--- 78,82 ----
for(ctr=0; ctr < total_num_alerts; ctr++) {
! rc = fread(&alertlist_ptr[ctr], sizeof(struct benson_alertlist_response_v31), 1, connect_ctx.input);
if(rc < 1) {
perror("bn_alertlist(): fread() failure");
***************
*** 79,93 ****
}
}
! *buffer_size = sizeof(struct benson_alertlist_response) * total_num_alerts;
! rc = fwrite(&resp_ack, sizeof(bnet_ack), 1, sockout);
if(rc < 1) {
perror("bn_alertlist(): fwrite() error");
}
! fflush(sockout);
! fclose(sockout);
! fclose(sockin);
! close(connfd);
return alertlist_ptr;
}
--- 85,99 ----
}
}
! *buffer_size = sizeof(struct benson_alertlist_response_v31) * total_num_alerts;
! rc = fwrite(&resp_ack, sizeof(bnet_ack_v31), 1, connect_ctx.output);
if(rc < 1) {
perror("bn_alertlist(): fwrite() error");
}
! fflush(connect_ctx.output);
! fclose(connect_ctx.output);
! fclose(connect_ctx.input);
! close(connect_ctx.connfd);
return alertlist_ptr;
}
***************
*** 96,123 ****
char *severity, char *subsystem, char *message)
{
- int connfd;
- FILE *sockin, *sockout;
int rc = 0;
! bnet_req req_pkt;
! bnet_resp resp_hdr;
! bnet_ack resp_ack;
! if((connfd = ibn_tcp_connect(destination, port)) == ERROR) {
fprintf(stderr, "ibn_tcp_connect(%s, %i) failed.\n", destination, port);
return ERROR;
}
! if((sockin = fdopen(connfd, "r")) == NULL) {
perror("bn_send_trap(): fdopen(r) error");
return ERROR;
}
! if((sockout = fdopen(connfd, "w")) == NULL) {
perror("bn_send_trap(): fdopen(w) error");
return ERROR;
}
! req_pkt.function = htons(BENSON_TRAP_v31);
! safe_strncpy(req_pkt.benson, PACKAGE, BNH_MAXSIZE_v31);
! safe_strncpy(req_pkt.version, VERSION, VER_MAXSIZE_v31);
safe_strncpy(req_pkt.inet.destination, destination, DST_MAXSIZE_v31);
safe_strncpy(req_pkt.inet.agent, source, AGT_MAXSIZE_v31);
--- 102,132 ----
char *severity, char *subsystem, char *message)
{
int rc = 0;
! bn_req_hdr req_hdr;
! bnet_req_v31 req_pkt;
! bnet_resp_v31 resp_hdr;
! bnet_ack_v31 resp_ack;
! bn_netconnect_ctx connect_ctx;
!
! safe_strncpy(connect_ctx.destination, destination, DST_MAXSIZE);
! connect_ctx.port = port;
! if(ibn_tcp_connect(&connect_ctx) == ERROR) {
fprintf(stderr, "ibn_tcp_connect(%s, %i) failed.\n", destination, port);
return ERROR;
}
! if((connect_ctx.input = fdopen(connect_ctx.connfd, "r")) == NULL) {
perror("bn_send_trap(): fdopen(r) error");
return ERROR;
}
! if((connect_ctx.output = fdopen(connect_ctx.connfd, "w")) == NULL) {
perror("bn_send_trap(): fdopen(w) error");
return ERROR;
}
! req_hdr.function = htons(BENSON_TRAP_v31);
! safe_strncpy(req_hdr.benson, PACKAGE, BNH_MAXSIZE_v31);
! safe_strncpy(req_hdr.version, VERSION, VER_MAXSIZE_v31);
safe_strncpy(req_pkt.inet.destination, destination, DST_MAXSIZE_v31);
safe_strncpy(req_pkt.inet.agent, source, AGT_MAXSIZE_v31);
***************
*** 126,154 ****
safe_strncpy(req_pkt.data.trap.message, message, MSG_MAXSIZE_v31);
! rc = fwrite(&req_pkt, sizeof(bnet_req), 1, sockout);
! if(ferror(sockout)) {
perror("bn_send_trap(): fwrite() error");
}
! rc = fflush(sockout);
! if(feof(sockout) || ferror(sockout) || (rc != 0)) {
perror("bn_send_trap(): fflush() error");
! clearerr(sockout);
}
! rc = fread(&resp_hdr, sizeof(bnet_resp), 1, sockin);
! if(ferror(sockin)) {
perror("bn_send_trap(): fread() error");
}
! rc = fwrite(&resp_ack, sizeof(bnet_ack), 1, sockout);
! if(ferror(sockout)) {
perror("bn_send_trap(): fwrite() error");
}
! fflush(sockout);
! fclose(sockout);
! fclose(sockin);
! close(connfd);
// fprintf(stderr, "bn_send_trap identity = %s\n", resp_hdr.resp.trap.identity);
--- 135,167 ----
safe_strncpy(req_pkt.data.trap.message, message, MSG_MAXSIZE_v31);
! rc = fwrite(&req_hdr, sizeof(bn_req_hdr), 1, connect_ctx.output);
! if(ferror(connect_ctx.output)) {
! perror("bn_send_trap(): fwrite() error");
! }
! rc = fwrite(&req_pkt, sizeof(bnet_req_v31), 1, connect_ctx.output);
! if(ferror(connect_ctx.output)) {
perror("bn_send_trap(): fwrite() error");
}
! rc = fflush(connect_ctx.output);
! if(feof(connect_ctx.output) || ferror(connect_ctx.output) || (rc != 0)) {
perror("bn_send_trap(): fflush() error");
! clearerr(connect_ctx.output);
}
! rc = fread(&resp_hdr, sizeof(bnet_resp_v31), 1, connect_ctx.input);
! if(ferror(connect_ctx.input)) {
perror("bn_send_trap(): fread() error");
}
! rc = fwrite(&resp_ack, sizeof(bnet_ack_v31), 1, connect_ctx.output);
! if(ferror(connect_ctx.output)) {
perror("bn_send_trap(): fwrite() error");
}
! fflush(connect_ctx.output);
! fclose(connect_ctx.output);
! fclose(connect_ctx.input);
! close(connect_ctx.connfd);
// fprintf(stderr, "bn_send_trap identity = %s\n", resp_hdr.resp.trap.identity);
***************
*** 160,210 ****
char *identity)
{
! int connfd, ofcmode, rc;
! FILE *sockin, *sockout;
! bnet_req req_pkt;
! bnet_resp resp_hdr;
! bnet_ack resp_ack;
! if((connfd = ibn_tcp_connect(destination, port)) == ERROR) {
fprintf(stderr, "ibn_tcp_connect(%s, %i) failed.\n", destination, port);
return ERROR;
}
! if((sockin = fdopen(connfd, "r")) == NULL) {
perror("bn_acknowledge(): fdopen(r) error");
return ERROR;
}
! if((sockout = fdopen(connfd, "w")) == NULL) {
perror("bn_acknowledge(): fdopen(w) error");
return ERROR;
}
! req_pkt.function = htons(BENSON_ACKNOWLEDGE_v31);
! safe_strncpy(req_pkt.benson, PACKAGE, BNH_MAXSIZE_v31);
! safe_strncpy(req_pkt.version, VERSION, VER_MAXSIZE_v31);
safe_strncpy(req_pkt.inet.destination, destination, DST_MAXSIZE_v31);
safe_strncpy(req_pkt.inet.agent, source, AGT_MAXSIZE_v31);
safe_strncpy(req_pkt.data.acknowledge.identity, identity, ID_MAXSIZE_v31);
! rc = fwrite(&req_pkt, sizeof(bnet_req), 1, sockout);
if(rc < 1) {
perror("bn_acknowledge(): fwrite() error");
}
! fflush(sockout);
! rc = fread(&resp_hdr, sizeof(bnet_resp), 1, sockin);
if(rc < 1) {
perror("bn_acknowledge(): fread() error");
}
! rc = fwrite(&resp_ack, sizeof(bnet_ack), 1, sockout);
if(rc < 1) {
perror("bn_acknowledge(): fwrite() error");
}
! fflush(sockout);
! fclose(sockout);
! fclose(sockin);
! close(connfd);
return (int)ntohs(resp_hdr.resp.acknowledge.rc);
--- 173,227 ----
char *identity)
{
! int rc;
! bn_req_hdr req_hdr;
! bnet_req_v31 req_pkt;
! bnet_resp_v31 resp_hdr;
! bnet_ack_v31 resp_ack;
! bn_netconnect_ctx connect_ctx;
!
! safe_strncpy(connect_ctx.destination, destination, DST_MAXSIZE);
! connect_ctx.port = port;
! if((ibn_tcp_connect(&connect_ctx)) == ERROR) {
fprintf(stderr, "ibn_tcp_connect(%s, %i) failed.\n", destination, port);
return ERROR;
}
! if((connect_ctx.input = fdopen(connect_ctx.connfd, "r")) == NULL) {
perror("bn_acknowledge(): fdopen(r) error");
return ERROR;
}
! if((connect_ctx.output = fdopen(connect_ctx.connfd, "w")) == NULL) {
perror("bn_acknowledge(): fdopen(w) error");
return ERROR;
}
! req_hdr.function = htons(BENSON_ACKNOWLEDGE_v31);
! safe_strncpy(req_hdr.benson, PACKAGE, BNH_MAXSIZE_v31);
! safe_strncpy(req_hdr.version, VERSION, VER_MAXSIZE_v31);
safe_strncpy(req_pkt.inet.destination, destination, DST_MAXSIZE_v31);
safe_strncpy(req_pkt.inet.agent, source, AGT_MAXSIZE_v31);
safe_strncpy(req_pkt.data.acknowledge.identity, identity, ID_MAXSIZE_v31);
! rc = fwrite(&req_pkt, sizeof(bnet_req_v31), 1, connect_ctx.output);
if(rc < 1) {
perror("bn_acknowledge(): fwrite() error");
}
! fflush(connect_ctx.output);
! rc = fread(&resp_hdr, sizeof(bnet_resp_v31), 1, connect_ctx.input);
if(rc < 1) {
perror("bn_acknowledge(): fread() error");
}
! rc = fwrite(&resp_ack, sizeof(bnet_ack_v31), 1, connect_ctx.output);
if(rc < 1) {
perror("bn_acknowledge(): fwrite() error");
}
! fflush(connect_ctx.output);
! fclose(connect_ctx.output);
! fclose(connect_ctx.input);
! close(connect_ctx.connfd);
return (int)ntohs(resp_hdr.resp.acknowledge.rc);
***************
*** 214,240 ****
char *identity, char *status)
{
! int connfd, ofcmode, rc;
! FILE *sockin, *sockout;
! bnet_req req_pkt;
! bnet_resp resp_hdr;
! bnet_ack resp_ack;
! if((connfd = ibn_tcp_connect(destination, port)) == ERROR) {
fprintf(stderr, "ibn_tcp_connect(%s, %i) failed.\n", destination, port);
return ERROR;
}
! if((sockin = fdopen(connfd, "r")) == NULL) {
perror("bn_update_status(): fdopen(r) error");
return ERROR;
}
! if((sockout = fdopen(connfd, "w")) == NULL) {
perror("bn_update_status(): fdopen(w) error");
return ERROR;
}
! req_pkt.function = htons(BENSON_UPDATE_STATUS_v31);
! safe_strncpy(req_pkt.benson, PACKAGE, BNH_MAXSIZE_v31);
! safe_strncpy(req_pkt.version, VERSION, VER_MAXSIZE_v31);
safe_strncpy(req_pkt.inet.destination, destination, DST_MAXSIZE_v31);
safe_strncpy(req_pkt.inet.agent, source, AGT_MAXSIZE_v31);
--- 231,261 ----
char *identity, char *status)
{
! int rc;
! bn_req_hdr req_hdr;
! bnet_req_v31 req_pkt;
! bnet_resp_v31 resp_hdr;
! bnet_ack_v31 resp_ack;
! bn_netconnect_ctx connect_ctx;
!
! safe_strncpy(connect_ctx.destination, destination, DST_MAXSIZE);
! connect_ctx.port = port;
! if(ibn_tcp_connect(&connect_ctx) == ERROR) {
fprintf(stderr, "ibn_tcp_connect(%s, %i) failed.\n", destination, port);
return ERROR;
}
! if((connect_ctx.input = fdopen(connect_ctx.connfd, "r")) == NULL) {
perror("bn_update_status(): fdopen(r) error");
return ERROR;
}
! if((connect_ctx.output = fdopen(connect_ctx.connfd, "w")) == NULL) {
perror("bn_update_status(): fdopen(w) error");
return ERROR;
}
! req_hdr.function = htons(BENSON_UPDATE_STATUS_v31);
! safe_strncpy(req_hdr.benson, PACKAGE, BNH_MAXSIZE_v31);
! safe_strncpy(req_hdr.version, VERSION, VER_MAXSIZE_v31);
safe_strncpy(req_pkt.inet.destination, destination, DST_MAXSIZE_v31);
safe_strncpy(req_pkt.inet.agent, source, AGT_MAXSIZE_v31);
***************
*** 244,267 ****
printf("%s %s\n", identity, status);
! rc = fwrite(&req_pkt, sizeof(bnet_req), 1, sockout);
if(rc < 1) {
perror("bn_update_status(): fwrite() error");
}
! fflush(sockout);
! rc = fread(&resp_hdr, sizeof(bnet_resp), 1, sockin);
if(rc < 1) {
perror("bn_update_status(): fread() error");
}
! rc = fwrite(&resp_ack, sizeof(bnet_ack), 1, sockout);
if(rc < 1) {
perror("bn_update_status(): fwrite() error");
}
! fflush(sockout);
! fclose(sockout);
! fclose(sockin);
! close(connfd);
return (int)ntohs(resp_hdr.resp.update_status.rc);
--- 265,293 ----
printf("%s %s\n", identity, status);
! rc = fwrite(&req_hdr, sizeof(bn_req_hdr), 1, connect_ctx.output);
! if(rc < 1) {
! perror("bn_update_status(): fwrite() error");
! }
! fflush(connect_ctx.output);
! rc = fwrite(&req_pkt, sizeof(bnet_req_v31), 1, connect_ctx.output);
if(rc < 1) {
perror("bn_update_status(): fwrite() error");
}
! fflush(connect_ctx.output);
! rc = fread(&resp_hdr, sizeof(bnet_resp_v31), 1, connect_ctx.input);
if(rc < 1) {
perror("bn_update_status(): fread() error");
}
! rc = fwrite(&resp_ack, sizeof(bnet_ack_v31), 1, connect_ctx.output);
if(rc < 1) {
perror("bn_update_status(): fwrite() error");
}
! fflush(connect_ctx.output);
! fclose(connect_ctx.output);
! fclose(connect_ctx.input);
! close(connect_ctx.connfd);
return (int)ntohs(resp_hdr.resp.update_status.rc);
|