+
+/* 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
+ */
+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;
+
+/*
+ * 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 */