]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/bsock.h
Add extern C to callback functions
[bacula/bacula] / bacula / src / lib / bsock.h
index 89910344b5af411f8dab1ba66cc1037fa47405c7..39fc21af994192afe514ab87e91d5a562d672d5b 100644 (file)
@@ -12,7 +12,7 @@
  *   Version $Id$
  */
 /*
-   Copyright (C) 2000, 2001, 2002 Kern Sibbald and John Walker
+   Copyright (C) 2000-2004 Kern Sibbald and John Walker
 
    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
@@ -37,36 +37,40 @@ struct BSOCK {
    uint32_t out_msg_no;               /* output message number */
    int fd;                            /* socket file descriptor */
    int32_t msglen;                    /* message length */
-   int port;                          /* desired port */
-   volatile int errors;               /* set if errors on socket */
-   volatile int suppress_error_msgs;  /* set to suppress error messages */
    int b_errno;                       /* bsock errno */
+   int port;                          /* desired port */
+   volatile bool errors: 1;           /* set if errors on socket */
+   volatile bool suppress_error_msgs: 1; /* set to suppress error messages */
+   volatile bool timed_out: 1;        /* timed out in read/write */
+   volatile bool terminated: 1;       /* set when BNET_TERMINATE arrives */
+   bool duped: 1;                     /* set if duped BSOCK */
+   bool spool: 1;                     /* set for spooling */
    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 */
+   volatile time_t timeout;           /* timeout BSOCK after this interval */
    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 */
    BSOCK *next;                       /* next BSOCK if duped */
-   int spool;                         /* set for spooling */
    FILE *spool_fd;                    /* spooling file */
    JCR *jcr;                          /* jcr or NULL for error msgs */
+   struct sockaddr_in client_addr;    /* client's IP address */
 };      
 
 /* Signal definitions for use in bnet_sig() */
-#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 */
-#define BNET_BTIME       -9           /* Send UTC btime */
+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 */