X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Flib%2Fbsock.h;h=92aa2596c5fad3e5fe090291aa6329fc80ca5cbc;hb=5fab1f6fa93fa0b2c8248c055d5b77a09e1dbab7;hp=cbb79513eff487b54966cd1bd6b894b11010c3a8;hpb=f3b33c863e725b60b4e3fe1930408833e6ccd64e;p=bacula%2Fbacula diff --git a/bacula/src/lib/bsock.h b/bacula/src/lib/bsock.h index cbb79513ef..92aa2596c5 100644 --- a/bacula/src/lib/bsock.h +++ b/bacula/src/lib/bsock.h @@ -14,47 +14,50 @@ /* Copyright (C) 2000, 2001, 2002 Kern Sibbald and John Walker - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of - the License, or (at your option) any later version. + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. - You should have received a copy of the GNU General Public - License along with this program; if not, write to the Free - Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. */ -typedef struct s_bsock { +struct BSOCK { uint64_t read_seqno; /* read sequence number */ - uint32_t in_msg_no; /* intput message number */ + uint32_t in_msg_no; /* input message number */ uint32_t out_msg_no; /* output message number */ int fd; /* socket file descriptor */ int32_t msglen; /* message length */ int port; /* desired port */ - int errors; /* set if errors on socket */ + volatile int errors; /* set if errors on socket */ + volatile int suppress_error_msgs; /* set to suppress error messages */ int b_errno; /* bsock errno */ - time_t timer_start; /* time started read/write */ - int timed_out; /* timed out in read/write */ - int timeout; /* time out after this value */ - int terminated; /* set when BNET_TERMINATE arrives */ + volatile time_t timer_start; /* time started read/write */ + volatile int timed_out; /* timed out in read/write */ + volatile int timeout; /* time out after this value */ + volatile int terminated; /* set when BNET_TERMINATE arrives */ int duped; /* set if duped BSOCK */ POOLMEM *msg; /* message pool buffer */ char *who; /* Name of daemon to which we are talking */ char *host; /* Host name/IP */ POOLMEM *errmsg; /* edited error message (to be implemented) */ RES *res; /* Resource to which we are connected */ - struct s_bsock *next; /* next BSOCK if duped */ -} BSOCK; + BSOCK *next; /* next BSOCK if duped */ + int spool; /* set for spooling */ + FILE *spool_fd; /* spooling file */ + JCR *jcr; /* jcr or NULL for error msgs */ +}; /* Signal definitions for use in bnet_sig() */ -#define BNET_EOF 0 /* Deprecated, use BNET_EOD */ #define BNET_EOD -1 /* End of data stream, new data may follow */ #define BNET_EOD_POLL -2 /* End of data and poll all in one */ #define BNET_STATUS -3 /* Send full status */ @@ -67,6 +70,16 @@ typedef struct s_bsock { #define BNET_SETBUF_READ 1 /* Arg for bnet_set_buffer_size */ #define BNET_SETBUF_WRITE 2 /* Arg for bnet_set_buffer_size */ +/* Return status from bnet_recv() */ +#define BNET_SIGNAL -1 +#define BNET_HARDEOF -2 +#define BNET_ERROR -3 + +/* SSL enabling values */ +#define BNET_SSL_NONE 0 /* cannot do SSL */ +#define BNET_SSL_OK 1 /* can do, but not required on my end */ +#define BNET_SSL_REQUIRED 2 /* SSL is required */ + /* * This is the structure of the in memory BPKT */ @@ -99,4 +112,3 @@ typedef struct s_bpkt { #define BP_BYTES 7 /* Binary bytes */ #define BP_FLOAT32 8 /* 32 bit floating point */ #define BP_FLOAT64 9 /* 64 bit floating point */ -