* Version $Id$
*/
/*
- Copyright (C) 2000-2004 Kern Sibbald and John Walker
+ Copyright (C) 2000-2005 Kern Sibbald
- 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 free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ version 2 as amended with additional clauses defined in the
+ file LICENSE in the main source directory.
- This library is distributed in the hope that it will be useful,
+ This program 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
- Lesser General Public License for more details.
-
- 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.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ the file LICENSE for additional details.
*/
uint32_t in_msg_no; /* input message number */
uint32_t out_msg_no; /* output message number */
int fd; /* socket file descriptor */
+ TLS_CONNECTION *tls; /* associated tls connection */
int32_t msglen; /* message length */
int b_errno; /* bsock errno */
int port; /* desired port */
+ int blocking; /* blocking state (0 = nonblocking, 1 = blocking) */
volatile int errors; /* incremented for each error on socket */
volatile bool suppress_error_msgs: 1; /* set to suppress error messages */
volatile bool timed_out: 1; /* timed out in read/write */
FILE *spool_fd; /* spooling file */
JCR *jcr; /* jcr or NULL for error msgs */
struct sockaddr client_addr; /* client's IP address */
+ struct sockaddr_in peer_addr; /* peer's IP address */
};
/* Signal definitions for use in bnet_sig() */
BNET_HB_RESPONSE = -7, /* Only response permited to HB */
BNET_PROMPT = -8, /* Prompt for UA */
BNET_BTIME = -9, /* Send UTC btime */
- BNET_BREAK = -10 /* Stop current command -- ctl-c */
+ BNET_BREAK = -10, /* Stop current command -- ctl-c */
+ BNET_START_SELECT = -11, /* Start of a selection list */
+ BNET_END_SELECT = -12 /* End of a select list */
};
#define BNET_SETBUF_READ 1 /* Arg for bnet_set_buffer_size */
#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
+ * TLS enabling values. Value is important for comparison, ie:
+ * if (tls_remote_need < BNET_TLS_REQUIRED) { ... }
*/
-typedef struct s_bpkt {
- char *id; /* String identifier or name of field */
- uint8_t type; /* field type */
- uint32_t len; /* field length for string, name, bytes */
- void *value; /* pointer to value */
-} BPKT;
+#define BNET_TLS_NONE 0 /* cannot do TLS */
+#define BNET_TLS_OK 1 /* can do, but not required on my end */
+#define BNET_TLS_REQUIRED 2 /* TLS is required */
-/*
- * These are the data types that can be sent.
- * For all values other than string, the storage space
- * is assumed to be allocated in the receiving packet.
- * For BP_STRING if the *value is non-zero, it is a
- * pointer to a POOLMEM buffer, and the Memory Pool
- * routines will be used to assure that the length is
- * adequate. NOTE!!! This pointer will be changed
- * if the memory is reallocated (sort of like Mmsg(&pool)
- * does). If the pointer is NULL, a POOLMEM
- * buffer will be allocated.
- */
-#define BP_EOF 0 /* end of file */
-#define BP_CHAR 1 /* Character */
-#define BP_INT32 1 /* 32 bit integer */
-#define BP_UINT32 3 /* Unsigned 32 bit integer */
-#define BP_INT64 4 /* 64 bit integer */
-#define BP_STRING 5 /* string */
-#define BP_NAME 6 /* Name string -- limited length */
-#define BP_BYTES 7 /* Binary bytes */
-#define BP_FLOAT32 8 /* 32 bit floating point */
-#define BP_FLOAT64 9 /* 64 bit floating point */