mirror of
				https://git.proxmox.com/git/mirror_frr
				synced 2025-11-04 13:30:17 +00:00 
			
		
		
		
	* version.h.in: (pid_output*) add const qualifier.
	* command.h: Change DEFUN func to take const char *[] rather
          than char **, to begin process of fixing compile warnings in lib/.
          Nearly all other changes in this commit follow from this change.
        * buffer.{c,h}: (buffer_write) pointer-arithmetic is gccism, take
          const void * and cast an automatic const char *p to it.
          (buffer_putstr) add const
        * command.c: (zencrypt) const qualifier
          (cmd_execute_command_real) ditto
          (cmd_execute_command_strict) ditto
          (config_log_file) ditto.
          Fix leak of getcwd() returned string.
        * memory.{c,h}: Add MTYPE_DISTRIBUTE_IFNAME for struct dist ifname.
        * distribute.{c,h}: Update with const qualifier.
          (distribute_free) use MTYPE_DISTRIBUTE_IFNAME
          (distribute_lookup) Cast to char *, note that it's ok.
          (distribute_hash_alloc) use MTYPE_DISTRIBUTE_IFNAME.
          (distribute_get)  Cast to char *, note that it's ok.
        * filter.c: Update with const qualifier.
        * if.{c,h}: ditto.
        * if_rmap.{c,h}: ditto.
          (if_rmap_lookup) Cast to char *, note that it's ok.
          (if_rmap_get) ditto.
        * log.{c,h}: Update with const qualifier.
        * plist.{c,h}: ditto.
        * routemap.{c,h}: ditto.
        * smux.{c,h}: ditto. Fix some signed/unsigned comparisons.
        * sockopt.c: (getsockopt_cmsg_data) add return for error case.
        * vty.c: Update with const qualifier.
		
	
			
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * Buffering to output and input. 
 | 
						|
 * Copyright (C) 1998 Kunihiro Ishiguro
 | 
						|
 *
 | 
						|
 * This file is part of GNU Zebra.
 | 
						|
 *
 | 
						|
 * GNU Zebra 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, or (at your
 | 
						|
 * option) any later version.
 | 
						|
 *
 | 
						|
 * GNU Zebra 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.
 | 
						|
 *
 | 
						|
 * You should have received a copy of the GNU General Public License
 | 
						|
 * along with GNU Zebra; see the file COPYING.  If not, write to the
 | 
						|
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 | 
						|
 * Boston, MA 02111-1307, USA.
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef _ZEBRA_BUFFER_H
 | 
						|
#define _ZEBRA_BUFFER_H
 | 
						|
 | 
						|
/* Buffer master. */
 | 
						|
struct buffer
 | 
						|
{
 | 
						|
  /* Data list. */
 | 
						|
  struct buffer_data *head;
 | 
						|
  struct buffer_data *tail;
 | 
						|
 | 
						|
  /* Current allocated data. */
 | 
						|
  unsigned long alloc;
 | 
						|
 | 
						|
  /* Total length of buffer. */
 | 
						|
  unsigned long size;
 | 
						|
 | 
						|
  /* For allocation. */
 | 
						|
  struct buffer_data *unused_head;
 | 
						|
  struct buffer_data *unused_tail;
 | 
						|
 | 
						|
  /* Current total length of this buffer. */
 | 
						|
  unsigned long length;
 | 
						|
};
 | 
						|
 | 
						|
/* Data container. */
 | 
						|
struct buffer_data
 | 
						|
{
 | 
						|
  struct buffer *parent;
 | 
						|
  struct buffer_data *next;
 | 
						|
  struct buffer_data *prev;
 | 
						|
 | 
						|
  /* Acctual data stream. */
 | 
						|
  unsigned char *data;
 | 
						|
 | 
						|
  /* Current pointer. */
 | 
						|
  unsigned long cp;
 | 
						|
 | 
						|
  /* Start pointer. */
 | 
						|
  unsigned long sp;
 | 
						|
};
 | 
						|
 | 
						|
/* Buffer prototypes. */
 | 
						|
struct buffer *buffer_new (size_t);
 | 
						|
int buffer_write (struct buffer *, const void *, size_t);
 | 
						|
void buffer_free (struct buffer *);
 | 
						|
char *buffer_getstr (struct buffer *);
 | 
						|
int buffer_putc (struct buffer *, u_char);
 | 
						|
int buffer_putstr (struct buffer *, const char *);
 | 
						|
void buffer_reset (struct buffer *);
 | 
						|
int buffer_flush_all (struct buffer *, int);
 | 
						|
int buffer_flush_vty_all (struct buffer *, int, int, int);
 | 
						|
int buffer_flush_window (struct buffer *, int, int, int, int, int);
 | 
						|
int buffer_empty (struct buffer *);
 | 
						|
 | 
						|
#endif /* _ZEBRA_BUFFER_H */
 |