+ struct Gline *gl_next; /**< Next G-line in linked list. */
+ struct Gline**gl_prev_p; /**< Previous pointer to this G-line. */
+ char *gl_user; /**< Username mask (or channel/realname mask). */
+ char *gl_host; /**< Host prtion of mask. */
+ char *gl_reason; /**< Reason for G-line. */
+ time_t gl_expire; /**< Expiration timestamp. */
+ time_t gl_lastmod; /**< Last modification timestamp. */
+ time_t gl_lifetime; /**< Record expiration timestamp. */
+ struct irc_in_addr gl_addr; /**< IP address (for IP-based G-lines). */
+ unsigned char gl_bits; /**< Usable bits in gl_addr. */
+ unsigned int gl_flags; /**< G-line status flags. */
+ enum GlineLocalState gl_state;/**< G-line local state. */
+};
+
+/** Action to perform on a G-line. */
+enum GlineAction {
+ GLINE_ACTIVATE, /**< G-line should be activated. */
+ GLINE_DEACTIVATE, /**< G-line should be deactivated. */
+ GLINE_LOCAL_ACTIVATE, /**< G-line should be locally activated. */
+ GLINE_LOCAL_DEACTIVATE, /**< G-line should be locally deactivated. */
+ GLINE_MODIFY /**< G-line should be modified. */