]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/bsock.h
Use the command line utility dropdb instead of the psql command
[bacula/bacula] / bacula / src / lib / bsock.h
index 54d1ed3d5c80e6ac8a54e2d0ec97aff021521001..4d4b49dd84bc142cffca1a181113106ac6129c54 100644 (file)
 /*
    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 *next;                       /* next BSOCK if duped */
    int spool;                         /* set for spooling */
    FILE *spool_fd;                    /* spooling file */
-   void *jcr;                         /* jcr or NULL for error msgs */
-} BSOCK;
+   JCR *jcr;                          /* jcr or NULL for error msgs */
+};      
 
 /* Signal definitions for use in bnet_sig() */
-#define BNET_NONO         0           /* DO NOT USE, remains for compatibility */
-#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 */
-#define BNET_TERMINATE   -4           /* Conversation terminated, doing close() */
-#define BNET_POLL        -5           /* Poll request, I'm hanging on a read */
-#define BNET_HEARTBEAT   -6           /* Heartbeat Response requested */
-#define BNET_HB_RESPONSE -7           /* Only response permited to HB */
-#define BNET_PROMPT      -8           /* Prompt for UA */
+enum {
+   BNET_EOD            = -1,          /* End of data stream, new data may follow */
+   BNET_EOD_POLL       = -2,          /* End of data and poll all in one */
+   BNET_STATUS         = -3,          /* Send full status */
+   BNET_TERMINATE      = -4,          /* Conversation terminated, doing close() */
+   BNET_POLL           = -5,          /* Poll request, I'm hanging on a read */
+   BNET_HEARTBEAT      = -6,          /* Heartbeat Response requested */
+   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 */
+};
 
 #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
  */